mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-28 10:54:18 +00:00
188 lines
4.2 KiB
Plaintext
188 lines
4.2 KiB
Plaintext
; FILE NAME TURTLE.M80
|
||
; CODED BY TOSHIHUMI MURATA
|
||
; B U G sapporo japan
|
||
; 1ST EDITING Aug. 3, 1983
|
||
; LAST EDITING Aug. 4, 1983
|
||
|
||
ENTRY DSP_TURTLE
|
||
|
||
; dsp_turtle (x, y, sec)
|
||
; int x [-16384..16383], y [-16384..16383], sec [0..59];
|
||
|
||
DSEG
|
||
T0_X: DS 2
|
||
T0_Y: DS 2
|
||
T1_X: DS 2
|
||
T1_Y: DS 2
|
||
T2_X: DS 2
|
||
T2_Y: DS 2
|
||
T3_X: DS 2
|
||
T3_Y: DS 2
|
||
|
||
CSEG
|
||
DSP_TURTLE:
|
||
PUSH BC
|
||
LD HL,4
|
||
ADD HL,SP
|
||
LD E,(HL)
|
||
INC HL
|
||
LD D,(HL)
|
||
INC HL
|
||
LD (T0_X),DE
|
||
LD E,(HL)
|
||
INC HL
|
||
LD D,(HL)
|
||
INC HL
|
||
LD (T0_Y),DE
|
||
|
||
; set up vertices
|
||
|
||
LD L,(HL) ;HL := SECTION
|
||
LD H,0 ;
|
||
ADD HL,HL ;IX := TTL_TBL + SECTION * 6
|
||
LD E,L ;
|
||
LD D,H ;
|
||
ADD HL,HL ;
|
||
ADD HL,DE ;
|
||
LD DE,TTL_TBL ;
|
||
ADD HL,DE ;
|
||
PUSH HL ;
|
||
POP IX ;
|
||
LD DE,T1_X
|
||
CALL CALOFS
|
||
CALL CALOFS
|
||
CALL CALOFS
|
||
|
||
; draw turtle
|
||
|
||
; line t1 - t2
|
||
LD HL,(T1_X)
|
||
LD (X1),HL
|
||
LD HL,(T1_Y)
|
||
LD (Y1),HL
|
||
LD HL,(T2_X)
|
||
LD DE,(T2_Y)
|
||
LD BC,4*100H+15 ;COLOR = 15, MODE = XOR
|
||
CALL LINPLT
|
||
|
||
; line - t0
|
||
LD HL,(T0_X)
|
||
LD DE,(T0_Y)
|
||
LD BC,4*100H+15
|
||
CALL .LINE
|
||
|
||
; line - t3
|
||
LD HL,(T3_X)
|
||
LD DE,(T3_Y)
|
||
LD BC,4*100H+15
|
||
CALL LINPLT
|
||
|
||
; line - t1
|
||
LD HL,(T1_X)
|
||
LD DE,(T1_Y)
|
||
LD BC,4*100H+15
|
||
CALL LINPLT
|
||
|
||
POP BC
|
||
RET
|
||
|
||
|
||
|
||
CALOFS: LD BC,(T0_X)
|
||
CALL CALOF1
|
||
LD BC,(T0_Y)
|
||
CALOF1: LD A,(IX+0)
|
||
INC IX
|
||
LD L,A ;HL := SIGN_EXTEND [ A ]
|
||
ADD A,A ;
|
||
SBC A,A ;
|
||
LD H,A ;
|
||
ADD HL,BC
|
||
EX DE,HL
|
||
LD (HL),E
|
||
INC HL
|
||
LD (HL),D
|
||
INC HL
|
||
EX DE,HL
|
||
RET
|
||
|
||
|
||
|
||
LINPLT: PUSH HL
|
||
PUSH DE
|
||
PUSH BC
|
||
CALL .LINE
|
||
POP BC
|
||
POP DE
|
||
POP HL
|
||
.PLOT: RCALL 0F73H
|
||
|
||
.LINE: RCALL 0E71H
|
||
|
||
|
||
|
||
|
||
|
||
TTL_TBL:
|
||
; t1_x t1_y t2_x t2_y t3_x t3_y deg.
|
||
DB 000H, 0F8H, 005H, 003H, 0FBH, 003H ; 0
|
||
DB 001H, 0F8H, 005H, 003H, 0FBH, 003H ; 6
|
||
DB 002H, 0F8H, 004H, 004H, 0FAH, 002H ; 12
|
||
DB 003H, 0F8H, 004H, 004H, 0FAH, 002H ; 18
|
||
DB 004H, 0F9H, 003H, 004H, 0FAH, 001H ; 24
|
||
DB 005H, 0F9H, 002H, 005H, 0FAH, 001H ; 30
|
||
DB 006H, 0FAH, 002H, 005H, 0FAH, 000H ; 36
|
||
DB 007H, 0FAH, 001H, 005H, 0FAH, 000H ; 42
|
||
DB 008H, 0FBH, 001H, 005H, 0FAH, 0FFH ; 48
|
||
DB 008H, 0FBH, 000H, 005H, 0FAH, 0FFH ; 54
|
||
DB 009H, 0FCH, 0FFH, 005H, 0FAH, 0FEH ; 60
|
||
DB 009H, 0FDH, 0FFH, 005H, 0FAH, 0FEH ; 66
|
||
DB 00AH, 0FEH, 0FEH, 005H, 0FBH, 0FDH ; 72
|
||
DB 00AH, 0FEH, 0FDH, 005H, 0FBH, 0FDH ; 78
|
||
DB 00AH, 0FFH, 0FDH, 004H, 0FCH, 0FCH ; 84
|
||
DB 00AH, 000H, 0FCH, 004H, 0FCH, 0FCH ; 90
|
||
DB 00AH, 001H, 0FCH, 004H, 0FDH, 0FCH ; 96
|
||
DB 00AH, 002H, 0FBH, 003H, 0FDH, 0FBH ; 102
|
||
DB 00AH, 002H, 0FBH, 003H, 0FEH, 0FBH ; 108
|
||
DB 009H, 003H, 0FAH, 002H, 0FFH, 0FBH ; 114
|
||
DB 009H, 004H, 0FAH, 002H, 0FFH, 0FBH ; 120
|
||
DB 008H, 005H, 0FAH, 001H, 000H, 0FBH ; 126
|
||
DB 008H, 005H, 0FAH, 001H, 001H, 0FBH ; 132
|
||
DB 007H, 006H, 0FAH, 000H, 001H, 0FBH ; 138
|
||
DB 006H, 006H, 0FAH, 000H, 002H, 0FBH ; 144
|
||
DB 005H, 007H, 0FAH, 0FFH, 002H, 0FBH ; 150
|
||
DB 004H, 007H, 0FAH, 0FFH, 003H, 0FCH ; 156
|
||
DB 003H, 008H, 0FAH, 0FEH, 004H, 0FCH ; 162
|
||
DB 002H, 008H, 0FAH, 0FEH, 004H, 0FCH ; 168
|
||
DB 001H, 008H, 0FBH, 0FDH, 005H, 0FDH ; 174
|
||
DB 000H, 008H, 0FBH, 0FDH, 005H, 0FDH ; 180
|
||
DB 0FFH, 008H, 0FBH, 0FDH, 005H, 0FDH ; 186
|
||
DB 0FEH, 008H, 0FCH, 0FCH, 006H, 0FEH ; 192
|
||
DB 0FDH, 008H, 0FCH, 0FCH, 006H, 0FEH ; 198
|
||
DB 0FCH, 007H, 0FDH, 0FCH, 006H, 0FFH ; 204
|
||
DB 0FBH, 007H, 0FEH, 0FBH, 006H, 0FFH ; 210
|
||
DB 0FAH, 006H, 0FEH, 0FBH, 006H, 000H ; 216
|
||
DB 0F9H, 006H, 0FFH, 0FBH, 006H, 000H ; 222
|
||
DB 0F8H, 005H, 0FFH, 0FBH, 006H, 001H ; 228
|
||
DB 0F8H, 005H, 000H, 0FBH, 006H, 001H ; 234
|
||
DB 0F7H, 004H, 001H, 0FBH, 006H, 002H ; 240
|
||
DB 0F7H, 003H, 001H, 0FBH, 006H, 002H ; 246
|
||
DB 0F6H, 002H, 002H, 0FBH, 005H, 003H ; 252
|
||
DB 0F6H, 002H, 003H, 0FBH, 005H, 003H ; 258
|
||
DB 0F6H, 001H, 003H, 0FCH, 004H, 004H ; 264
|
||
DB 0F6H, 000H, 004H, 0FCH, 004H, 004H ; 270
|
||
DB 0F6H, 0FFH, 004H, 0FCH, 003H, 004H ; 276
|
||
DB 0F6H, 0FEH, 005H, 0FDH, 003H, 005H ; 282
|
||
DB 0F6H, 0FEH, 005H, 0FDH, 002H, 005H ; 288
|
||
DB 0F7H, 0FDH, 006H, 0FEH, 001H, 005H ; 294
|
||
DB 0F7H, 0FCH, 006H, 0FEH, 001H, 005H ; 300
|
||
DB 0F8H, 0FBH, 006H, 0FFH, 000H, 005H ; 306
|
||
DB 0F8H, 0FBH, 006H, 0FFH, 0FFH, 005H ; 312
|
||
DB 0F9H, 0FAH, 006H, 000H, 0FFH, 005H ; 318
|
||
DB 0FAH, 0FAH, 006H, 000H, 0FEH, 005H ; 324
|
||
DB 0FBH, 0F9H, 006H, 001H, 0FEH, 005H ; 330
|
||
DB 0FCH, 0F9H, 006H, 001H, 0FDH, 004H ; 336
|
||
DB 0FDH, 0F8H, 006H, 002H, 0FCH, 004H ; 342
|
||
DB 0FEH, 0F8H, 006H, 002H, 0FCH, 004H ; 348
|
||
DB 0FFH, 0F8H, 005H, 003H, 0FBH, 003H ; 354
|
||
|