diff --git a/libsrc/c128/crt0.s b/libsrc/c128/crt0.s index d0a61ab00..a9fd8e6d1 100644 --- a/libsrc/c128/crt0.s +++ b/libsrc/c128/crt0.s @@ -28,52 +28,56 @@ IRQInd = $2FD ; JMP $0000 - used as indirect IRQ vector ; BASIC header with a SYS call - .org $1BFF + .org $1BFF .word Head ; Load address Head: .word @Next .word .version ; Line number - .byte $9E,"7181" ; SYS 7181 + .byte $9E ; SYS token + .byte <(((Start / 1000) .mod 10) + $30) + .byte <(((Start / 100) .mod 10) + $30) + .byte <(((Start / 10) .mod 10) + $30) + .byte <(((Start / 1) .mod 10) + $30) .byte $00 ; End of BASIC line @Next: .word 0 ; BASIC end marker - .reloc + .reloc ; ------------------------------------------------------------------------ ; Actual code ; Close open files - jsr CLRCH +Start: jsr CLRCH ; Switch to the second charset - lda #14 - jsr BSOUT + lda #14 + jsr BSOUT ; Before doing anything else, we have to setup our banking configuration. ; Otherwise just the lowest 16K are actually RAM. Writing through the ROM ; to the underlying RAM works, but it is bad style. - lda MMU_CR ; Get current memory configuration... + lda MMU_CR ; Get current memory configuration... pha ; ...and save it for later lda #MMU_CFG_CC65 ; Bank0 with kernal ROM - sta MMU_CR + sta MMU_CR ; Save the zero page locations we need ldx #zpspace-1 -L1: lda sp,x - sta zpsave,x - dex +L1: lda sp,x + sta zpsave,x + dex bpl L1 ; Clear the BSS data - jsr zerobss + jsr zerobss ; Save system stuff and setup the stack - pla ; Get MMU setting - sta mmusave + pla ; Get MMU setting + sta mmusave tsx stx spsave ; Save the system stack pointer diff --git a/libsrc/c16/crt0.s b/libsrc/c16/crt0.s index 805d1c5ab..9ac67f8f3 100644 --- a/libsrc/c16/crt0.s +++ b/libsrc/c16/crt0.s @@ -26,14 +26,18 @@ .word Head ; Load address Head: .word @Next .word .version ; Line number - .byte $9E,"4109" ; SYS 4109 + .byte $9E ; SYS token + .byte <(((Start / 1000) .mod 10) + $30) + .byte <(((Start / 100) .mod 10) + $30) + .byte <(((Start / 10) .mod 10) + $30) + .byte <(((Start / 1) .mod 10) + $30) .byte $00 ; End of BASIC line @Next: .word 0 ; BASIC end marker ; ------------------------------------------------------------------------ ; Actual code - ldx #zpspace-1 +Start: ldx #zpspace-1 L1: lda sp,x sta zpsave,x ; save the zero page locations we need dex diff --git a/libsrc/c64/crt0.s b/libsrc/c64/crt0.s index 18ef10904..9f434ecbe 100644 --- a/libsrc/c64/crt0.s +++ b/libsrc/c64/crt0.s @@ -25,14 +25,18 @@ .word Head ; Load address Head: .word @Next .word .version ; Line number - .byte $9E,"2061" ; SYS 2061 + .byte $9E ; SYS token + .byte <(((Start / 1000) .mod 10) + $30) + .byte <(((Start / 100) .mod 10) + $30) + .byte <(((Start / 10) .mod 10) + $30) + .byte <(((Start / 1) .mod 10) + $30) .byte $00 ; End of BASIC line @Next: .word 0 ; BASIC end marker ; ------------------------------------------------------------------------ ; Actual code - ldx #zpspace-1 +Start: ldx #zpspace-1 L1: lda sp,x sta zpsave,x ; Save the zero page locations we need dex diff --git a/libsrc/pet/crt0.s b/libsrc/pet/crt0.s index 23ff90ea3..135147d36 100644 --- a/libsrc/pet/crt0.s +++ b/libsrc/pet/crt0.s @@ -24,14 +24,18 @@ .word Head ; Load address Head: .word @Next .word .version ; Line number - .byte $9E,"1037" ; SYS 1037 + .byte $9E ; SYS token + .byte <(((Start / 1000) .mod 10) + $30) + .byte <(((Start / 100) .mod 10) + $30) + .byte <(((Start / 10) .mod 10) + $30) + .byte <(((Start / 1) .mod 10) + $30) .byte $00 ; End of BASIC line @Next: .word 0 ; BASIC end marker ; ------------------------------------------------------------------------ ; Actual code - ldx #zpspace-1 +Start: ldx #zpspace-1 L1: lda sp,x sta zpsave,x ; Save the zero page locations we need dex diff --git a/libsrc/plus4/crt0.s b/libsrc/plus4/crt0.s index 9cf776a77..e5e2fd7bf 100644 --- a/libsrc/plus4/crt0.s +++ b/libsrc/plus4/crt0.s @@ -28,14 +28,18 @@ IRQInd = $500 ; JMP $0000 - used as indirect IRQ vector .word Head ; Load address Head: .word @Next .word .version ; Line number - .byte $9E,"4109" ; SYS 4109 + .byte $9E ; SYS token + .byte <(((Start / 1000) .mod 10) + $30) + .byte <(((Start / 100) .mod 10) + $30) + .byte <(((Start / 10) .mod 10) + $30) + .byte <(((Start / 1) .mod 10) + $30) .byte $00 ; End of BASIC line @Next: .word 0 ; BASIC end marker ; ------------------------------------------------------------------------ ; Actual code - sei ; No interrupts since we're banking out the ROM +Start: sei ; No interrupts since we're banking out the ROM sta ENABLE_RAM ldx #zpspace-1 L1: lda sp,x diff --git a/libsrc/vic20/crt0.s b/libsrc/vic20/crt0.s index a5d613865..559f22dff 100644 --- a/libsrc/vic20/crt0.s +++ b/libsrc/vic20/crt0.s @@ -25,18 +25,17 @@ Head: .word @Next .word .version ; Line number .byte $9E ; SYS token - .byte <(((@Start / 1000) .mod 10) + $30) - .byte <(((@Start / 100) .mod 10) + $30) - .byte <(((@Start / 10) .mod 10) + $30) - .byte <(((@Start / 1) .mod 10) + $30) + .byte <(((Start / 1000) .mod 10) + $30) + .byte <(((Start / 100) .mod 10) + $30) + .byte <(((Start / 10) .mod 10) + $30) + .byte <(((Start / 1) .mod 10) + $30) .byte $00 ; End of BASIC line @Next: .word 0 ; BASIC end marker -@Start: ; ------------------------------------------------------------------------ ; Actual code - ldx #zpspace-1 +Start: ldx #zpspace-1 L1: lda sp,x sta zpsave,x ; Save the zero page locations we need dex