A2osX/A2osX.S.QC.txt

220 lines
3.8 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
NEW
2019-04-30 16:08:47 +00:00
AUTO 3,1
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
2020-09-25 12:05:23 +00:00
2019-04-30 16:08:47 +00:00
A2osX.QC.BOOT .BS 32
A2osX.QC.ROOT .BS 32
2020-09-25 12:05:23 +00:00
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
2020-09-25 12:05:23 +00:00
2015-03-14 21:48:35 +00:00
.1 stz MEMTABL,x Reset ProDOS memory bitmap
dex
bne .1
2020-09-25 06:02:05 +00:00
2015-03-14 21:48:35 +00:00
lda #$CF protect zero page, stack and page 1
sta MEMTABL
2018-11-30 16:00:36 +00:00
2015-03-14 21:48:35 +00:00
lda #$8C Reset 80 col screen ($0C=FF=HOME)
jsr $C300
2020-09-25 12:05:23 +00:00
lda $280
beq A2osX.QC.Start2
jsr A2osX.QC.Load
bcs A2osX.QC.Start2
jmp $2000
A2osX.QC.Start2 sec
2018-07-12 15:20:39 +00:00
>LDYAI MSG.INIT1
2018-11-30 16:00:36 +00:00
jsr A2osX.QC.PrintYA
2019-12-09 15:53:14 +00:00
2015-03-14 21:48:35 +00:00
.3 jsr MLI
.DA #MLISETPREFIX
2020-09-25 12:05:23 +00:00
.DA MLISETPREFIX03
2015-03-14 21:48:35 +00:00
bcc .4
2019-12-09 15:53:14 +00:00
2018-07-12 15:20:39 +00:00
>LDYAI MSG.SETPREFIXKO
2019-12-09 15:53:14 +00:00
clc
2018-11-30 16:00:36 +00:00
jsr A2osX.QC.PrintYA
2019-04-30 16:08:47 +00:00
>LDYAI A2osX.QC.BOOT
sec
2018-11-30 16:00:36 +00:00
jsr A2osX.QC.PrintYA
2020-09-25 12:05:23 +00:00
>DEBUG
2015-03-14 21:48:35 +00:00
bra .3
2019-12-09 15:53:14 +00:00
2018-07-12 15:20:39 +00:00
.4 >LDYAI MSG.SETPREFIXOK
2019-12-09 15:53:14 +00:00
clc
jsr A2osX.QC.PrintYA
>LDYAI A2osX.QC.BOOT
2019-04-30 16:08:47 +00:00
sec
2018-11-30 16:00:36 +00:00
jsr A2osX.QC.PrintYA
2019-12-09 15:53:14 +00:00
2019-04-30 16:08:47 +00:00
ldx A2osX.QC.BOOT
stx $280 For appending SYS/KERNEL
2019-05-01 13:35:41 +00:00
2019-04-30 16:08:47 +00:00
stz $2C0,x
2019-12-09 15:53:14 +00:00
2019-04-30 16:08:47 +00:00
.5 lda A2osX.QC.BOOT,x
sta $280,x
sta $2C0-1,x BOOT sz for KERNEL
dex
bpl .5
ldx A2osX.QC.ROOT
stz $2E0,x
2020-09-25 12:05:23 +00:00
2019-04-30 16:08:47 +00:00
.6 lda A2osX.QC.ROOT,x
sta $2E0-1,x ROOT sz for KERNEL
dex
bpl .6
2019-05-01 13:35:41 +00:00
2020-09-25 12:05:23 +00:00
ldx $280
ldy #0
.7 inx
iny
lda SYSKERNEL,y
sta $280,x
cpy SYSKERNEL
bne .7
stx $280
jsr A2osX.QC.Load
2019-05-01 13:35:41 +00:00
bcs *
2018-07-12 15:20:39 +00:00
.8 >LDYAI MSG.INIT1OK
2019-04-30 16:08:47 +00:00
sec
2018-11-30 16:00:36 +00:00
jsr A2osX.QC.PrintYA
2015-06-03 18:30:57 +00:00
2020-09-25 12:05:23 +00:00
A2osX.QC.JMP >DEBUGOA
2016-06-07 06:10:18 +00:00
jmp $2000
*--------------------------------------
2020-09-25 12:05:23 +00:00
A2osX.QC.Load >LDYAI MSG.LOAD
2019-04-30 16:08:47 +00:00
clc
2018-11-30 16:00:36 +00:00
jsr A2osX.QC.PrintYA
2019-12-09 15:53:14 +00:00
2020-09-25 12:05:23 +00:00
>LDYAI $280
clc
jsr A2osX.QC.PrintYA
2015-03-14 21:48:35 +00:00
jsr MLI
.DA #MLIOPEN
2020-09-25 12:05:23 +00:00
.DA MLIOPEN03
2015-03-14 21:48:35 +00:00
bcs .9
2020-09-25 12:05:23 +00:00
lda MLIOPEN03+5
sta MLIREAD03+1
sta MLICLOSE03+1
2015-03-14 21:48:35 +00:00
jsr MLI
.DA #MLIREAD
2020-09-25 12:05:23 +00:00
.DA MLIREAD03
php
pha
2015-03-14 21:48:35 +00:00
jsr MLI
.DA #MLICLOSE
2020-09-25 12:05:23 +00:00
.DA MLICLOSE03
2015-03-14 21:48:35 +00:00
pla
plp
2018-11-30 07:42:49 +00:00
bcc .8
2019-12-09 15:53:14 +00:00
2020-09-25 12:05:23 +00:00
.9 pha
>LDYAI MSG.LOAD.KO
clc
2018-11-30 16:00:36 +00:00
jsr A2osX.QC.PrintYA
2020-09-25 12:05:23 +00:00
pla
jsr PRBYTE
jsr CROUT
2019-04-30 16:08:47 +00:00
sec
2019-12-09 15:53:14 +00:00
rts
2020-09-25 12:05:23 +00:00
.8 >LDYAI MSG.LOAD.OK
2019-12-09 15:53:14 +00:00
sec
jsr A2osX.QC.PrintYA
clc
rts
2015-03-14 21:48:35 +00:00
*--------------------------------------
2018-11-30 16:00:36 +00:00
A2osX.QC.PrintYA
2019-04-30 16:08:47 +00:00
php
2018-11-30 16:00:36 +00:00
>STYA TmpPtr1
2015-03-14 21:48:35 +00:00
lda (TmpPtr1)
tax
beq .9
2018-11-30 16:00:36 +00:00
2015-03-14 21:48:35 +00:00
ldy #1
.1 lda (TmpPtr1),y
ora #$80
jsr COUT
iny
dex
bne .1
2019-11-27 22:04:55 +00:00
2019-04-30 16:08:47 +00:00
.9 plp
bcc .99
jsr CROUT
2019-10-03 06:25:27 +00:00
.99 rts
2015-03-14 21:48:35 +00:00
*--------------------------------------
2020-09-25 12:05:23 +00:00
MLISETPREFIX03 .DA #1
2019-04-30 16:08:47 +00:00
.DA A2osX.QC.BOOT
*--------------------------------------
2020-09-25 12:05:23 +00:00
MLIOPEN03 .DA #3
2019-04-30 16:08:47 +00:00
.DA $280
.DA $C00
2015-03-14 21:48:35 +00:00
.BS 1
*--------------------------------------
2020-09-25 12:05:23 +00:00
MLIREAD03 .DA #4
2015-03-14 21:48:35 +00:00
.BS 1
.DA $2000
2020-09-25 12:05:23 +00:00
.DA $9F00 Max .SYSTEM file len
2015-03-14 21:48:35 +00:00
.BS 2
*--------------------------------------
2020-09-25 12:05:23 +00:00
MLICLOSE03 .DA #1
2015-03-14 21:48:35 +00:00
.BS 1
*--------------------------------------
2019-11-27 22:04:55 +00:00
SYSKERNEL >PSTR "sys/kernel"
2015-03-14 21:48:35 +00:00
*--------------------------------------
MSG.INIT1 >PSTR "A2osX[Stage1]:Init"
2019-12-09 15:53:14 +00:00
MSG.SETPREFIXOK >PSTR "Prefix Set: "
MSG.SETPREFIXKO >PSTR "Insert Vol:"
2020-09-25 12:05:23 +00:00
MSG.LOAD >PSTR "Loading : "
MSG.LOAD.KO >PSTR " Error $"
MSG.LOAD.OK >PSTR " OK."
MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete."
2015-03-14 21:48:35 +00:00
*--------------------------------------
2020-09-25 06:02:05 +00:00
.LIST ON
QC.FREE .EQ $1300-*
.LIST OFF
2015-03-14 21:48:35 +00:00
.EP
*--------------------------------------
MAN
2018-11-30 07:42:49 +00:00
SAVE USR/SRC/A2OSX.S.QC
LOAD USR/SRC/A2OSX.S
2015-03-14 21:48:35 +00:00
ASM