2015-03-14 22:48:35 +01:00
|
|
|
|
NEW
|
2019-04-30 18:08:47 +02:00
|
|
|
|
AUTO 3,1
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.LIST OFF
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* ****** START OF MLI QUIT CODE ******
|
2016-06-07 08:10:18 +02:00
|
|
|
|
* Load Address :$1000-$12FF
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
.PH $1000
|
|
|
|
|
*--------------------------------------
|
2016-06-07 08:10:18 +02:00
|
|
|
|
* Kernel Stage 1
|
|
|
|
|
*--------------------------------------
|
2015-03-14 22:48:35 +01:00
|
|
|
|
A2osX.QC.Start .EQ *
|
|
|
|
|
A2osX.QC cld
|
2015-06-03 20:30:57 +02:00
|
|
|
|
jmp A2osX.QC.Start1
|
2020-09-25 14:05:23 +02:00
|
|
|
|
|
2021-03-17 20:49:39 +01:00
|
|
|
|
A2osX.QC.BOOT .BS 64
|
|
|
|
|
A2osX.QC.ROOT .BS 64
|
2020-09-25 14:05:23 +02:00
|
|
|
|
|
2015-06-03 20:30:57 +02:00
|
|
|
|
A2osX.QC.Start1 sei
|
|
|
|
|
ldx #$FF
|
|
|
|
|
txs
|
2022-03-13 13:52:24 +01:00
|
|
|
|
|
2015-06-03 20:30:57 +02:00
|
|
|
|
cli
|
|
|
|
|
bit RROMBNK1
|
2015-03-14 22:48:35 +01:00
|
|
|
|
>LDYAI A2osX.QC
|
|
|
|
|
>STYA POWERUP
|
|
|
|
|
jsr SETPWRC
|
|
|
|
|
|
2017-04-13 18:04:05 +02:00
|
|
|
|
lda #$01
|
|
|
|
|
sta MEMTABL+$17 protect ProDOS MLI Page
|
|
|
|
|
ldx #$16
|
2020-09-25 14:05:23 +02:00
|
|
|
|
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.1 stz MEMTABL,x Reset ProDOS memory bitmap
|
|
|
|
|
dex
|
2017-04-13 18:04:05 +02:00
|
|
|
|
bne .1
|
2020-09-25 08:02:05 +02:00
|
|
|
|
|
2015-03-14 22:48:35 +01:00
|
|
|
|
lda #$CF protect zero page, stack and page 1
|
|
|
|
|
sta MEMTABL
|
2018-11-30 17:00:36 +01:00
|
|
|
|
|
2015-03-14 22:48:35 +01:00
|
|
|
|
lda #$8C Reset 80 col screen ($0C=FF=HOME)
|
|
|
|
|
jsr $C300
|
2020-09-25 14:05:23 +02:00
|
|
|
|
|
2021-06-30 21:09:07 +02:00
|
|
|
|
ldx $280 some /PATH/.SYSTEM file passed ?
|
2020-09-25 14:05:23 +02:00
|
|
|
|
beq A2osX.QC.Start2
|
|
|
|
|
|
2021-07-05 21:15:15 +02:00
|
|
|
|
.2 dex
|
2021-05-22 23:05:12 +02:00
|
|
|
|
lda $280,x
|
|
|
|
|
cmp #'/'
|
|
|
|
|
bne .2
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2021-06-30 21:09:07 +02:00
|
|
|
|
stx A2osX.QC.BOOT get /PATH/ in QC.BOOT...
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2021-05-22 23:05:12 +02:00
|
|
|
|
.3 lda $280,x
|
|
|
|
|
sta A2osX.QC.BOOT,x
|
|
|
|
|
dex
|
|
|
|
|
bne .3
|
|
|
|
|
|
2021-06-30 21:09:07 +02:00
|
|
|
|
jsr A2osX.QC.SetPFX cd to QC.BOOT...
|
2021-05-22 23:05:12 +02:00
|
|
|
|
bcs A2osX.QC.Start2
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2020-09-25 14:05:23 +02:00
|
|
|
|
jsr A2osX.QC.Load
|
|
|
|
|
bcs A2osX.QC.Start2
|
2021-07-05 21:15:15 +02:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* $2000 = JMP $xxxx
|
|
|
|
|
* $2003 = $EE
|
|
|
|
|
* $2004 = $EE
|
|
|
|
|
* $2005 = BufSize
|
|
|
|
|
* $2006 = PathLen
|
|
|
|
|
* $2007... Path
|
|
|
|
|
*--------------------------------------
|
2021-06-30 21:09:07 +02:00
|
|
|
|
lda $2000
|
|
|
|
|
cmp #$4C
|
|
|
|
|
bne .8
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2021-06-30 21:09:07 +02:00
|
|
|
|
lda #$EE
|
|
|
|
|
cmp $2003
|
|
|
|
|
bne .8
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2021-06-30 21:09:07 +02:00
|
|
|
|
cmp $2004
|
|
|
|
|
bne .8
|
|
|
|
|
|
2021-07-05 21:15:15 +02:00
|
|
|
|
ldy $280
|
|
|
|
|
iny
|
|
|
|
|
lda $280,y
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
cmp $2005
|
|
|
|
|
bcs .8
|
|
|
|
|
|
|
|
|
|
sta $2006
|
|
|
|
|
ldx #0
|
|
|
|
|
|
|
|
|
|
.4 iny
|
|
|
|
|
lda $280,y
|
|
|
|
|
inx
|
|
|
|
|
sta $2006,x
|
|
|
|
|
cpx $2006
|
|
|
|
|
bne .4
|
2021-06-30 21:09:07 +02:00
|
|
|
|
|
|
|
|
|
.8 jmp $2000
|
2020-09-25 14:05:23 +02:00
|
|
|
|
|
|
|
|
|
A2osX.QC.Start2 sec
|
2018-07-12 17:20:39 +02:00
|
|
|
|
>LDYAI MSG.INIT1
|
2018-11-30 17:00:36 +01:00
|
|
|
|
jsr A2osX.QC.PrintYA
|
2019-12-09 16:53:14 +01:00
|
|
|
|
|
2021-05-22 23:05:12 +02:00
|
|
|
|
.3 jsr A2osX.QC.SetPFX
|
2015-03-14 22:48:35 +01:00
|
|
|
|
bcc .4
|
2019-12-09 16:53:14 +01:00
|
|
|
|
|
2018-07-12 17:20:39 +02:00
|
|
|
|
>LDYAI MSG.SETPREFIXKO
|
2019-12-09 16:53:14 +01:00
|
|
|
|
clc
|
2018-11-30 17:00:36 +01:00
|
|
|
|
jsr A2osX.QC.PrintYA
|
2019-04-30 18:08:47 +02:00
|
|
|
|
>LDYAI A2osX.QC.BOOT
|
|
|
|
|
sec
|
2018-11-30 17:00:36 +01:00
|
|
|
|
jsr A2osX.QC.PrintYA
|
2020-09-25 14:05:23 +02:00
|
|
|
|
>DEBUG
|
2015-03-14 22:48:35 +01:00
|
|
|
|
bra .3
|
2019-12-09 16:53:14 +01:00
|
|
|
|
|
2018-07-12 17:20:39 +02:00
|
|
|
|
.4 >LDYAI MSG.SETPREFIXOK
|
2019-12-09 16:53:14 +01:00
|
|
|
|
clc
|
|
|
|
|
jsr A2osX.QC.PrintYA
|
|
|
|
|
>LDYAI A2osX.QC.BOOT
|
2019-04-30 18:08:47 +02:00
|
|
|
|
sec
|
2018-11-30 17:00:36 +01:00
|
|
|
|
jsr A2osX.QC.PrintYA
|
2019-12-09 16:53:14 +01:00
|
|
|
|
|
2019-04-30 18:08:47 +02:00
|
|
|
|
ldx A2osX.QC.BOOT
|
|
|
|
|
stx $280 For appending SYS/KERNEL
|
2019-05-01 15:35:41 +02:00
|
|
|
|
|
2019-04-30 18:08:47 +02:00
|
|
|
|
stz $2C0,x
|
2019-12-09 16:53:14 +01:00
|
|
|
|
|
2019-04-30 18:08:47 +02:00
|
|
|
|
.5 lda A2osX.QC.BOOT,x
|
|
|
|
|
sta $280,x
|
2021-07-05 21:15:15 +02:00
|
|
|
|
sta $2C0-1,x BOOT sz for KERNEL
|
2019-04-30 18:08:47 +02:00
|
|
|
|
dex
|
|
|
|
|
bpl .5
|
|
|
|
|
|
|
|
|
|
ldx A2osX.QC.ROOT
|
|
|
|
|
stz $2E0,x
|
2020-09-25 14:05:23 +02:00
|
|
|
|
|
2019-04-30 18:08:47 +02:00
|
|
|
|
.6 lda A2osX.QC.ROOT,x
|
|
|
|
|
sta $2E0-1,x ROOT sz for KERNEL
|
|
|
|
|
dex
|
|
|
|
|
bpl .6
|
2019-05-01 15:35:41 +02:00
|
|
|
|
|
2020-09-25 14:05:23 +02:00
|
|
|
|
ldx $280
|
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
|
|
|
|
|
.7 inx
|
|
|
|
|
iny
|
|
|
|
|
lda SYSKERNEL,y
|
|
|
|
|
sta $280,x
|
|
|
|
|
cpy SYSKERNEL
|
|
|
|
|
bne .7
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2020-09-25 14:05:23 +02:00
|
|
|
|
stx $280
|
|
|
|
|
|
|
|
|
|
jsr A2osX.QC.Load
|
2019-05-01 15:35:41 +02:00
|
|
|
|
bcs *
|
2018-07-12 17:20:39 +02:00
|
|
|
|
.8 >LDYAI MSG.INIT1OK
|
2019-04-30 18:08:47 +02:00
|
|
|
|
sec
|
2018-11-30 17:00:36 +01:00
|
|
|
|
jsr A2osX.QC.PrintYA
|
2015-06-03 20:30:57 +02:00
|
|
|
|
|
2020-09-25 14:05:23 +02:00
|
|
|
|
A2osX.QC.JMP >DEBUGOA
|
2016-06-07 08:10:18 +02:00
|
|
|
|
jmp $2000
|
2017-01-25 17:18:35 +01:00
|
|
|
|
*--------------------------------------
|
2021-05-22 23:05:12 +02:00
|
|
|
|
A2osX.QC.SetPFX jsr MLI
|
|
|
|
|
.DA #MLISETPREFIX
|
|
|
|
|
.DA MLISETPREFIX03
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2020-09-25 14:05:23 +02:00
|
|
|
|
A2osX.QC.Load >LDYAI MSG.LOAD
|
2019-04-30 18:08:47 +02:00
|
|
|
|
clc
|
2018-11-30 17:00:36 +01:00
|
|
|
|
jsr A2osX.QC.PrintYA
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2020-09-25 14:05:23 +02:00
|
|
|
|
>LDYAI $280
|
|
|
|
|
clc
|
|
|
|
|
jsr A2osX.QC.PrintYA
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2015-03-14 22:48:35 +01:00
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIOPEN
|
2020-09-25 14:05:23 +02:00
|
|
|
|
.DA MLIOPEN03
|
2015-03-14 22:48:35 +01:00
|
|
|
|
bcs .9
|
2020-09-25 14:05:23 +02:00
|
|
|
|
|
|
|
|
|
lda MLIOPEN03+5
|
|
|
|
|
sta MLIREAD03+1
|
|
|
|
|
sta MLICLOSE03+1
|
2017-05-03 17:40:02 +02:00
|
|
|
|
|
2015-03-14 22:48:35 +01:00
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIREAD
|
2020-09-25 14:05:23 +02:00
|
|
|
|
.DA MLIREAD03
|
2017-01-25 17:18:35 +01:00
|
|
|
|
|
|
|
|
|
php
|
|
|
|
|
pha
|
2015-03-14 22:48:35 +01:00
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLICLOSE
|
2020-09-25 14:05:23 +02:00
|
|
|
|
.DA MLICLOSE03
|
2015-03-14 22:48:35 +01:00
|
|
|
|
|
2017-01-25 17:18:35 +01:00
|
|
|
|
pla
|
|
|
|
|
plp
|
2018-11-30 08:42:49 +01:00
|
|
|
|
bcc .8
|
2019-12-09 16:53:14 +01:00
|
|
|
|
|
2020-09-25 14:05:23 +02:00
|
|
|
|
.9 pha
|
|
|
|
|
>LDYAI MSG.LOAD.KO
|
|
|
|
|
clc
|
2018-11-30 17:00:36 +01:00
|
|
|
|
jsr A2osX.QC.PrintYA
|
2020-09-25 14:05:23 +02:00
|
|
|
|
pla
|
|
|
|
|
jsr PRBYTE
|
|
|
|
|
jsr CROUT
|
|
|
|
|
|
2019-04-30 18:08:47 +02:00
|
|
|
|
sec
|
2019-12-09 16:53:14 +01:00
|
|
|
|
rts
|
2021-07-05 21:15:15 +02:00
|
|
|
|
|
2020-09-25 14:05:23 +02:00
|
|
|
|
.8 >LDYAI MSG.LOAD.OK
|
2019-12-09 16:53:14 +01:00
|
|
|
|
sec
|
|
|
|
|
jsr A2osX.QC.PrintYA
|
|
|
|
|
clc
|
2021-07-05 21:15:15 +02:00
|
|
|
|
rts
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2018-11-30 17:00:36 +01:00
|
|
|
|
A2osX.QC.PrintYA
|
2019-04-30 18:08:47 +02:00
|
|
|
|
php
|
2018-11-30 17:00:36 +01:00
|
|
|
|
>STYA TmpPtr1
|
2015-03-14 22:48:35 +01:00
|
|
|
|
lda (TmpPtr1)
|
|
|
|
|
tax
|
|
|
|
|
beq .9
|
2018-11-30 17:00:36 +01:00
|
|
|
|
|
2015-03-14 22:48:35 +01:00
|
|
|
|
ldy #1
|
2021-03-17 20:49:39 +01:00
|
|
|
|
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.1 lda (TmpPtr1),y
|
|
|
|
|
ora #$80
|
|
|
|
|
jsr COUT
|
|
|
|
|
iny
|
|
|
|
|
dex
|
|
|
|
|
bne .1
|
2019-11-27 23:04:55 +01:00
|
|
|
|
|
2019-04-30 18:08:47 +02:00
|
|
|
|
.9 plp
|
|
|
|
|
bcc .99
|
2021-03-17 20:49:39 +01:00
|
|
|
|
|
2019-04-30 18:08:47 +02:00
|
|
|
|
jsr CROUT
|
2021-03-17 20:49:39 +01:00
|
|
|
|
|
2019-10-03 08:25:27 +02:00
|
|
|
|
.99 rts
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2020-09-25 14:05:23 +02:00
|
|
|
|
MLISETPREFIX03 .DA #1
|
2019-04-30 18:08:47 +02:00
|
|
|
|
.DA A2osX.QC.BOOT
|
2017-04-13 18:04:05 +02:00
|
|
|
|
*--------------------------------------
|
2020-09-25 14:05:23 +02:00
|
|
|
|
MLIOPEN03 .DA #3
|
2019-04-30 18:08:47 +02:00
|
|
|
|
.DA $280
|
2017-05-03 17:40:02 +02:00
|
|
|
|
.DA $C00
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.BS 1
|
2017-04-13 18:04:05 +02:00
|
|
|
|
*--------------------------------------
|
2020-09-25 14:05:23 +02:00
|
|
|
|
MLIREAD03 .DA #4
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.BS 1
|
2017-05-03 17:40:02 +02:00
|
|
|
|
.DA $2000
|
2020-09-25 14:05:23 +02:00
|
|
|
|
.DA $9F00 Max .SYSTEM file len
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.BS 2
|
2017-04-13 18:04:05 +02:00
|
|
|
|
*--------------------------------------
|
2020-09-25 14:05:23 +02:00
|
|
|
|
MLICLOSE03 .DA #1
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.BS 1
|
|
|
|
|
*--------------------------------------
|
2019-11-27 23:04:55 +01:00
|
|
|
|
SYSKERNEL >PSTR "sys/kernel"
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2016-10-24 17:54:43 +02:00
|
|
|
|
MSG.INIT1 >PSTR "A2osX[Stage1]:Init"
|
2019-12-09 16:53:14 +01:00
|
|
|
|
MSG.SETPREFIXOK >PSTR "Prefix Set: "
|
2016-10-24 17:54:43 +02:00
|
|
|
|
MSG.SETPREFIXKO >PSTR "Insert Vol:"
|
2020-09-25 14:05:23 +02:00
|
|
|
|
MSG.LOAD >PSTR "Loading : "
|
|
|
|
|
MSG.LOAD.KO >PSTR " Error $"
|
|
|
|
|
MSG.LOAD.OK >PSTR " OK."
|
2016-10-24 17:54:43 +02:00
|
|
|
|
MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete."
|
2015-03-14 22:48:35 +01:00
|
|
|
|
*--------------------------------------
|
2020-09-25 08:02:05 +02:00
|
|
|
|
.LIST ON
|
|
|
|
|
QC.FREE .EQ $1300-*
|
|
|
|
|
.LIST OFF
|
2015-03-14 22:48:35 +01:00
|
|
|
|
.EP
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
2022-03-13 13:52:24 +01:00
|
|
|
|
SAVE usr/src/a2osx.s.qc
|
|
|
|
|
LOAD usr/src/a2osx.s
|
2015-03-14 22:48:35 +01:00
|
|
|
|
ASM
|