;************************ ; PLOT / SYMBOL - MCode ; Turbo Pascal Version ; 1987 by M.A. & E. W. ; Vers. 10/8/87 ; (incl. DotColor) ; (incl. Scr_Access) ;************************ ; .Z80 ASEG ORG 100h ; START EQU 0F400h XBIOS EQU 0FC5Ah RUN_SCR EQU 00E9h ; .PHASE START ; _PLOT: ; LD DE,(_X) LD HL,(_YM) ; LD BC,PLOT CALL XBIOS DW RUN_SCR RET ; ; _X: DS 2 _YM: DS 2 ; ; PLOT: LD A,03 AND D LD D,A PUSH HL LD H,00 ADD HL,HL LD BC,0B600h ADD HL,BC LD C,(HL) INC HL LD B,(HL) LD A,C AND 0F8h LD L,A LD H,B ADD HL,HL ADD HL,DE LD A,L AND 0F8h LD L,A LD A,C AND 07 OR L LD L,A LD A,E AND 07 INC A LD B,A XOR A SCF LOOP: RRA DJNZ LOOP POP BC LD C,A LD A,B CP 00 JR NZ,CLEAR LD A,C OR (HL) LD (HL),A RET CLEAR: CP 01 JR NZ,REVERSE LD A,C CPL AND (HL) LD (HL),A RET REVERSE: CP 02 JR NZ,STATUS LD A,C XOR (HL) LD (HL),A RET STATUS: CP 03 RET NZ LD A,C AND (HL) LD (_YM+1),A RET ; ; _SYMB: ; LD BC,SYMBOL CALL XBIOS DW RUN_SCR RET ; SYMBOL: LD HL,_TABLE LD BC,0008H LD DE,0000H LDIR RET ; _TABLE: DS 8 ; ; _GET: ; LD BC,GETMAT CALL XBIOS DW RUN_SCR RET ; GETMAT: LD HL,0000H LD BC,0008H LD DE,_TABLE LDIR RET ; ; _SCRACC: LD BC,ACCESS CALL XBIOS DW RUN_SCR RET ; ACCESS: LD E,0 ; (<- Column) LD A,0 ; (<- Row) LD D,0 RLCA RLA RLA RLA LD L,A LD A,D ADC A,0B6H LD H,A LD A,(HL) INC HL LD H,(HL) LD L,A EX DE,HL ADD HL,HL ADD HL,HL ADD HL,DE ADD HL,HL LD BC,0008H LD A,0 ; (<- Access Mode) CP 0 ; ( = READ?) JR NZ,WRITE LD DE,_TABLE LDIR RET WRITE: EX DE,HL LD HL,_TABLE LDIR RET ; .DEPHASE END