diff --git a/branches/dwg/Source/n8v.asm b/branches/dwg/Source/n8v.asm index f81e964a..8ca0accd 100644 --- a/branches/dwg/Source/n8v.asm +++ b/branches/dwg/Source/n8v.asm @@ -1,3 +1,5 @@ +; ../RomWBW/Source/n8v.asm 11/16/2012 dwg - N8V_VDAQRY now working +; ../RomWBW/Source/n8v.asm 11/15/2012 dwg - vdaini and vdaqry retcodes ok ; ../RomWBW/Source/n8v.asm 10/28/2012 dwg - add n8v_modes ; ../RomWBW/Source/n8v.asm 10/27/2012 dwg - begin enhancement @@ -92,14 +94,52 @@ N8V_DISPVDA: CALL PANIC N8V_VDAINI: - XOR A + LD A,C + LD (VDP_DEVUNIT),A + LD A,E + LD (VDP_MODE),A + CALL N8V_INIT RET N8V_VDAQRY: - CALL PANIC + LD A,(VDP_MODE) + LD C,A + LD A,(VDP_ROWS) + LD D,A + LD A,(VDP_COLS) + LD E,A + + LD A,H + OR L + JP Z,N8V_QDONE + + ; read bitmaps and + LD C,CMDP + LD A,0 + OUT (C),A ; out(CMDP,0); + CALL RECOVER + LD A,72 + OUT (C),A ; out(CMDP,72); + CALL RECOVER + + LD DE,2048 + LD C,DATAP + IN A,(C) ; read status + CALL RECOVER +VDP_QLOOP: + IN A,(C) + LD (HL),A + INC HL + DEC DE + LD A,D + OR E + JR NZ,VDP_QLOOP +N8V_QDONE: + LD A,0 ; return SUCCESS + RET N8V_VDARES: - JR N8V_INIT + JP N8V_INIT N8V_VDASCS: CALL PANIC @@ -164,6 +204,8 @@ VDP_SETREGS: ;------------------------------------------------- +; The only TMS9918 mode available right now is "text mode". + VDP_MODES: LD C,CMDP LD A,80 @@ -171,6 +213,15 @@ VDP_MODES: NOP LD A,129 OUT (C),A ; out(CMDP,129); + + ;; text mode is 24x40 + LD A,0 + LD (VDP_MODE),a + LD a,40 + LD (VDP_COLS),a + LD a,24 + LD (VDP_ROWS),A + RET ;------------------------------------------------- @@ -316,14 +367,10 @@ VDP_LOAD2LOOP: VDP_SINE: + + ; N8-2312 TMS9918 Text Mode Init Done! LD HL,0 CALL VDP_WRVRAM - -; LD HL,VDP_HELLO -; LD B,52 -; LD C,DATAP -; OTIR - LD HL,VDP_HELLO LD DE,39 LD C,DATAP @@ -335,6 +382,69 @@ HELLO_LOOP: LD A,D OR E JR NZ,HELLO_LOOP + + ; N8VEM HBIOS v2.2 B3 + LD HL,40+40+40+40+3 + CALL VDP_WRVRAM + LD HL,STR_BANNER + LD C,DATAP + LD DE,20 +BAN_LOOP: + LD A,(HL) + CP '(' + JP Z,BAN_DONE + OUT (C),A + INC HL + DEC DE + LD A,D + OR E + JR NZ,BAN_LOOP +BAN_DONE: + + + ; (rOMwbw-DOUG-121113t0113) + LD HL,40+40+40+40+40+3 + CALL VDP_WRVRAM + ; + LD HL,STR_BANNER + 20 + LD C,DATAP + ; + LD DE,27 +BAN_LOOP2: + LD A,(HL) + CP ' ' + JP Z,BAN_DONE2 + OUT (C),A + INC HL + DEC DE + LD A,D + OR E + JR NZ,BAN_LOOP2 + LD A,'|' + OUT (C),A + CALL RECOVER +BAN_DONE2: + + ; n8 z180 sbc, floppy (autosize), ppide.. + PUSH HL + LD HL,40+40+40+40+40+40+3 + CALL VDP_WRVRAM + POP HL + + LD C,DATAP + LD DE,60 +BAN_LOOP3: + LD A,(HL) + CP '$' + JP Z,BAN_DONE3 + OUT (C),A + INC HL + DEC DE + LD A,D + OR E + JP NZ,BAN_LOOP3 +BAN_DONE3: + RET @@ -362,8 +472,9 @@ VDP_WRVRAM: LD C,CMDP OUT (C),L + CALL RECOVER OUT (C),H - + CALL RECOVER RET @@ -392,8 +503,12 @@ RECOVER: ;__________________________________________________________________________________________________ ; -VDP_LINE .DB 0 +VDP_DEVUNIT .DB 0 +VDP_ROW .DB 0 VDP_COL .DB 0 +VDP_ROWS .DB 24 +VDP_COLS .DB 40 +VDP_MODE .DB 0 VDP_ATTR .DB 240 ; default to white on black VDP_HELLO .TEXT " N8-2312 TMS9918 Text Mode Init Done!!" VDP_HELLOLEN .DB $-VDP_HELLO