diff --git a/branches/dwg/Source/n8v.asm b/branches/dwg/Source/n8v.asm index d2705f35..d0c08c6d 100644 --- a/branches/dwg/Source/n8v.asm +++ b/branches/dwg/Source/n8v.asm @@ -18,10 +18,21 @@ ; N8V_INIT: ; INIT TMS9918 HERE... + + CALL VDP_CLR16K + CALL VDP_SETREGS + CALL VDP_MODES + CALL VDP_PNT + CALL VDP_PGT + CALL VDP_COLORS + CALL VDP_LOADSET + CALL PPK_INIT XOR A RET -; + + +; ;__________________________________________________________________________________________________ ; CHARACTER I/O (CIO) DISPATCHER ;__________________________________________________________________________________________________ @@ -115,6 +126,114 @@ N8V_VDAFIL: N8V_VDASCR: XOR A RET + +;------------------------------------------------- + +BASE: .EQU 128 +CMDP: .EQU BASE+24 +DATAP: .EQU BASE+25 + +VDP_CLR16K: + + LD C,CMDP + LD A,$00 + OUT (C),A ; out(CMDP,0); + + LD A,64 + OUT (C),A ; out(CMDP,64); + + + LD B,128 +VDP_CL16LP2: + PUSH BC ; save outer loop counter + ; + LD B,128 + LD A,0 + LD C,DATAP +VDP_CL16LP1: + OUT (C),A ; out(DATAP,0); + DJNZ VDP_CL16LP1 ; see Brey page 86 + ; + POP BC ; restore outer loop counter + DJNZ VDP_CL16LP2 ; see Brey page 86 + + RET + +;------------------------------------------------- + +VDP_SETREGS: + LD C,CMDP + LD A,0 + OUT (C),A ; out(CMDP,0); + LD A,128 + OUT (C),A ; out(CMDP,128); + RET + +;------------------------------------------------- + +VDP_MODES: + LD C,CMDP + LD A,80 + OUT (C),A ; out(CMDP,80); + LD A,129 + OUT (C),A ; out(CMDP,129); + RET + +;------------------------------------------------- + +VDP_PNT: + LD C,CMDP + LD A,0 + OUT (C),A ; out(CMDP,0); + LD A,130 + OUT (C),A ; out(CMDP,130); + RET + +;------------------------------------------------- + +VDP_PGT: + LD C,CMDP + LD A,1 + OUT (C),A ; out(CMDP,1); + LD A,132 + OUT (C),A ; out(CMDP,132); + RET + +;------------------------------------------------- + +VDP_COLORS: + LD C,CMDP + LD A,240 + OUT (C),A ; out(CMDP,240); + LD A,135 + OUT (C),A ; out(CMDP,135); + RET + +;------------------------------------------------- + +VDP_LOADSET: + LD C,CMDP + LD A,0 + OUT (C),A ; out(CMDP,0); + LD A,72 + OUT (C),A ; out(CMDP,72); + + LD HL,CHARSET ; set memory ptr to start of bitmaps + LD B,0 ; prepare for 256 iterations + OTIR ; 0000-00FF + OTIR ; 0100-01FF + OTIR ; 0200-02FF + OTIR ; 0300-03FF + OTIR ; 0400-04FF + OTIR ; 0500-05FF + OTIR ; 0600-06FF + OTIR ; 0700-07FF + + RET + +;------------------------------------------------- + + ; N8V_MODES: