rep #$10
.i16
- ldx #kstack_top
+ ldx #kstack_top-1
txs ; Stack (6502 not C)
lda #'z'
sta $FE20
- ldx #kstackc_top ; C stack
- sta sp
+ ldx #kstackc_top-1 ; C stack
+ stx sp
ldx #__BSS_RUN__
.a16
lda #__BSS_SIZE__-2 ; must be >=2 bytes or else
- stz 0,x
+ stz a:0,x
mvn 0,0
sep #$30
lda #'x'
sta $FE20
-; jsr init_early
+ jsr init_early
lda #'.'
sta $FE20
jsr init_hardware
sta $FE20
lda #10
sta $FE20
-
- rep #$30
- .a16
- .i16
-
- ldx #U_DATA
- ldy #U_DATA+1
- lda #U_DATA__TOTALSIZE-2
- stz 0,x
- mvn KERNEL_FAR,KERNEL_FAR
-
- sep #$30
- .a8
- .i8
-
- lda #'G'
- sta $FE20
jsr _fuzix_main ; Should never return
sei ; Spin
stop: bra stop
.i8
init_hardware:
- ; set system RAM size for test purposes
+ ; set system RAM size (FIXME: dynamic probe)
rep #$10
.i16
ldx #512
stx _ramsize
ldx #512-64
stx _procmem
- ldx #syscall_vector
- stx syscall
- rep #$10
+ sep #$10
.i8
rts
lda _hd_kmap ; page number
pha
plb ; data now points into user app
- ldy #$00FE
+ ldy #$FE00
phy
pld ; DP is now the I/O space
lda _hd_kmap ; page number
pha
plb ; data now points into user app
- ldy #$00FE
+ ldy #$FE00
phy
pld ; DP is now the I/O space