home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug013.arc
/
DRAW64.PRO
< prev
next >
Wrap
Text File
|
1979-12-31
|
6KB
|
110 lines
procedure DRAW; {Version for 64 X 16 screen}
{ This procedure developed for Turbo Pascal
LORES Graphics for use with the MicroBee
by Bob Burt
This version used to plot on a 64 X 16
format screen. Use in conjunction with
LORES64.PRO and PLOT.PRO }
begin
inline ($18/$0B/ { JUMP: JR LINE }
0/0/0/0/0/0/0/0/ { BLOCK: DEFS 11 }
0/0/0/ { }
$3A/*-3/ { LINE: LD A,(BLOCK+9) }
$B7/ { OR A }
$28/$0D/ { JR Z,LINE10 }
$21/0/0/ { LD HL,0 }
$ED/$5B/*-18/ { LD DE,(BLOCK+4)}
$B7/ { OR A }
$ED/$52/ { SBC HL,DE }
$22/*-24/ { LD (BLOCK+4),HL}
$3A/*-21/ { LINE10: LD A,(BLOCK+10)}
$B7/ { OR A }
$28/$0D/ { JR Z,LINE20 }
$21/0/0/ { LD HL,0 }
$ED/$5B/*-35/ { LD DE.(BLOCK+6)}
$B7/ { OR A }
$ED/$52/ { SBC HL,DE }
$22/*-41/ { LD (BLOCK+6),HL}
$DD/$21/*-51/ { LINE20: LD IX,BLOCK }
$DD/$66/1/ { LD H,(IX+1) }
$DD/$6E/3/ { LD L,(IX+3) }
$AF/ { XOR A }
$CD/*+34/ { CALL SETRST }
$2A/*-64/ { LD HL,(BLOCK) }
$ED/$5B/*-64/ { LD DE,(BLOCK+4)}
$19/ { ADD HL,DE }
$22/*-72/ { LD (BLOCK),HL }
$2A/*-73/ { LD HL,(BLOCK+2)}
$ED/$5B/*-73/ { LD DE,(BLOCK+6)}
$19/ { ADD HL,DE }
$22/*-81/ { LD (BLOCK+2),HL}
$3A/*-78/ { LD A,(BLOCK+8) }
$3D/ { DEC A }
$32/*-82/ { LD (BLOCK+8),A }
$20/$D3/ { JR NZ,LINE20 }
$C9/ { RET }
$F5/ { SETRST: PUSH AF }
$5C/ { LD E,H }
$7D/ { LD A,L }
$CB/$3B/ { SRL E }
$16/0/ { LD D,0 }
$30/1/ { JR NC,SET10 }
$14/ { INC D }
6/$FF/ { SET10: LD B,0FFH }
4/ { SET20: INC B }
$D6/3/ { SUB 3 }
$F2/*-4/ { JP P,SET20 }
$C6/3/ { ADD A,3 }
7/ { RLCA }
$82/ { ADD A,D }
$4F/ { LD C,A }
$68/ { LD L,B }
$26/0/ { LD H,0 }
6/6/ { LD B,6 }
$29/ { SET30: ADD HL,HL }
$10/$FD/ { DJNZ SET30 }
$16/0/ { LD D,0 }
$19/ { ADD HL,DE }
$11/0/$F0/ { LD DE,0F000H }
$19/ { ADD HL,DE }
6/0/ { LD B,0 }
$F1/ { POP AF }
$B7/ { OR A }
$20/$0C/ { JR NZ,RESET }
$DD/$21/*+22/ { LD IX,MASK }
$DD/9/ { ADD IX,BC }
$7E/ { LD A,(HL) }
$DD/$B6/0/ { OR (IX) }
$77/ { SET36: LD (HL),A }
$C9/ { RET }
$DD/$21/*+16/ { RESET: LD IX,MASK1 }
$DD/9/ { ADD IX,BC }
$7E/ { LD A,(HL) }
$DD/$A6/0/ { AND (IX) }
$18/$F2/ { JR SET36 }
$81/ { MASK: DEFB 81H }
$82/ { DEFB 82H }
$84/ { DEFB 84H }
$88/ { DEFB 88H }
$90/ { DEFB 90H }
$A0/ { DEFB 0A0H }
$FE/ { MASK1: DEFB 0FEH }
$FD/ { DEFB 0FDH }
$FB/ { DEFB 0FBH }
$F7/ { DEFB 0F7H }
$EF/ { DEFB 0EFH }
$DF); { DEFB 0DFH }
end; {procedure draw}