Better code and NMI off

This commit is contained in:
Pecusx
2025-01-27 18:31:35 +01:00
parent b074f6dfa6
commit 9cd1513e2d
2 changed files with 34 additions and 24 deletions
+6
View File
@@ -54,12 +54,16 @@ dosini = $0C ; (2) wektor inicjacji po odczycie z dyskietki
rtclok = $12 ; (3) zegar czasu rzeczywistego rtclok = $12 ; (3) zegar czasu rzeczywistego
critic = $42 ; znacznik krytycznych czasowo operacji I/O
lmargin = $52 lmargin = $52
rmargin = $53 rmargin = $53
rowcrs = $54 ; wiersz kursora rowcrs = $54 ; wiersz kursora
colcrs = $55 ; (2) Kolumna kursora colcrs = $55 ; (2) Kolumna kursora
savmsc = $58 ; (2) Adres pamięci obrazu savmsc = $58 ; (2) Adres pamięci obrazu
ramtop = $6A ; liczba stron pamięci RAM
keydef = $79 ; (2) tablica konwersji kod?w klawiatury na ATASCII keydef = $79 ; (2) tablica konwersji kod?w klawiatury na ATASCII
@@ -124,6 +128,8 @@ icax4 = $034D ; rejestr pomocniczy dla operacji I/O
icax5 = $034E ; rejestr pomocniczy dla operacji I/O icax5 = $034E ; rejestr pomocniczy dla operacji I/O
icax6 = $034F ; rejestr pomocniczy dla operacji I/O icax6 = $034F ; rejestr pomocniczy dla operacji I/O
gintlk = $03FA ; znacznik cartridge'a (kopia TRIG3)
casbuf = $0400 ; bufor magnetofonu casbuf = $0400 ; bufor magnetofonu
casben = $047F ; koniec bufora magnetofonu casben = $047F ; koniec bufora magnetofonu
+28 -24
View File
@@ -42,13 +42,13 @@ MAIN_PROCESS_JMP
jmp MAIN_PROCESS jmp MAIN_PROCESS
.print "#define STARTFLASHWRITE 0x",* .print "#define STARTFLASHWRITE 0x",*
STARTFLASHWRITE STARTFLASHWRITE
mva #$A0 106 mva #$A0 ramtop
jsr opened jsr opened
lda 20 lda rtclok+2
@ cmp 20 @ cmp rtclok+2
beq @- beq @-
@ lda #$1 @ lda #$1
sta 66 sta critic
; waiting for cart to be inserted ; waiting for cart to be inserted
jsr print jsr print
.print "#define TITLE 0x",*-$2000+6 .print "#define TITLE 0x",*-$2000+6
@@ -66,25 +66,29 @@ STARTFLASHWRITE
CARTSIZE+128 CARTSIZE+128
dta c' kB...',0 dta c' kB...',0
lda #$00
sta nmien
sta $d500 sta $d500
?wloop lda $d013 ?wloop lda trig3
lsr lsr
bcc ?wloop bcc ?wloop
; cart inserted, fake it was not changed
jsr accept_bank_change
lda #$40
sta nmien
ldx #$25 ldx #$25
?lloop ; wait 0.5 sec after inserting ?lloop ; wait 0.5 sec after inserting
bit VCOUNT @ bit VCOUNT
bmi *-3 bmi @-
bit VCOUNT @ bit VCOUNT
bpl *-3 bpl @-
dex dex
bne ?lloop bne ?lloop
jsr print jsr print
dta $9b,c'Inserted.',$9b,0 dta $9b,c'Inserted.',$9b,0
; cart inserted, fake it was not changed
jsr accept_bank_change
ldx #0 ; chip address ldx #0 ; chip address
stx numgoodchipsneeded stx numgoodchipsneeded
@@ -196,7 +200,7 @@ menu
dta c'START - cartridge format and flash!',$9b dta c'START - cartridge format and flash!',$9b
;dta c'SELECT - verify; repair bad blocks.',$9b ;dta c'SELECT - verify; repair bad blocks.',$9b
dta c'OPTION - verify',$9b,0 dta c'OPTION - verify',$9b,0
?wloop lda 53279 ?wloop lda consol
cmp #7 cmp #7
beq ?wloop beq ?wloop
sta operation sta operation
@@ -268,14 +272,14 @@ crcsums
:128 .word 0 :128 .word 0
opened opened
ldx #0 ldx #0
lda #12 lda #12
jsr icio jsr icio
mwa #name icbufa,x mwa #name icbufa,x
mva #$0c icax1,x mva #$0c icax1,x
mva #$0 icax2,x mva #$0 icax2,x
lda #3 lda #3
icio sta iccmd,x icio sta iccmd,x
jmp $e456 jmp ciov
name dta 'E:',$9b name dta 'E:',$9b
CHECKINIT CHECKINIT
@@ -338,8 +342,8 @@ dmaon mva #34 dmactls
cartoff_and_accept_bank_change cartoff_and_accept_bank_change
sta $d5ff sta $d5ff
accept_bank_change accept_bank_change
lda $d013 lda trig3
sta $3fa sta gintlk
rts rts
eraseSRC_FF eraseSRC_FF
@@ -497,7 +501,7 @@ FINISH_PROCESS
rts rts
badcompare_counter dta 0,0 badcompare_counter dta 0,0
BADCOMPARE BADCOMPARE
ldy 53279 ldy consol
cpy #7 cpy #7
beq @+ beq @+
pha pha