A2osX/A2osX.S.QC.txt

180 lines
3.3 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
PR#3
PREFIX /A2OSX.BUILD
2015-03-14 21:48:35 +00:00
NEW
INC 1
2016-06-07 06:10:18 +00:00
AUTO 8
2015-03-14 21:48:35 +00:00
.LIST OFF
*--------------------------------------
* ****** START OF MLI QUIT CODE ******
2016-06-07 06:10:18 +00:00
* Load Address :$1000-$12FF
2015-03-14 21:48:35 +00:00
*--------------------------------------
.PH $1000
*--------------------------------------
2016-06-07 06:10:18 +00:00
* Kernel Stage 1
*--------------------------------------
2015-03-14 21:48:35 +00:00
A2osX.QC.Start .EQ *
A2osX.QC cld
2015-06-03 18:30:57 +00:00
jmp A2osX.QC.Start1
2016-06-07 06:10:18 +00:00
A2osX.QC.Prefix .BS 64
2015-06-03 18:30:57 +00:00
A2osX.QC.Start1 sei
ldx #$FF
txs
cli
bit RROMBNK1
2015-03-14 21:48:35 +00:00
>LDYAI A2osX.QC
>STYA POWERUP
jsr SETPWRC
lda #$01
sta MEMTABL+$17 protect ProDOS MLI Page
ldx #$16
2015-03-14 21:48:35 +00:00
.1 stz MEMTABL,x Reset ProDOS memory bitmap
dex
bne .1
2015-03-14 21:48:35 +00:00
lda #$CF protect zero page, stack and page 1
sta MEMTABL
lda #$8C Reset 80 col screen ($0C=FF=HOME)
jsr $C300
2018-07-12 15:20:39 +00:00
>LDYAI MSG.INIT1
2015-03-14 21:48:35 +00:00
jsr A2osX.QC.PrintAX
.3 jsr MLI
.DA #MLISETPREFIX
2015-03-15 22:00:40 +00:00
.DA MLISETPREFIX00
2015-03-14 21:48:35 +00:00
bcc .4
2015-06-03 18:30:57 +00:00
2018-07-12 15:20:39 +00:00
>LDYAI MSG.SETPREFIXKO
2015-03-14 21:48:35 +00:00
jsr A2osX.QC.PrintAX
2018-07-12 15:20:39 +00:00
>LDYAI A2osX.QC.Prefix
2015-03-14 21:48:35 +00:00
jsr A2osX.QC.PrintAX
2015-06-03 18:30:57 +00:00
>DEBUG
2015-06-03 18:30:57 +00:00
2015-03-14 21:48:35 +00:00
bra .3
2018-07-12 15:20:39 +00:00
.4 >LDYAI MSG.SETPREFIXOK
2015-03-14 21:48:35 +00:00
jsr A2osX.QC.PrintAX
jsr A2osX.QC.KLoad
bcs *
2016-06-07 06:10:18 +00:00
* >LDYAI GO.Reset
* >STYA POWERUP
* bit RROMBNK1
* jsr SETPWRC
2015-03-14 21:48:35 +00:00
2018-07-12 15:20:39 +00:00
.8 >LDYAI MSG.INIT1OK
2015-06-03 18:30:57 +00:00
jsr A2osX.QC.PrintAX
>DEBUGOA
2016-06-07 06:10:18 +00:00
jmp $2000
*--------------------------------------
2018-07-12 15:20:39 +00:00
A2osX.QC.KLoad >LDYAI MSG.KLOAD
jsr A2osX.QC.PrintAX
2015-03-14 21:48:35 +00:00
ldx A2osX.QC.Prefix
2015-03-14 21:48:35 +00:00
ldy #0
.2 inx
iny
lda SYSKERNEL,y
sta A2osX.QC.Prefix,x
cpy SYSKERNEL
2015-03-14 21:48:35 +00:00
bne .2
stx A2osX.QC.Prefix
2015-03-14 21:48:35 +00:00
2018-07-12 15:20:39 +00:00
>LDYAI A2osX.QC.Prefix
2015-03-14 21:48:35 +00:00
jsr A2osX.QC.PrintAX
jsr MLI
.DA #MLIOPEN
2015-03-15 22:00:40 +00:00
.DA MLIOPEN00
2015-03-14 21:48:35 +00:00
bcs .9
2015-03-15 22:00:40 +00:00
lda MLIOPEN00+5
sta MLIREAD00+1
2015-03-15 22:00:40 +00:00
sta MLICLOSE00+1
2015-03-14 21:48:35 +00:00
jsr MLI
.DA #MLIREAD
.DA MLIREAD00
php
pha
2015-03-14 21:48:35 +00:00
jsr MLI
.DA #MLICLOSE
2015-03-15 22:00:40 +00:00
.DA MLICLOSE00
2015-03-14 21:48:35 +00:00
pla
plp
bcc .9
2018-07-12 15:20:39 +00:00
>LDYAI MSG.KLOAD.KO
jsr A2osX.QC.PrintAX
.9 rts
2015-03-14 21:48:35 +00:00
*--------------------------------------
A2osX.QC.PrintAX
sta TmpPtr1
stx TmpPtr1+1
2015-03-14 21:48:35 +00:00
lda (TmpPtr1)
tax
beq .9
ldy #1
.1 lda (TmpPtr1),y
ora #$80
jsr COUT
iny
dex
bne .1
.9 jsr CROUT
rts
*--------------------------------------
2015-03-15 22:00:40 +00:00
MLISETPREFIX00 .DA #1
2015-03-14 21:48:35 +00:00
.DA A2osX.QC.Prefix
*--------------------------------------
2015-03-15 22:00:40 +00:00
MLIOPEN00 .DA #3
.DA A2osX.QC.Prefix
.DA $C00
2015-03-14 21:48:35 +00:00
.BS 1
*--------------------------------------
MLIREAD00 .DA #4
2015-03-14 21:48:35 +00:00
.BS 1
.DA $2000
2017-01-12 17:43:45 +00:00
.DA $8000
2015-03-14 21:48:35 +00:00
.BS 2
*--------------------------------------
2015-03-15 22:00:40 +00:00
MLICLOSE00 .DA #1
2015-03-14 21:48:35 +00:00
.BS 1
*--------------------------------------
SYSKERNEL >PSTR "SYS/KERNEL"
2015-03-14 21:48:35 +00:00
*--------------------------------------
MSG.INIT1 >PSTR "A2osX[Stage1]:Init"
MSG.SETPREFIXOK >PSTR "Set Prefix OK"
MSG.SETPREFIXKO >PSTR "Insert Vol:"
MSG.KLOAD >PSTR "Loading Kernel..."
MSG.KLOAD.KO >PSTR "Error While Loading Kernel."
MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete."
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
.BS $1300-*
2015-03-14 21:48:35 +00:00
.EP
*--------------------------------------
MAN
SAVE /A2OSX.SRC/A2OSX.S.QC
LOAD /A2OSX.SRC/A2OSX.S
2015-03-14 21:48:35 +00:00
ASM