diff --git a/applecorn.po b/applecorn.po index 73d50a4..6f7e146 100644 Binary files a/applecorn.po and b/applecorn.po differ diff --git a/auxmem.vdu.s b/auxmem.vdu.s index 1e0edf8..607d446 100644 --- a/auxmem.vdu.s +++ b/auxmem.vdu.s @@ -276,12 +276,6 @@ CLREOL LDA VDUTEXTY ; ROW RTS * Clear the screen -*VDUINIT STA $C00F -* LDA #'_' -* STA CURSOR ; Normal cursor -* STA CURSORCP ; Copy cursor when editing -* LDA #$A0 -* STA CURSORED ; Edit cursor when editing CLEAR STZ VDUTEXTY ; ROW STZ VDUTEXTX ; COL :L1 JSR CLREOL @@ -463,15 +457,16 @@ VDU22 LDA VDUQ+8 DEX ; All other MODEs default to 40-col VDU22A STA $C051 ; Enable Text STA $C00C,X ; Select 40col/80col - STA $C003 ; Alt charset off STA $C055 ; PAGE2 - STA $C00F + STA $C052 ; Clear MIXED + STA $C00F ; Enable alt charset BRA VDU22C -VDU22G STA $C057 ; Hi-Res +VDU22G STA $C050 ; Enable Graphics + STA $C057 ; Hi-Res STA $C054 ; PAGE1 STA $C052 ; Clear MIXED - STA $C050 ; Enable Graphics + JSR VDU16 ; Clear HGR screen * Set up default cursors VDU22C LDA #'_' @@ -580,7 +575,6 @@ SCNTAB DW $800,$880,$900,$980,$A00,$A80,$B00,$B80 DW $850,$8D0,$950,$9D0,$A50,$AD0,$B50,$BD0 -* Unimplemented * May end up moving graphics bits to separate source * VDU 1 - Send one character to printer @@ -599,19 +593,25 @@ VDU16RET >>> ENTAUX VDU17 RTS * VDU 18 - GCOL k,a - select graphics colour and plot action -VDU18 LDA VDUQ+7 ; 'k' +VDU18 LDA VDUQ+7 ; Argument 'k' CMP #$04 ; k=4 means XOR LDA #$00 ; Normal drawing mode BNE :NORM LDA #$01 ; XOR mode :NORM >>> WRTMAIN + STA LINETYPE STA Entry+5 >>> WRTAUX >>> XF2MAIN,SETLINE VDU18RET1 >>> ENTAUX -:NORM LDA VDUQ+8 ; 'a' - STA HCOLOR +:NORM LDA VDUQ+8 ; Argument 'a' + BPL :FOREGND ; <128 is foreground >>> WRTMAIN + STA BGCOLOR ; Stored in main memory + >>> WRTAUX + RTS +:FOREGND >>> WRTMAIN + STA FGCOLOR ; Stored in main memory STA Entry+5 >>> WRTAUX >>> XF2MAIN,SETCOLOR @@ -669,8 +669,6 @@ HGRPOS LDA VDUQ+5 RTS XPIXEL DW $0000 ; Previous plot x-coord YPIXEL DW $0000 ; Previous plot y-coord -HCOLOR DB $00 ; High res foreground colour -BCOLOR DB $00 ; High res background colour * VDU 26 - Reset to default windows VDU26 RTS diff --git a/mainmem.ldr.s b/mainmem.ldr.s index a5f2824..7bbf7f4 100644 --- a/mainmem.ldr.s +++ b/mainmem.ldr.s @@ -102,15 +102,7 @@ START JSR ROMMENU LDA #>GSBRK STA $3F0+1 -* LDA $C057 ; Enable hi-res -* LDA $C054 ; Enable page 1 -* LDA $C050 ; Enable graphics - JSR Entry+0 ; Initialize FDRAW library - LDA #$20 - STA Entry+5 - JSR Entry+19 ; FDRAW: Set page $2000 - JSR Entry+22 ; FDRAW: clear HGR screen -* LDA $C051 ; Enable text again + JSR GFXINIT ; Initialize FDraw graphics TSX ; Save SP at $0100 in aux STA $C005 ; Write to aux diff --git a/mainmem.svc.s b/mainmem.svc.s index ca3df3c..0cd014c 100644 --- a/mainmem.svc.s +++ b/mainmem.svc.s @@ -1059,7 +1059,13 @@ MAINRDEXIT >>> XF2AUX,NULLRTS ; Back to an RTS * Call FDraw Clear routine CLRHGR >>> ENTMAIN + LDA BGCOLOR + STA Entry+5 + JSR Entry+16 ; FDRAW: SetColor JSR Entry+22 ; FDRAW: Clear + LDA FGCOLOR + STA Entry+5 + JSR Entry+16 ; FDRAW: SetColor >>> XF2AUX,VDU16RET * Call FDraw SetColor routine @@ -1077,6 +1083,25 @@ DRAWLINE >>> ENTMAIN JSR Entry+28 ; FDRAW: DrawLine >>> XF2AUX,VDU25RET +* Reset colours and linetype +GFXINIT JSR Entry+0 ; Initialize FDRAW library + LDA #$20 + STA Entry+5 + JSR Entry+19 ; FDRAW: Set page $2000 + STZ LINETYPE + STZ Entry+5 + JSR Entry+43 ; FDRAW: SetLineMode + LDA #$07 + STA FGCOLOR + STA Entry+5 + JSR Entry+16 ; FDRAW: SetColor + STZ BGCOLOR + JSR Entry+22 ; FDRAW: clear HGR screen + RTS + +FGCOLOR DB $00 ; Foreground colour +BGCOLOR DB $00 ; Background colour +LINETYPE DB $00 ; 0 normal, 1 XOR