mirror of
https://github.com/irmen/prog8.git
synced 2025-04-09 00:37:15 +00:00
fix irq related crash by no longer zeroing out stored vector
This commit is contained in:
parent
8a53742f31
commit
73f6880ff8
@ -300,6 +300,7 @@ internal class ProgramAndVarsGen(
|
||||
asmgen.out(" .dsection slabs_BSS")
|
||||
asmgen.out("prog8_program_end\t; end of program label for progend()")
|
||||
asmgen.out(" * = ${relocatedBssStart.toHex()}")
|
||||
asmgen.out(" .dsection BSS_NOCLEAR")
|
||||
asmgen.out("prog8_bss_section_start")
|
||||
asmgen.out(" .dsection BSS")
|
||||
if(relocateBssSlabs)
|
||||
@ -307,6 +308,7 @@ internal class ProgramAndVarsGen(
|
||||
asmgen.out(" .cerror * > ${relocatedBssEnd.toHex()}, \"too many variables/data for BSS section\"")
|
||||
asmgen.out("prog8_bss_section_size = * - prog8_bss_section_start")
|
||||
} else {
|
||||
asmgen.out(" .dsection BSS_NOCLEAR")
|
||||
asmgen.out("prog8_bss_section_start")
|
||||
asmgen.out(" .dsection BSS")
|
||||
asmgen.out("prog8_bss_section_size = * - prog8_bss_section_start")
|
||||
|
@ -6,7 +6,7 @@ conv {
|
||||
|
||||
; ----- number conversions to decimal strings ----
|
||||
|
||||
ubyte[16] @shared string_out ; result buffer for the string conversion routines
|
||||
ubyte[16] @shared string_out ; result buffer for the string conversion routines (note: uses uninitialized ARRAY instead of STR, to force it to be allocated in BSS area so it's ROM-compatible)
|
||||
|
||||
asmsub str_ub0(ubyte value @A) clobbers(X) -> str @AY {
|
||||
; ---- convert the ubyte in A in decimal string form, with left padding 0s (3 positions total)
|
||||
|
@ -1474,9 +1474,9 @@ asmsub restore_irq() clobbers(A) {
|
||||
sta cx16.VERA_IEN
|
||||
cli
|
||||
rts
|
||||
.section BSS
|
||||
.section BSS_NOCLEAR
|
||||
_orig_irqvec .word ?
|
||||
.send BSS
|
||||
.send BSS_NOCLEAR
|
||||
; !notreached!
|
||||
}}
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
; Internal library routines - always included by the compiler
|
||||
; Generic machine independent 6502 code.
|
||||
|
||||
.section BSS
|
||||
.section BSS_NOCLEAR
|
||||
orig_stackpointer .byte ? ; stores the Stack pointer register at program start
|
||||
.send BSS
|
||||
.send BSS_NOCLEAR
|
||||
|
||||
program_startup_clear_bss .proc
|
||||
; this is always ran first thing from the start routine to clear out the BSS area
|
||||
|
@ -1,6 +1,17 @@
|
||||
TODO
|
||||
====
|
||||
|
||||
atari customtarget: default output should be .xex not .prg (10.5 still did it correctly)
|
||||
|
||||
megascroll has become larger, why?
|
||||
|
||||
test irqs on various targets: set_irq, set_rasterirq
|
||||
|
||||
cleanup_at_exit : is that not romable?
|
||||
|
||||
can memset/memsetw be written without the need of a temp register variable?
|
||||
|
||||
|
||||
...
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user