itty-bitty-vtty/boot.S

100 lines
839 B
ArmAsm

*
* boot block.
*
* loaded at $0800
xc
xc
rel
SLOT equ $00
CMD equ $42
UNIT equ $43
BUFFER equ $44
BLOCK equ $46
ext init
boot
mx %11
db $01 ; prodos boot id
* slot 5 = x = $50, a = $3178
* slot 6 = x = $60, a = $8401
* stx :unit
* txa
* lsr
* lsr
* lsr
* lsr
* ora #$c0
stx UNIT
txa
lsr
lsr
lsr
lsr
ora #$c0
sta :prodos+2
stz SLOT
sta SLOT+1
ldy #1
lda (SLOT),y
cmp #$20
bne noboot
ldy #3
lda (SLOT),y
bne noboot
ldy #5
lda (SLOT),y
cmp #$03
bne noboot
ldy #$ff
lda (SLOT),y
sta :prodos+1
lda #1
sta CMD
sta BLOCK
stz BLOCK+1
stz BUFFER
lda #$a0 ; $0800+512
sta BUFFER+1
:read
jsr :prodos ; block 1
bcs noboot
inc BLOCK
inc BUFFER+1
inc BUFFER+1
lda BLOCK
cmp #6
bcc :read
bra :ok
:prodos jmp $0000
:ok
clc
xce
cli
jsr init
noboot
:loop wai
bra :loop
sav boot.L