Files
Digital-Research-Source-Code/MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/25/TURTLE.M80
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

188 lines
4.2 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; 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