Skip to content

Commit 17e0f76

Browse files
committed
A5200: Change mapping of DINDEX to graphic modes.
Use bit 7 to signal text mode and bit 6 for 20 columns, this simplify detecting of text and 20 column modes.
1 parent f5671cd commit 17e0f76

2 files changed

Lines changed: 25 additions & 22 deletions

File tree

src/interp/a5200/graphics.asm

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,17 @@
4545
; # size type bytes RAM DL DINDEX
4646
; /line size
4747
; -----------------------------------------------
48-
; 0 : 40x24 TEXT 40 1k 32 2
49-
; 1 : 20x24 TEXT 20 0.5k 32 0
50-
; 2 : 20x12 TEXT 20 0.25k 20 1
51-
; 7 : 160x96 2bpp 40 4k 104 4
52-
; 8 : 320x192 1bpp 40 8k 202 5
53-
; 9 : 80x192 4bpp 40 8k 202 6
54-
; 10 : 80x192 4bpp 40 8k 202 6
55-
; 11 : 80x192 4bpp 40 8k 202 6
56-
; 12 : 40x24 TEXT 40 1k 32 2
57-
; 13 : 40x12 TEXT 40 0.5k 20 3
58-
; 15 : 160x192 2bpp 40 8k 202 7
48+
; 0 : 40x24 TEXT 40 1k 32 6 + 128
49+
; 1 : 20x24 TEXT 20 0.5k 32 4 + 64 + 128
50+
; 2 : 20x12 TEXT 20 0.25k 20 5 + 64 + 128
51+
; 7 : 160x96 2bpp 40 4k 104 0
52+
; 8 : 320x192 1bpp 40 8k 202 1
53+
; 9 : 80x192 4bpp 40 8k 202 2
54+
; 10 : 80x192 4bpp 40 8k 202 2
55+
; 11 : 80x192 4bpp 40 8k 202 2
56+
; 12 : 40x24 TEXT 40 1k 32 6 + 128
57+
; 13 : 40x12 TEXT 40 0.5k 20 6 + 128
58+
; 15 : 160x192 2bpp 40 8k 202 3
5959
;
6060
; DL Types specs:
6161
;
@@ -80,8 +80,10 @@
8080

8181
tay
8282

83-
ldx dl_type, y
84-
stx DINDEX
83+
lda dl_type, y
84+
sta DINDEX
85+
and #7
86+
tax
8587

8688
lda GPRIOR ; Mask bits 6-7 of GPRIOR, and set from table
8789
eor dl_mode, y
@@ -195,15 +197,17 @@ setp:
195197

196198
palette: .byte $28,$CA,$94,$46,$00
197199

198-
dl_type: .byte 2, 0, 1, 2, 2, 2, 2, 4, 5, 6, 6, 6, 2, 3, 2, 7
200+
;dl_type: .byte 2, 0, 1, 2, 2, 2, 2, 4, 5, 6, 6, 6, 2, 3, 2, 7
201+
; Byte copied to DINDEX
202+
dl_type: .byte $86,$C4,$C5,$86,$86,$86,$86,$00,$01,$02,$02,$02,$86,$87,$86,$03
199203
; Encode ANTIC mode and GPRIOR values
200204
dl_mode: .byte $02,$06,$07,$02,$02,$02,$02,$0D,$0F,$4F,$8F,$CF,$04,$05,$02,$0E
201205

202-
mem_adr_l: .lobytes $3E20, $3F10, $3C40, $3E20, $3100, $21F0, $21F0, $21F0
203-
mem_adr_h: .hibytes $3E20, $3F10, $3C40, $3E20, $3100, $21F0, $21F0, $21F0
204-
dl_adr_l: .lobytes $3E00, $3EF0, $3C20, $3E00, $3098, $2126, $2126, $2126
205-
dl_adr_h: .hibytes $3E00, $3EF0, $3C20, $3E00, $3098, $2126, $2126, $2126
206-
rows: .byte 24, 12, 24, 12, 96, 192, 192, 192
206+
mem_adr_l: .lobytes $3100, $21F0, $21F0, $21F0, $3E20, $3F10, $3C40, $3E20
207+
mem_adr_h: .hibytes $3100, $21F0, $21F0, $21F0, $3E20, $3F10, $3C40, $3E20
208+
dl_adr_l: .lobytes $3098, $2126, $2126, $2126, $3E00, $3EF0, $3C20, $3E00
209+
dl_adr_h: .hibytes $3098, $2126, $2126, $2126, $3E00, $3EF0, $3C20, $3E00
210+
rows: .byte 96, 192, 192, 192, 24, 12, 24, 12
207211

208212
.include "deftok.inc"
209213
deftoken "GRAPHICS"

src/interp/a5200/putchar.asm

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,8 @@ conv_ok:
7878
asl ; x 10 = 230
7979
asl ; x 20 = 460
8080
rol tmp4+1
81-
ldx DINDEX
82-
cmp #2
83-
bcc m20
81+
bit DINDEX
82+
bvs m20
8483
asl ; x 40 = 920
8584
rol tmp4+1
8685
m20:

0 commit comments

Comments
 (0)