initial code for clearing screen with DMAgic, does not work yet
This commit is contained in:
1 parent
d081ea4ffc
commit
7d7dfa87d8
2 files changed
+50
-2
No files matched your search
@@ -25,7 +25,7 @@ m65_dmagic_oper_fill:
|
|||||||
|
|
||||||
// Set operation type
|
// Set operation type
|
||||||
|
|
||||||
lda #$03 // operation: FILL
|
lda #($03 + $08) // operation: FILL + allow interrupts
|
||||||
sta M65_DMAGIC_LIST+6
|
sta M65_DMAGIC_LIST+6
|
||||||
|
|
||||||
// Go to common part
|
// Go to common part
|
||||||
@@ -42,7 +42,7 @@ m65_dmagic_oper_copy:
|
|||||||
|
|
||||||
// Set operation type
|
// Set operation type
|
||||||
|
|
||||||
lda #$00 // operation: COPY
|
lda #($00 + $08) // operation: COPY + allow interrupts
|
||||||
sta M65_DMAGIC_LIST+6
|
sta M65_DMAGIC_LIST+6
|
||||||
|
|
||||||
// Adapt the source addresses, go to common part
|
// Adapt the source addresses, go to common part
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// #LAYOUT# M65 KERNAL_1 #TAKE
|
// #LAYOUT# M65 KERNAL_1 #TAKE
|
||||||
// #LAYOUT# * * #IGNORE
|
// #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
// #define DMAGIC_CLRSCR
|
||||||
|
|
||||||
|
|
||||||
M65_CLRSCR:
|
M65_CLRSCR:
|
||||||
@@ -30,6 +31,51 @@ m65_clrscr_takeover: // .A has to be 0
|
|||||||
sta M65_TXTROW_OFF+0
|
sta M65_TXTROW_OFF+0
|
||||||
sta M65_TXTROW_OFF+1
|
sta M65_TXTROW_OFF+1
|
||||||
|
|
||||||
|
#if DMAGIC_CLRSCR
|
||||||
|
|
||||||
|
// XXX for some reason this does not work - find out, why
|
||||||
|
|
||||||
|
// Clear the whole screen + colour memory
|
||||||
|
|
||||||
|
// Screen size
|
||||||
|
sec
|
||||||
|
lda M65_COLGUARD+0
|
||||||
|
sbc #$01
|
||||||
|
sta M65_DMAJOB_SIZE_0
|
||||||
|
lda M65_COLGUARD+1
|
||||||
|
sbc #$00
|
||||||
|
sta M65_DMAJOB_SIZE_1
|
||||||
|
|
||||||
|
// Screen start address
|
||||||
|
lda M65_SCRBASE+0
|
||||||
|
sta M65_DMAJOB_DST_0
|
||||||
|
lda M65_SCRBASE+1
|
||||||
|
sta M65_DMAJOB_DST_1
|
||||||
|
lda M65_SCRSEG+0
|
||||||
|
sta M65_DMAJOB_DST_2
|
||||||
|
lda M65_SCRSEG+1
|
||||||
|
sta M65_DMAJOB_DST_3
|
||||||
|
|
||||||
|
// Fill with spaces
|
||||||
|
lda #$20
|
||||||
|
jsr m65_dmagic_oper_fill
|
||||||
|
|
||||||
|
// Colour RAM start address
|
||||||
|
lda #$00
|
||||||
|
sta M65_DMAJOB_DST_0
|
||||||
|
sta M65_DMAJOB_DST_1
|
||||||
|
lda #$F8
|
||||||
|
sta M65_DMAJOB_DST_2
|
||||||
|
lda #$0F
|
||||||
|
sta M65_DMAJOB_DST_3
|
||||||
|
|
||||||
|
// Fill with colour, without attributes
|
||||||
|
lda COLOR
|
||||||
|
and #$0F
|
||||||
|
jsr m65_dmagic_oper_fill
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
// Clear the whole screen+color memory
|
// Clear the whole screen+color memory
|
||||||
// XXX consider using DMAgic for this - FILL command
|
// XXX consider using DMAgic for this - FILL command
|
||||||
|
|
||||||
@@ -92,6 +138,8 @@ m65_clrscr_loop_done:
|
|||||||
|
|
||||||
plz
|
plz
|
||||||
|
|
||||||
|
#endif // no DMAGIC_CLRSCR
|
||||||
|
|
||||||
// Set screen+color base address in VIC IV
|
// Set screen+color base address in VIC IV
|
||||||
// XXX deduplicate with mode setting routine
|
// XXX deduplicate with mode setting routine
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user