mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-08-15 08:27:41 +00:00
mode7_demo: fix interrupt bug on older (pre IIe-enhanced) systems
This commit is contained in:
@@ -9,12 +9,17 @@ all: mode7_demo.dsk
|
|||||||
$(DOS33):
|
$(DOS33):
|
||||||
cd ../dos33fs-utils && make
|
cd ../dos33fs-utils && make
|
||||||
|
|
||||||
mode7_demo.dsk: $(DOS33) MODE7_DEMO MODE7_DEMO_C
|
mode7_demo.dsk: $(DOS33) MODE7_DEMO MODE7_DEMO_C HELLO
|
||||||
# $(DOS33) -y mode7_demo.dsk BSAVE -a 0x4000 MODE7_DEMO
|
# $(DOS33) -y mode7_demo.dsk BSAVE -a 0x4000 MODE7_DEMO
|
||||||
$(DOS33) -y mode7_demo.dsk BSAVE -a 0x2000 MODE7_DEMO_C
|
$(DOS33) -y mode7_demo.dsk BSAVE -a 0x2000 MODE7_DEMO_C
|
||||||
|
$(DOS33) -y mode7_demo.dsk SAVE A HELLO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
HELLO: hello.bas
|
||||||
|
../asoft_basic-utils/tokenize_asoft < hello.bas > HELLO
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
MODE7_DEMO_C: mode7_decompress.o
|
MODE7_DEMO_C: mode7_decompress.o
|
||||||
|
10
mode7_demo/hello.bas
Normal file
10
mode7_demo/hello.bas
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
2 HOME
|
||||||
|
5 PRINT
|
||||||
|
10 PRINT "MODE7_DEMO V1.1"
|
||||||
|
20 PRINT
|
||||||
|
23 PRINT
|
||||||
|
24 PRINT "WWW.DEATER.NET/WEAVE/VMWPROD/MODE7_DEMO"
|
||||||
|
25 PRINT : PRINT
|
||||||
|
30 FOR I = 1 TO 1000: NEXT I
|
||||||
|
40 HGR
|
||||||
|
50 PRINT CHR$ (4);"BRUN MODE7_DEMO_C"
|
@@ -27,9 +27,17 @@
|
|||||||
CHUNKSIZE EQU 11 ; hardcoded, based on krg file
|
CHUNKSIZE EQU 11 ; hardcoded, based on krg file
|
||||||
|
|
||||||
interrupt_handler:
|
interrupt_handler:
|
||||||
pha ; save A ; 3
|
; pha ; save A ; 3
|
||||||
|
; instead count on the handler saving A to $45
|
||||||
|
|
||||||
; Should we save X and Y too?
|
; Should we save X and Y too?
|
||||||
|
|
||||||
|
txa
|
||||||
|
pha ; Save X
|
||||||
|
tya
|
||||||
|
pha ; Save Y
|
||||||
|
|
||||||
|
|
||||||
; inc $0404 ; debug (flashes char onscreen)
|
; inc $0404 ; debug (flashes char onscreen)
|
||||||
|
|
||||||
bit $C404 ; clear 6522 interrupt by reading T1C-L ; 4
|
bit $C404 ; clear 6522 interrupt by reading T1C-L ; 4
|
||||||
@@ -278,7 +286,16 @@ done_interrupt:
|
|||||||
|
|
||||||
exit_interrupt:
|
exit_interrupt:
|
||||||
|
|
||||||
pla ; restore a ; 4
|
pla
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
tax
|
||||||
|
|
||||||
|
|
||||||
|
; pla ; restore a ; 4
|
||||||
|
|
||||||
|
lda $45 ; restore A
|
||||||
|
|
||||||
|
|
||||||
rti ; return from interrupt ; 6
|
rti ; return from interrupt ; 6
|
||||||
|
|
||||||
|
Binary file not shown.
@@ -324,7 +324,9 @@ title_routine:
|
|||||||
.include "mockingboard.s"
|
.include "mockingboard.s"
|
||||||
.include "credits.s"
|
.include "credits.s"
|
||||||
.include "interrupt_handler.s"
|
.include "interrupt_handler.s"
|
||||||
.byte 0,0,0,0,0,0,0,0
|
;.byte 0,0,0,0,0,0,0,0
|
||||||
|
;.byte 0,0,0,0,0,0,0,0 ; irq handler fix = +8 in size
|
||||||
|
|
||||||
.byte 0,0,0,0,0,0,0,0
|
.byte 0,0,0,0,0,0,0,0
|
||||||
.byte 0,0,0,0,0,0,0,0
|
.byte 0,0,0,0,0,0,0,0
|
||||||
.byte 0,0,0,0
|
.byte 0,0,0,0
|
||||||
|
Reference in New Issue
Block a user