mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-28 19:04:07 +00:00
Upload
Digital Research
This commit is contained in:
188
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/25/TURTLE.M80
Normal file
188
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/25/TURTLE.M80
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user