A2osX/A2osX.S.QC.txt
2016-10-24 17:54:43 +02:00

181 lines
3.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PR#3
PREFIX /A2OSX.BOOT
DELETE A2OSX.SYSTEM
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 8
.LIST OFF
*--------------------------------------
* ****** START OF MLI QUIT CODE ******
* Load Address :$1000-$12FF
*--------------------------------------
MLIOPEN00.PATH .EQ $200
MLIOPEN00.BUFF .EQ $0C00 1k Buffer for MLI open
MLIREAD00.ADDR .EQ $2000 for loading KERNEL
*--------------------------------------
.PH $1000
*--------------------------------------
* Kernel Stage 1
*--------------------------------------
A2osX.QC.Start .EQ *
A2osX.QC cld
jmp A2osX.QC.Start1
A2osX.QC.Prefix .BS 64
A2osX.QC.Start1 sei
ldx #$FF
txs
cli
bit RROMBNK1
>LDYAI A2osX.QC
>STYA POWERUP
jsr SETPWRC
ldx #$17
.1 stz MEMTABL,x Reset ProDOS memory bitmap
dex
bpl .1
lda #$CF protect zero page, stack and page 1
sta MEMTABL
lda #$03
sta MEMTABL+$17 protect ProDOS & A2osX global page
lda #$8C Reset 80 col screen ($0C=FF=HOME)
jsr $C300
>LDAXI MSG.INIT1
jsr A2osX.QC.PrintAX
ldx #0
.2 lda $1200,x Setup Global Page
sta $BE00,x
inx
bne .2
.3 jsr MLI
.DA #MLISETPREFIX
.DA MLISETPREFIX00
bcc .4
>LDAXI MSG.SETPREFIXKO
jsr A2osX.QC.PrintAX
>LDAXI A2osX.QC.Prefix
jsr A2osX.QC.PrintAX
>DEBUGOA
bra .3
.4 >LDAXI MSG.SETPREFIXOK
jsr A2osX.QC.PrintAX
>LDAXI MSG.KLOADING
jsr A2osX.QC.PrintAX
jsr A2osX.QC.KLoad
bcs .9
* >LDYAI GO.Reset
* >STYA POWERUP
* bit RROMBNK1
* jsr SETPWRC
>LDAXI MSG.INIT1OK
jsr A2osX.QC.PrintAX
>DEBUGOA
jmp $2000
.9 >LDAXI MSG.KLOADING.KO
jsr A2osX.QC.PrintAX
bra *
*--------------------------------------
A2osX.QC.KLoad ldx A2osX.QC.Prefix
.1 lda A2osX.QC.Prefix,x
sta MLIOPEN00.PATH,x
dex
bne .1
ldx A2osX.QC.Prefix
ldy #0
.2 lda SYSKERNEL+1,y
sta MLIOPEN00.PATH+1,x
inx
iny
cpy SYSKERNEL
bne .2
stx MLIOPEN00.PATH
>LDAXI MLIOPEN00.PATH
jsr A2osX.QC.PrintAX
jsr MLI
.DA #MLIOPEN
.DA MLIOPEN00
bcs .9
lda MLIOPEN00+5
sta MLIREAD00+1
sta MLICLOSE00+1
jsr MLI
.DA #MLIREAD
.DA MLIREAD00
bcs .9
jsr MLI
.DA #MLICLOSE
.DA MLICLOSE00
.9 rts
*--------------------------------------
A2osX.QC.PrintAX
>STAX TmpPtr1
lda (TmpPtr1)
tax
beq .9
ldy #1
.1 lda (TmpPtr1),y
ora #$80
jsr COUT
iny
dex
bne .1
.9 jsr CROUT
rts
*--------------------------------------
MLISETPREFIX00 .DA #1
.DA A2osX.QC.Prefix
MLIOPEN00 .DA #3
.DA MLIOPEN00.PATH
.DA MLIOPEN00.BUFF
.BS 1
MLIREAD00 .DA #4
.BS 1
.DA MLIREAD00.ADDR
.DA $2FFA
.BS 2
MLICLOSE00 .DA #1
.BS 1
*--------------------------------------
SYSKERNEL >PSTR "SYS/KERNEL"
*--------------------------------------
MSG.INIT1 >PSTR "A2osX[Stage1]:Init"
MSG.SETPREFIXOK >PSTR "Set Prefix OK"
MSG.SETPREFIXKO >PSTR "Insert Vol:"
MSG.KLOADING >PSTR "Loading Kernel..."
MSG.KLOADING.KO >PSTR "Error While Loading Kernel."
MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete."
*--------------------------------------
.BS $1300-*
.EP
*--------------------------------------
MAN
SAVE A2OSX.S.QC
LOAD A2OSX.S
ASM