mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2024-09-27 16:55:31 +00:00
Tided MODE fall-back
MODEs sorted into logical order and optimised fall-back for unsupported MODEs.
This commit is contained in:
parent
4174fe86ee
commit
7d58b3aa6a
43
auxmem.vdu.s
43
auxmem.vdu.s
@ -112,16 +112,18 @@ VDUWORKSZ EQU VDUVAREND-VDUWORKSP+1
|
|||||||
*
|
*
|
||||||
|
|
||||||
* Screen definitions
|
* Screen definitions
|
||||||
* 0 1 2 3 6 7 ; MODEs sort-of completed
|
* 0 1 3 4 6 7 ; MODEs sort-of completed
|
||||||
SCNTXTMAXX DB 79, 39, 39, 79, 39, 39, 39, 39 ; Max text column
|
SCNTXTMAXX DB 79, 39, 39, 79, 39, 39, 39, 39 ; Max text column
|
||||||
SCNTXTMAXY DB 23, 23, 23, 23, 23, 23, 23, 23 ; Max text row
|
SCNTXTMAXY DB 23, 23, 23, 23, 23, 23, 23, 23 ; Max text row
|
||||||
SCNBYTES DB 08, 08, 08, 01, 01, 01, 01, 01 ; Bytes per character
|
SCNBYTES DB 08, 08, 08, 01, 08, 01, 01, 01 ; Bytes per character
|
||||||
SCNCOLOURS DB 03, 15, 07, 01, 01, 01, 01, 01 ; Colours-1
|
SCNCOLOURS DB 03, 15, 15, 01, 07, 01, 01, 01 ; Colours-1
|
||||||
SCNPIXELS DB 04, 02, 07, 00, 00, 00, 00, 00 ; Pixels per byte
|
SCNPIXELS DB 04, 02, 02, 00, 07, 00, 00, 00 ; Pixels per byte
|
||||||
SCNTYPE DB 65, 64,128, 01, 00, 00, 00, 32 ; Screen type
|
SCNFALLBACK DB 03, 04, 05, 03, 04, 05, 06, 07 ; Fall back if unsupported
|
||||||
|
SCNTYPE DB 65, 64, 66, 01,128, 02, 00, 32 ; Screen type
|
||||||
* b7=FastDraw -> HGR mode
|
* b7=FastDraw -> HGR mode
|
||||||
* b6=SHR mode on Apple IIgs
|
* b6=SHR mode on Apple IIgs
|
||||||
* b5=Teletext
|
* b5=Teletext
|
||||||
|
* b1=40COL/20COL
|
||||||
* b0=40COL/80COL
|
* b0=40COL/80COL
|
||||||
|
|
||||||
* Colour table
|
* Colour table
|
||||||
@ -704,15 +706,16 @@ VDUINIT STA VDUQ+8
|
|||||||
* MODEs available:
|
* MODEs available:
|
||||||
* MODE 0 - 640x200 SHR graphics, 80x24 bitmap text (GS only)
|
* MODE 0 - 640x200 SHR graphics, 80x24 bitmap text (GS only)
|
||||||
* MODE 1 - 320x200 SHR graphics, 40x24 bitmap text (GS only)
|
* MODE 1 - 320x200 SHR graphics, 40x24 bitmap text (GS only)
|
||||||
* MODE 2 - 280x192 HGR graphics, 40x24 bitmap text
|
* MODE 2 --> MODE 1
|
||||||
* MODE 3 - 80x24 text
|
* MODE 3 - 80x24 text
|
||||||
* MODE 4 --> MODE 6
|
* MODE 4 - 280x192 HGR graphics, 40x24 bitmap text
|
||||||
* MODE 5 --> MODE 6
|
* MODE 5 --> MODE 6
|
||||||
* MODE 6 - 40x24 text
|
* MODE 6 - 40x24 text
|
||||||
* MODE 7 - 40x24 with $80-$9F converted to spaces
|
* MODE 7 - 40x24 with $80-$9F converted to spaces
|
||||||
*
|
*
|
||||||
* On //e, MODE 0 -> MODE 3
|
* On //e, MODE 0 -> MODE 3
|
||||||
* MODE 1 -> MODE 6
|
* MODE 1 -> MODE 4
|
||||||
|
* MODE 2 -> MODE 5
|
||||||
*
|
*
|
||||||
VDU22 JSR NEGCALL ; Find machine type
|
VDU22 JSR NEGCALL ; Find machine type
|
||||||
AND #$0F
|
AND #$0F
|
||||||
@ -721,16 +724,22 @@ VDU22 JSR NEGCALL ; Find machine type
|
|||||||
:NOTGS STA VDUBANK
|
:NOTGS STA VDUBANK
|
||||||
LDA VDUQ+8
|
LDA VDUQ+8
|
||||||
AND #$07
|
AND #$07
|
||||||
|
; jgh
|
||||||
BIT VDUBANK
|
BIT VDUBANK
|
||||||
BMI :INIT ; Skip if GS
|
BMI :INIT ; All MODEs supported
|
||||||
CMP #$00 ; Mode 0?
|
CMP #$03
|
||||||
BNE :S1
|
BCS :INIT
|
||||||
LDA #$03 ; --> Mode 3 instead
|
ADC #$03 ; Fall back to replacement MODE
|
||||||
BRA :INIT
|
|
||||||
:S1 CMP #$01 ; Mode 1?
|
; BIT VDUBANK
|
||||||
BNE :INIT
|
; BMI :INIT ; Skip if GS
|
||||||
LDA #$06 ; --> Mode 6 instead
|
; CMP #$00 ; Mode 0?
|
||||||
|
; BNE :S1
|
||||||
|
; LDA #$03 ; --> Mode 3 instead
|
||||||
|
; BRA :INIT
|
||||||
|
;:S1 CMP #$01 ; Mode 1?
|
||||||
|
; BNE :INIT
|
||||||
|
; LDA #$06 ; --> Mode 6 instead
|
||||||
|
|
||||||
:INIT TAX ; Set up MODE
|
:INIT TAX ; Set up MODE
|
||||||
STX VDUMODE ; Screen MODE
|
STX VDUMODE ; Screen MODE
|
||||||
|
Loading…
Reference in New Issue
Block a user