Browse Source

write working, no scroll yet

import/raw
doug 13 years ago
parent
commit
53f1783605
  1. 62
      branches/dwg/Source/n8v.asm

62
branches/dwg/Source/n8v.asm

@ -456,16 +456,14 @@ N8V_VDASCS:
; Video Display Processor Set Cursor Position ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
N8V_VDASCP:
LD (VDP_SCP_COL),A ; keep private copy of column
LD A,E
LD (VDP_COL),A ; keep private copy of column
LD A,C
LD (VDP_SCP_DEV),A ; keep private copy of dev/unit
LD (VDP_DEVUNIT),A ; keep private copy of dev/unit
LD A,D
LD (VDP_SCP_ROW),A ; keep private copy of row
LD (VDP_ROW),A ; keep private copy of row
XOR A
RET
VDP_SCP_DEV .DB 0
VDP_SCP_ROW .DB 0
VDP_SCP_COL .DB 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Video Display Processor Set Character Attributes ;
@ -483,8 +481,50 @@ N8V_VDASCO:
; Video Display Processor Write Character ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
N8V_VDAWRC:
XOR A
RET
PUSH DE
LD hl,row_offs ; hl -> row offset table
LD A,(VDP_ROW) ; pick up cursor row
LD E,A ; place in LO byte of DE
LD d,0 ; make 16 bits
add hl,DE ;
add hl,DE ; hl -> word in offset table for desired row
LD e,(hl) ; pick up the LO byte of the row ptr
INC HL
ld d,(hl) ; pick up the HO byte of the ROW ptr
EX DE,HL ; hl -> offset of first column in row
LD A,(VDP_COL) ; pick up the current column number
LD E,A ; use as LO byte of DE
LD D,0 ; make 16 bits
ADD HL,DE ; hl = offset in name table of row and column
call VDP_WRVRAM ; set vram write ptr to proper byte in name table
POP DE ; restore the output byte into E
LD A,E ; move into A for output
LD C,DATAP ; I/O address for subsequent VRAM write
OUT (C),a ; prime the auto incrementer
OUT (C),a ; output the data byte into the name table
LD A,(VDP_COL)
INC A
LD (VDP_COL),A
CP 40
JR NZ,N8V_VDAWRC2
LD A,0
LD (VDP_COL),A
LD A,(VDP_ROW)
INC A
LD (VDP_ROW),A
CP 24
JR NZ, N8V_VDAWRC2
; need to scroll up one line
LD A,1 ; SCROLL ONE LINE
LD E,A ; NEEDS TO BE IN A
CALL N8V_VDASCR ; USE SCROLLING FUNCTION
N8V_VDAWRC2:
XOR A ; set SUCCESS return code
RET ; return from HBIOS call
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Video Display Processor Fill ;
@ -552,6 +592,12 @@ BYTE8 .DB 0
CHARSET:
#INCLUDE "n8chars.inc"
row_offs .dw 40* 0,40* 1,40* 2,40* 3,40* 4,40* 5,40* 6,40* 7
.dw 40* 8,40* 9,40*10,40*11,40*12,40*13,40*14,40*15
.dw 40*16,40*17,40*18,40*19,40*20,40*21,40*22,40*23
;
;;;;;;;;;;;;;;;;;
; eof - n8v.asm ;
;;;;;;;;;;;;;;;;;

Loading…
Cancel
Save