Adding calls to SHR routines in VDU driver
This commit is contained in:
parent
3d84e270bc
commit
34083aeb81
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
18
auxmem.hgr.s
18
auxmem.hgr.s
|
@ -25,7 +25,7 @@ HGRVDU22 JSR VDU12 ; Clear text and HGR screen
|
|||
|
||||
|
||||
* Write character to HGR screen
|
||||
PRCHRSOFT CMP #$A0 ; Convert to screen code
|
||||
HGRPRCHAR CMP #$A0 ; Convert to screen code
|
||||
BCS :B0
|
||||
CMP #$80
|
||||
BCC :B0
|
||||
|
@ -37,7 +37,7 @@ PRCHRSOFT CMP #$A0 ; Convert to screen code
|
|||
EOR #$40
|
||||
TAX
|
||||
:B1 PHX
|
||||
JSR HCHARADDR ; Addr in VDUADDR
|
||||
JSR HGRCHARADDR ; Addr in VDUADDR
|
||||
>>> WRTMAIN
|
||||
LDA VDUADDR+0
|
||||
STA HGRADDR+0
|
||||
|
@ -53,7 +53,7 @@ PUTCHRET >>> ENTAUX
|
|||
* Calculate character address in HGR screen memory
|
||||
* This is the address of the first pixel row of the char
|
||||
* Add $0400 for each subsequent row of the char
|
||||
HCHARADDR LDA VDUTEXTY
|
||||
HGRCHARADDR LDA VDUTEXTY
|
||||
ASL
|
||||
TAY
|
||||
CLC
|
||||
|
@ -68,7 +68,7 @@ HCHARADDR LDA VDUTEXTY
|
|||
|
||||
|
||||
* Forwards scroll one line
|
||||
HSCR1LINE >>> WRTMAIN
|
||||
HGRSCR1LINE >>> WRTMAIN
|
||||
LDX TXTWINLFT
|
||||
STX MTXTWINLFT
|
||||
LDX TXTWINRGT
|
||||
|
@ -78,8 +78,9 @@ HSCR1LINE >>> WRTMAIN
|
|||
HSCR1RET >>> ENTAUX
|
||||
RTS
|
||||
|
||||
|
||||
* Reverse scroll one line
|
||||
HRSCR1LINE >>> WRTMAIN
|
||||
HGRRSCR1LINE >>> WRTMAIN
|
||||
LDX TXTWINLFT
|
||||
STX MTXTWINLFT
|
||||
LDX TXTWINRGT
|
||||
|
@ -87,7 +88,9 @@ HRSCR1LINE >>> WRTMAIN
|
|||
>>> WRTAUX
|
||||
>>> XF2MAIN,HGRRSCR1L
|
||||
|
||||
HSCRCLREOL LDA VDUTEXTY
|
||||
|
||||
* Clear from current location to EOL
|
||||
HGRCLREOL LDA VDUTEXTY
|
||||
ASL
|
||||
TAX
|
||||
>>> WRTMAIN
|
||||
|
@ -102,8 +105,9 @@ HSCRCLREOL LDA VDUTEXTY
|
|||
>>> WRTAUX
|
||||
>>> XF2MAIN,HCLREOL
|
||||
|
||||
|
||||
* VDU16 (CLG) clears the whole HGR screen right now
|
||||
HSCRCLEAR >>> XF2MAIN,CLRHGR
|
||||
HGRCLEAR >>> XF2MAIN,CLRHGR
|
||||
VDU16RET >>> ENTAUX
|
||||
STZ XPIXEL+0
|
||||
STZ XPIXEL+1
|
||||
|
|
34
auxmem.shr.s
34
auxmem.shr.s
|
@ -5,9 +5,43 @@
|
|||
* on Apple IIGS (640x200 4 colour, or 320x200 16 colour.)
|
||||
*
|
||||
|
||||
SCB320 EQU $00 ; SCB for 320 mode
|
||||
SCB640 EQU $80 ; SCB for 640 mode
|
||||
|
||||
* Enable SHR mode
|
||||
SHRVDU22 JSR VDU12 ; Clear text and HGR screen
|
||||
LDA #$80 ; Most significant bit
|
||||
TSB NEWVIDEO ; Enable SHR mode
|
||||
RTS
|
||||
|
||||
|
||||
* Write character to SHR screen
|
||||
SHRPRCHAR
|
||||
RTS
|
||||
|
||||
|
||||
* Calculate character address in SHR screen memory
|
||||
SHRCHARADDR
|
||||
RTS
|
||||
|
||||
|
||||
* Forwards scroll one line
|
||||
SHRSCR1LINE
|
||||
RTS
|
||||
|
||||
|
||||
* Reverse scroll one line
|
||||
SHRRSCR1LINE
|
||||
RTS
|
||||
|
||||
|
||||
* Clear from current location to EOL
|
||||
SHRCLREOL
|
||||
RTS
|
||||
|
||||
|
||||
* VDU16 (CLG) clears the whole SHR screen right now
|
||||
SHRCLEAR
|
||||
RTS
|
||||
|
||||
|
||||
|
|
72
auxmem.vdu.s
72
auxmem.vdu.s
|
@ -384,8 +384,12 @@ PRCHR5 BCC PRCHR6 ; Aux memory
|
|||
PRCHR6 STA (VDUADDR),Y ; Store in aux
|
||||
PRCHR7 PLA
|
||||
BIT VDUSCREEN
|
||||
BPL GETCHROK
|
||||
JMP PRCHRSOFT ; Write character to graphics
|
||||
BPL :NOTHGR
|
||||
JMP HGRPRCHAR ; Write character to HGR
|
||||
:NOTHGR BVC :NOTSHR
|
||||
JMP SHRPRCHAR ; Write character to SHR
|
||||
:NOTSHR BRA GETCHROK ; Text mode
|
||||
|
||||
|
||||
* OSBYTE &87 - Read character at cursor
|
||||
***************************************
|
||||
|
@ -622,14 +626,16 @@ VDU12 STZ FXLINES
|
|||
* Clear the text screen buffer
|
||||
:L1 JSR CLREOL
|
||||
BIT VDUSCREEN
|
||||
BPL :S2
|
||||
JSR HSCRCLREOL
|
||||
:S2 LDA VDUTEXTY ; ROW
|
||||
BPL :NOTHGR
|
||||
JSR HGRCLREOL
|
||||
:NOTHGR BVC :NOTSHR
|
||||
JSR SHRCLREOL
|
||||
:NOTSHR LDA VDUTEXTY ; ROW
|
||||
CMP TXTWINBOT
|
||||
BEQ :S3
|
||||
BEQ :S1
|
||||
INC VDUTEXTY ; ROW
|
||||
BRA :L1
|
||||
:S3 LDA TXTWINTOP
|
||||
:S1 LDA TXTWINTOP
|
||||
STA VDUTEXTY ; ROW
|
||||
LDA TXTWINLFT
|
||||
STA VDUTEXTX ; COL
|
||||
|
@ -671,9 +677,11 @@ CLREOL JSR CHARADDR ; Set VDUADDR=>start of line
|
|||
BMI :L2
|
||||
CLREOLDONE DEC TXTWINRGT
|
||||
BIT VDUSCREEN
|
||||
BPL :NOHIRES
|
||||
JMP HSCRCLREOL ; Clear an HGR line
|
||||
:NOHIRES RTS
|
||||
BPL :NOHGR
|
||||
JMP HGRCLREOL ; Clear an HGR line
|
||||
:NOHGR BVC :NOSHR
|
||||
JMP SHRCLREOL ; Clear an SHR line
|
||||
:NOSHR RTS
|
||||
CLREOLGS BIT RD80VID
|
||||
BPL :FORTY ; 40-col mode
|
||||
:EIGHTY LDX VDUTEXTX ; Addr offset for column
|
||||
|
@ -717,9 +725,11 @@ SCROLLER LDA TXTWINTOP
|
|||
:L1 PHA
|
||||
JSR SCR1LINE
|
||||
BIT VDUSCREEN
|
||||
BPL :S0
|
||||
JSR SCR1SOFT ; Scroll graphics screen
|
||||
:S0 PLA
|
||||
BPL :NOTHGR
|
||||
JMP HGRSCR1LINE ; Scroll HGR screen
|
||||
:NOTHGR BVC :NOTSHR
|
||||
JMP SHRSCR1LINE ; Scroll SHR screen
|
||||
:NOTSHR PLA
|
||||
INC
|
||||
CMP TXTWINBOT
|
||||
BNE :L1
|
||||
|
@ -738,9 +748,11 @@ RSCROLLER DEC TXTWINTOP
|
|||
:L1 PHA
|
||||
JSR RSCR1LINE
|
||||
BIT VDUSCREEN
|
||||
BPL :S0
|
||||
JSR RSCR1SOFT ; Scroll graphics screen
|
||||
:S0 PLA
|
||||
BPL :NOTHGR
|
||||
JMP HGRRSCR1LINE ; Reverse scroll HGR screen
|
||||
:NOTHGR BVC :NOTSHR
|
||||
JMP SHRRSCR1LINE ; Reverse scroll SHR screen
|
||||
:NOTSHR PLA
|
||||
DEC A
|
||||
CMP TXTWINTOP
|
||||
BNE :L1
|
||||
|
@ -863,14 +875,14 @@ SCR1LINEGS LDX TXTWINLFT
|
|||
BMI :L2
|
||||
BRA SCR1LNDONE
|
||||
|
||||
* Copy text line A+1 to line A for HGR bitmap gfx mode
|
||||
SCR1SOFT JMP HSCR1LINE
|
||||
|
||||
* Copy text line A to line A+1 for HGR bitmap gfx mode
|
||||
RSCR1SOFT JMP HRSCR1LINE
|
||||
|
||||
* VDU 16 - CLG, clear graphics window
|
||||
VDU16 JMP HSCRCLEAR
|
||||
VDU16 BIT VDUSCREEN
|
||||
BPL :NOTHGR
|
||||
JMP HGRCLEAR
|
||||
:NOTHGR BVC :NOTSHR
|
||||
JMP SHRCLEAR
|
||||
:NOTSHR RTS
|
||||
|
||||
|
||||
* Colour control
|
||||
|
@ -1165,19 +1177,3 @@ BYTEA02 LDY VDUVARS+1,X
|
|||
* VDU 1 - Send one character to printer
|
||||
VDU01 RTS
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue