Digital Research
This commit is contained in:
2020-11-06 18:50:37 +01:00
parent 621ed8ccaf
commit 31738079c4
8481 changed files with 1888323 additions and 0 deletions

View File

@@ -0,0 +1,188 @@
; 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