A2osX/A2osX.S.QC.txt

239 lines
4.6 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
PR#3
2016-03-13 21:55:47 +00:00
PREFIX /A2OSX.BOOT
DELETE A2OSX.SYSTEM
2015-06-03 18:30:57 +00:00
PREFIX /A2OSX.SRC
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
*--------------------------------------
2015-03-15 22:00:40 +00:00
MLIOPEN00.PATH .EQ $200
MLIOPEN00.BUFF .EQ $0C00 1k Buffer for MLI open
2016-06-07 06:10:18 +00:00
MLIREAD00.ADDR .EQ $2000 for loading KERNEL
MLIREAD01.ADDR .EQ A2osX.HZ for loading CONFIG
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
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 #$07
2015-03-14 21:48:35 +00:00
sta MEMTABL+$17 protect ProDOS & A2osX global page
lda #$8C Reset 80 col screen ($0C=FF=HOME)
jsr $C300
2016-06-07 06:10:18 +00:00
>LDAXI 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
2015-03-14 21:48:35 +00:00
>LDAXI MSG.SETPREFIXKO
jsr A2osX.QC.PrintAX
>LDAXI A2osX.QC.Prefix
jsr A2osX.QC.PrintAX
2015-06-03 18:30:57 +00:00
>DEBUGOA
2015-06-03 18:30:57 +00:00
2015-03-14 21:48:35 +00:00
bra .3
.4 >LDAXI MSG.SETPREFIXOK
jsr A2osX.QC.PrintAX
>LDAXI MSG.KLOADING
jsr A2osX.QC.PrintAX
jsr A2osX.QC.KLoad
bcs .9
>LDAXI MSG.CLOADING
jsr A2osX.QC.PrintAX
jsr A2osX.QC.CLoad
bcc .8
>LDAXI MSG.CLOADING.KO
jsr A2osX.QC.PrintAX
ldx #15
.5 lda A2OSXCONF.DEFAULT,x
sta A2osX.HZ,x
dex
bpl .5
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
.8 >LDAXI 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
2015-06-03 18:30:57 +00:00
2015-03-14 21:48:35 +00:00
.9 >LDAXI MSG.KLOADING.KO
jsr A2osX.QC.PrintAX
bra *
*--------------------------------------
A2osX.QC.KLoad >LDYAI SYSKERNEL
jsr A2osX.QC.FOPENYA
bcs .9
>LDYAI MLIREAD00K
jsr A2osX.QC.FREADYA
.9 rts
*--------------------------------------
A2osX.QC.CLoad >LDYAI A2OSXCONF
jsr A2osX.QC.FOPENYA
bcs .9
>LDYAI MLIREAD00C
jsr A2osX.QC.FREADYA
.9 rts
*--------------------------------------
A2osX.QC.FOPENYA
>STYA TmpPtr1
ldx A2osX.QC.Prefix
2015-03-14 21:48:35 +00:00
.1 lda A2osX.QC.Prefix,x
2015-03-15 22:00:40 +00:00
sta MLIOPEN00.PATH,x
2015-03-14 21:48:35 +00:00
dex
bne .1
ldx A2osX.QC.Prefix
ldy #0
.2 iny
lda (TmpPtr1),y
2015-03-15 22:00:40 +00:00
sta MLIOPEN00.PATH+1,x
2015-03-14 21:48:35 +00:00
inx
tya
cmp (TmpPtr1)
2015-03-14 21:48:35 +00:00
bne .2
2015-03-15 22:00:40 +00:00
stx MLIOPEN00.PATH
2015-03-14 21:48:35 +00:00
2015-03-15 22:00:40 +00:00
>LDAXI MLIOPEN00.PATH
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 MLIREAD00K+1
sta MLIREAD00C+1
2015-03-15 22:00:40 +00:00
sta MLICLOSE00+1
.9 rts
*--------------------------------------
A2osX.QC.FREADYA
>STYA .1
2015-03-14 21:48:35 +00:00
jsr MLI
.DA #MLIREAD
.1 .DA $ffff
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
rts
2015-03-14 21:48:35 +00:00
*--------------------------------------
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
*--------------------------------------
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 MLIOPEN00.PATH
.DA MLIOPEN00.BUFF
2015-03-14 21:48:35 +00:00
.BS 1
MLIREAD00K .DA #4
2015-03-14 21:48:35 +00:00
.BS 1
2015-03-15 22:00:40 +00:00
.DA MLIREAD00.ADDR
2017-01-12 17:43:45 +00:00
.DA $8000
2015-03-14 21:48:35 +00:00
.BS 2
MLIREAD00C .DA #4
.BS 1
.DA MLIREAD01.ADDR
.DA 16
.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"
A2OSXCONF >PSTR "A2osX.CONF"
*--------------------------------------
A2OSXCONF.DEFAULT
.DA #6 60hz
.BS 7
.DA #0 ChRoot
.BS 7 All Slots marked as "Free"
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.KLOADING >PSTR "Loading Kernel..."
MSG.KLOADING.KO >PSTR "Error While Loading Kernel."
MSG.CLOADING >PSTR "Reading Kernel Config File..."
MSG.CLOADING.KO >PSTR "Error While Reading Kernel Config File, Using Default."
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.S.QC
LOAD A2OSX.S
ASM