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
|
|
|
|
|
.OP 65C02
|
|
|
|
|
.OR $2000
|
2018-07-23 15:28:42 +00:00
|
|
|
|
.TF A2OSX.SYSTEM,TSYS
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2018-07-23 15:28:42 +00:00
|
|
|
|
.INB INC/MACROS.I
|
|
|
|
|
.INB INC/A2OSX.I
|
|
|
|
|
.INB INC/IO.I
|
|
|
|
|
.INB INC/MONITOR.I
|
2018-10-02 15:52:30 +00:00
|
|
|
|
.INB INC/MLI.I
|
|
|
|
|
.INB INC/MLI.E.I
|
2019-04-10 15:51:47 +00:00
|
|
|
|
.INB INC/ZP.I
|
|
|
|
|
.INB INC/GFX.I
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
TmpPtr1 .EQ $0 main & aux ZP
|
|
|
|
|
TmpPtr2 .EQ $2 main & aux ZP
|
|
|
|
|
*--------------------------------------
|
2015-03-15 22:00:40 +00:00
|
|
|
|
A2osX.KMLOAD .EQ $2000
|
2019-04-11 05:56:05 +00:00
|
|
|
|
A2osX.LOGOLOAD .EQ $4000
|
2019-01-04 13:17:31 +00:00
|
|
|
|
A2osX.KMMAXLEN .EQ $6000
|
|
|
|
|
A2osX.OpenBuff1 .EQ $8000 1024 Buffer for MLIOPEN01
|
|
|
|
|
A2osX.OpenBuff2 .EQ $8400 1024 Buffer for MLIOPEN02
|
|
|
|
|
A2osX.ReadBuff .EQ $8800 512 Buffer for MLIREAD01
|
|
|
|
|
Boot.Prefix .EQ $8A00 MLI.MAXPATH
|
2019-04-10 15:51:47 +00:00
|
|
|
|
LOGO.Filename .EQ $8A80 MLI.MAXPATH
|
|
|
|
|
KM.Filename .EQ $8B00 MLI.MAXPATH
|
2020-03-05 16:55:02 +00:00
|
|
|
|
MLIONLINE01BUF .EQ $8C00 256
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2016-06-07 06:10:18 +00:00
|
|
|
|
* Kernel Stage 0
|
|
|
|
|
*--------------------------------------
|
2019-04-10 15:51:47 +00:00
|
|
|
|
SYSTEM.START .EQ *
|
2016-06-07 06:10:18 +00:00
|
|
|
|
.PH $1000
|
|
|
|
|
A2osX.Init0 >LDYAI $2000
|
2015-03-15 22:00:40 +00:00
|
|
|
|
>STYA TmpPtr1
|
2016-06-07 06:10:18 +00:00
|
|
|
|
>LDYAI $1000
|
2015-03-15 22:00:40 +00:00
|
|
|
|
>STYA TmpPtr2
|
|
|
|
|
|
|
|
|
|
ldx #$10 reloc $2000-$2FFF to $1000-$1FFF
|
|
|
|
|
ldy #0
|
|
|
|
|
.1 lda (TmpPtr1),y
|
|
|
|
|
sta (TmpPtr2),y
|
|
|
|
|
iny
|
|
|
|
|
bne .1
|
|
|
|
|
inc TmpPtr1+1
|
|
|
|
|
inc TmpPtr2+1
|
|
|
|
|
dex
|
|
|
|
|
bne .1
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
2015-03-15 22:00:40 +00:00
|
|
|
|
jmp A2osX.Init1
|
|
|
|
|
*--------------------------------------
|
2016-06-07 06:10:18 +00:00
|
|
|
|
A2osX.Init1 ldx #$FF init 6502 stack to highest
|
|
|
|
|
txs
|
|
|
|
|
bit RROMBNK1
|
2015-06-03 18:30:57 +00:00
|
|
|
|
jsr HOME
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.INIT0
|
|
|
|
|
jsr PrintFYA
|
2015-03-14 21:48:35 +00:00
|
|
|
|
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.SYSMEM
|
|
|
|
|
jsr PrintFYA
|
2015-03-14 21:48:35 +00:00
|
|
|
|
|
|
|
|
|
lda MACHID
|
2017-10-27 14:56:46 +00:00
|
|
|
|
and #MACHID.M
|
|
|
|
|
cmp #MACHID.M.128
|
2019-05-01 13:35:41 +00:00
|
|
|
|
beq A2osX.Init1.128
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.SYSMEM.KO
|
|
|
|
|
jsr PrintFYA
|
2015-03-14 21:48:35 +00:00
|
|
|
|
bra *
|
2019-04-10 15:51:47 +00:00
|
|
|
|
*--------------------------------------
|
2019-05-01 13:35:41 +00:00
|
|
|
|
A2osX.Init1.128 jsr MLI
|
|
|
|
|
.DA #MLIGETPREFIX
|
|
|
|
|
.DA MLIGETPREFIX01
|
|
|
|
|
bcs *
|
2019-04-30 16:08:47 +00:00
|
|
|
|
|
2019-05-01 13:35:41 +00:00
|
|
|
|
ldx Boot.Prefix
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2019-05-01 13:35:41 +00:00
|
|
|
|
.1 lda Boot.Prefix,x
|
|
|
|
|
sta A2osX.QC.B.BOOT,x
|
|
|
|
|
sta A2osX.QC.B.ROOT,x
|
|
|
|
|
dex
|
|
|
|
|
bpl .1
|
|
|
|
|
|
|
|
|
|
jsr A2osX.Screen80
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.INIT0
|
|
|
|
|
jsr PrintFYA
|
2015-11-10 20:52:11 +00:00
|
|
|
|
|
2019-05-01 13:35:41 +00:00
|
|
|
|
lda #Boot.Prefix
|
|
|
|
|
pha
|
|
|
|
|
lda /Boot.Prefix
|
|
|
|
|
pha
|
|
|
|
|
>LDYAI MSG.BOOTPREFIX
|
|
|
|
|
jsr PrintFYA
|
|
|
|
|
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.SYSMEM
|
|
|
|
|
jsr PrintFYA
|
2015-11-10 20:52:11 +00:00
|
|
|
|
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.SYSMEM.OK
|
|
|
|
|
jsr PrintFYA
|
|
|
|
|
>LDYAI MSG.CPU
|
|
|
|
|
jsr PrintFYA
|
2016-06-07 06:10:18 +00:00
|
|
|
|
|
|
|
|
|
sed Test 6502 BCD bug
|
|
|
|
|
lda #$99
|
|
|
|
|
clc
|
|
|
|
|
adc #$01
|
|
|
|
|
cld
|
|
|
|
|
bpl .2 if minus, BUG!, we have 6502
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.CPU.KO
|
|
|
|
|
jsr PrintFYA
|
2015-03-14 21:48:35 +00:00
|
|
|
|
bra *
|
2016-03-13 21:55:47 +00:00
|
|
|
|
|
2018-07-12 15:20:39 +00:00
|
|
|
|
.2 >LDYAI MSG.CPU.OK
|
|
|
|
|
jsr PrintFYA
|
2019-05-01 13:35:41 +00:00
|
|
|
|
|
|
|
|
|
stz LEVEL Back To FILE LEVEL 0
|
2017-06-22 15:21:24 +00:00
|
|
|
|
|
|
|
|
|
jsr MLI Make sure all files are closed
|
|
|
|
|
.DA #MLICLOSE
|
|
|
|
|
.DA MLICLOSE01
|
|
|
|
|
bcs *
|
|
|
|
|
*--------------------------------------
|
2018-07-12 15:20:39 +00:00
|
|
|
|
A2osX.RamDrv >LDYAI MSG.RAMDRV
|
|
|
|
|
jsr PrintFYA
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
2015-03-14 21:48:35 +00:00
|
|
|
|
jsr DisableRamDRV
|
|
|
|
|
bcc .2
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
2015-03-14 21:48:35 +00:00
|
|
|
|
tax
|
2015-06-03 18:30:57 +00:00
|
|
|
|
bne .1
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.RAMDRV.KO0
|
|
|
|
|
jsr PrintFYA
|
2016-06-07 06:10:18 +00:00
|
|
|
|
bra A2osX.SetupQC
|
2018-07-12 15:20:39 +00:00
|
|
|
|
.1 >LDYAI MSG.RAMDRV.KO1
|
|
|
|
|
jsr PrintFYA
|
2016-06-07 06:10:18 +00:00
|
|
|
|
bra A2osX.SetupQC
|
2018-07-12 15:20:39 +00:00
|
|
|
|
.2 >LDYAI MSG.RAMDRV.OK
|
|
|
|
|
jsr PrintFYA
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2019-05-01 13:35:41 +00:00
|
|
|
|
A2osX.EnumKM >LDYAI MSG.KMENUM
|
|
|
|
|
jsr PrintFYA
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2019-05-01 13:35:41 +00:00
|
|
|
|
jsr EnumKM
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2019-05-01 13:35:41 +00:00
|
|
|
|
bcs *
|
|
|
|
|
*--------------------------------------
|
2015-03-16 21:35:08 +00:00
|
|
|
|
A2osX.SetupQC lda RRAMWRAMBNK2
|
|
|
|
|
lda RRAMWRAMBNK2
|
|
|
|
|
|
|
|
|
|
ldx #0
|
|
|
|
|
.1 lda A2osX.QC.B.Start,x
|
|
|
|
|
sta $D100,x
|
|
|
|
|
lda A2osX.QC.B.Start+$100,x
|
|
|
|
|
sta $D200,x
|
2016-06-07 06:10:18 +00:00
|
|
|
|
lda A2osX.QC.B.Start+$200,x
|
|
|
|
|
sta $D300,x
|
2015-03-16 21:35:08 +00:00
|
|
|
|
inx
|
|
|
|
|
bne .1
|
2016-01-05 11:24:48 +00:00
|
|
|
|
|
2015-03-16 21:35:08 +00:00
|
|
|
|
lda RROMBNK1
|
|
|
|
|
*--------------------------------------
|
2018-07-12 15:20:39 +00:00
|
|
|
|
A2osX.MLIQuit >LDYAI MSG.INIT0OK
|
|
|
|
|
jsr PrintFYA
|
2015-12-12 10:13:14 +00:00
|
|
|
|
>DEBUGOA
|
2015-03-14 21:48:35 +00:00
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIQUIT
|
|
|
|
|
.DA MLIQUIT01
|
|
|
|
|
bra *
|
|
|
|
|
*--------------------------------------
|
2019-05-01 13:35:41 +00:00
|
|
|
|
A2osX.Screen80 lda #$8C Reset 80 col screen ($0C:HOME)
|
2019-04-10 15:51:47 +00:00
|
|
|
|
jsr $C300
|
2019-04-30 16:08:47 +00:00
|
|
|
|
|
2019-04-10 15:51:47 +00:00
|
|
|
|
ldx Boot.Prefix
|
|
|
|
|
|
|
|
|
|
.1 lda Boot.Prefix,x
|
|
|
|
|
sta LOGO.Filename,x
|
|
|
|
|
dex
|
2019-04-11 07:52:53 +00:00
|
|
|
|
bne .1
|
2019-04-10 15:51:47 +00:00
|
|
|
|
ldx Boot.Prefix
|
|
|
|
|
ldy #0
|
|
|
|
|
.2 inx
|
|
|
|
|
iny
|
|
|
|
|
lda A2osX.LOGO,y
|
|
|
|
|
sta LOGO.Filename,x
|
|
|
|
|
cpy A2osX.LOGO
|
2019-10-03 06:25:27 +00:00
|
|
|
|
bne .2
|
2019-04-11 07:52:53 +00:00
|
|
|
|
stx LOGO.Filename
|
2019-04-10 15:51:47 +00:00
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIOPEN
|
|
|
|
|
.DA MLIOPEN00
|
|
|
|
|
bcs .99
|
|
|
|
|
|
|
|
|
|
lda MLIOPEN00+5
|
|
|
|
|
sta MLIREAD00+1
|
|
|
|
|
sta MLICLOSE00+1
|
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIREAD
|
2019-04-11 07:52:53 +00:00
|
|
|
|
.DA MLIREAD00
|
2019-04-10 15:51:47 +00:00
|
|
|
|
bcs .98
|
|
|
|
|
jsr .98
|
|
|
|
|
bra A2osX.ScreenDLGR
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2019-04-10 15:51:47 +00:00
|
|
|
|
.98 jsr MLI
|
|
|
|
|
.DA #MLICLOSE
|
|
|
|
|
.DA MLICLOSE00
|
2019-10-03 06:25:27 +00:00
|
|
|
|
.99 rts
|
2019-04-10 15:51:47 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
A2osX.ScreenDLGR
|
|
|
|
|
lda #20
|
|
|
|
|
sta WNDTOP
|
|
|
|
|
sta CV
|
|
|
|
|
jsr VTAB
|
|
|
|
|
sta CLRHIRES
|
|
|
|
|
sta SETMIXED
|
|
|
|
|
sta CLRTEXT
|
|
|
|
|
sta SET80STORE
|
|
|
|
|
sta SETDHIRES
|
2019-04-11 07:52:53 +00:00
|
|
|
|
|
2019-04-10 15:51:47 +00:00
|
|
|
|
lda #A2osX.LOGOLOAD+S.BM
|
|
|
|
|
sta TmpPtr1
|
|
|
|
|
lda /A2osX.LOGOLOAD+S.BM
|
|
|
|
|
sta TmpPtr1+1
|
|
|
|
|
ldx #0
|
|
|
|
|
.1 lda SCR.BASEL,x
|
|
|
|
|
sta TmpPtr2
|
|
|
|
|
lda SCR.BASEH,x
|
|
|
|
|
sta TmpPtr2+1
|
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
.2 lda (TmpPtr1),y
|
|
|
|
|
pha
|
|
|
|
|
and #$f
|
|
|
|
|
phy
|
|
|
|
|
tay
|
|
|
|
|
lda PALETTE.AUX,y
|
|
|
|
|
ply
|
|
|
|
|
sta SETPAGE2
|
|
|
|
|
sta (TmpPtr2),y
|
|
|
|
|
pla
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
sta CLRPAGE2
|
|
|
|
|
sta (TmpPtr2),y
|
|
|
|
|
|
|
|
|
|
iny
|
|
|
|
|
cpy #40
|
|
|
|
|
bne .2
|
|
|
|
|
lda TmpPtr1
|
|
|
|
|
clc
|
2019-04-11 05:56:05 +00:00
|
|
|
|
adc #40
|
2019-04-10 15:51:47 +00:00
|
|
|
|
sta TmpPtr1
|
|
|
|
|
bcc .3
|
|
|
|
|
inc TmpPtr1+1
|
|
|
|
|
.3 ldy #0
|
|
|
|
|
|
|
|
|
|
.4 lda (TmpPtr1),y
|
|
|
|
|
pha
|
|
|
|
|
and #$f
|
|
|
|
|
phy
|
|
|
|
|
tay
|
|
|
|
|
lda PALETTE.AUX,y
|
|
|
|
|
ply
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
sta SETPAGE2
|
|
|
|
|
ora (TmpPtr2),y
|
|
|
|
|
sta (TmpPtr2),y
|
|
|
|
|
pla
|
|
|
|
|
and #$f0
|
|
|
|
|
sta CLRPAGE2
|
|
|
|
|
ora (TmpPtr2),y
|
|
|
|
|
sta (TmpPtr2),y
|
|
|
|
|
|
|
|
|
|
iny
|
|
|
|
|
cpy #40
|
2019-04-11 05:56:05 +00:00
|
|
|
|
bne .4
|
2019-04-10 15:51:47 +00:00
|
|
|
|
lda TmpPtr1
|
|
|
|
|
clc
|
2019-04-11 05:56:05 +00:00
|
|
|
|
adc #40
|
2019-04-10 15:51:47 +00:00
|
|
|
|
sta TmpPtr1
|
|
|
|
|
bcc .7
|
|
|
|
|
inc TmpPtr1+1
|
|
|
|
|
.7 inx
|
|
|
|
|
cpx #20
|
|
|
|
|
bne .1
|
2019-04-11 07:52:53 +00:00
|
|
|
|
|
2019-04-10 15:51:47 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2015-03-14 21:48:35 +00:00
|
|
|
|
DisableRamDRV php
|
|
|
|
|
sei
|
|
|
|
|
lda DEVPTRS3D2
|
2016-11-25 16:20:28 +00:00
|
|
|
|
cmp DEVPTRS S0D1=NOVEV
|
2015-03-14 21:48:35 +00:00
|
|
|
|
bne .1
|
|
|
|
|
lda DEVPTRS3D2+1
|
2016-11-25 16:20:28 +00:00
|
|
|
|
cmp DEVPTRS+1 S0D1=NODEV
|
2015-03-14 21:48:35 +00:00
|
|
|
|
beq .9 S3D2=NODEV, nothing to do
|
|
|
|
|
.1 ldx DEVCNT
|
2015-06-03 18:30:57 +00:00
|
|
|
|
|
2015-03-14 21:48:35 +00:00
|
|
|
|
.2 lda DEVLST,x LOOKING FOR $BF, $BB, $B7, $B3
|
|
|
|
|
and #$F3
|
|
|
|
|
cmp #$B3
|
|
|
|
|
beq .3
|
|
|
|
|
dex
|
|
|
|
|
bpl .2
|
|
|
|
|
plp
|
|
|
|
|
lda #1 No device found, exit with error
|
|
|
|
|
sec
|
|
|
|
|
rts
|
2015-06-03 18:30:57 +00:00
|
|
|
|
.3 cpx DEVCNT
|
|
|
|
|
beq .5
|
|
|
|
|
|
2015-03-14 21:48:35 +00:00
|
|
|
|
.4 lda DEVLST+1,x
|
|
|
|
|
sta DEVLST,x
|
|
|
|
|
inx
|
|
|
|
|
cpx DEVCNT
|
|
|
|
|
bne .4
|
2015-06-03 18:30:57 +00:00
|
|
|
|
.5 ldx DEVCNT
|
2015-03-14 21:48:35 +00:00
|
|
|
|
stz DEVLST,x
|
|
|
|
|
dec DEVCNT
|
2016-11-25 16:20:28 +00:00
|
|
|
|
lda DEVPTRS
|
2015-03-14 21:48:35 +00:00
|
|
|
|
sta DEVPTRS3D2
|
2016-11-25 16:20:28 +00:00
|
|
|
|
lda DEVPTRS+1
|
2015-03-14 21:48:35 +00:00
|
|
|
|
sta DEVPTRS3D2+1
|
|
|
|
|
plp
|
2015-06-03 18:30:57 +00:00
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIONLINE
|
|
|
|
|
.DA MLIONLINE01
|
2015-03-14 21:48:35 +00:00
|
|
|
|
clc Success!!
|
|
|
|
|
rts
|
|
|
|
|
.9 plp
|
|
|
|
|
lda #0 Not detected
|
|
|
|
|
sec
|
|
|
|
|
rts
|
2017-05-02 15:56:43 +00:00
|
|
|
|
*--------------------------------------
|
2016-06-07 06:10:18 +00:00
|
|
|
|
EnumKM.EPB .EQ $0D
|
|
|
|
|
EnumKM.EL .EQ $27
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2016-06-07 06:10:18 +00:00
|
|
|
|
EnumKM ldx #0
|
|
|
|
|
ldy Boot.Prefix
|
2018-11-30 16:00:36 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
.1 inx
|
|
|
|
|
lda SYS,x
|
|
|
|
|
sta Boot.Prefix+1,y
|
|
|
|
|
iny
|
|
|
|
|
cpx SYS
|
2015-03-14 21:48:35 +00:00
|
|
|
|
bne .1
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
sty Boot.Prefix
|
2019-12-10 16:06:51 +00:00
|
|
|
|
lda #Boot.Prefix
|
|
|
|
|
pha
|
|
|
|
|
lda /Boot.Prefix
|
|
|
|
|
pha
|
|
|
|
|
>LDYAI MSG.KMSYSDIR
|
|
|
|
|
jsr PrintFYA
|
2019-12-11 07:38:45 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIOPEN
|
|
|
|
|
.DA MLIOPEN01
|
2019-12-10 16:06:51 +00:00
|
|
|
|
bcc .10
|
|
|
|
|
|
|
|
|
|
pha
|
|
|
|
|
>LDYAI MSG.KMSYSDIR.KO
|
|
|
|
|
jsr PrintFYA
|
|
|
|
|
sec
|
|
|
|
|
rts
|
2018-11-30 16:00:36 +00:00
|
|
|
|
|
2019-12-10 16:06:51 +00:00
|
|
|
|
.10 lda MLIOPEN01+5
|
2016-06-07 06:10:18 +00:00
|
|
|
|
sta MLIREAD01+1
|
|
|
|
|
sta MLICLOSE01+1
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
.2 jsr MLI
|
|
|
|
|
.DA #MLIREAD
|
|
|
|
|
.DA MLIREAD01
|
|
|
|
|
bcs .98
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
lda #EnumKM.EPB
|
|
|
|
|
sta EnumKM.EC
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
>LDYAI A2osX.ReadBuff+4
|
|
|
|
|
>STYA EnumKM.BPTR
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
.3 >LDYA EnumKM.BPTR
|
|
|
|
|
>STYA TmpPtr1
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
lda (TmpPtr1)
|
|
|
|
|
and #$F0 Empty ?
|
|
|
|
|
beq .5 yes, skip
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
and #$C0 anything out of type 1,2 or 3 ?
|
|
|
|
|
bne .5 yes, skip
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
lda (TmpPtr1)
|
|
|
|
|
and #$0F
|
|
|
|
|
cmp KM.PREFIX at least enough chars for KM.*?
|
|
|
|
|
bcc .5 no, skip
|
2018-11-30 16:00:36 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
ldy #$10 file type
|
|
|
|
|
lda (TmpPtr1),y
|
|
|
|
|
cmp #$06 'BIN'?
|
|
|
|
|
bne .5 skip
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
ldy KM.PREFIX
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2019-12-11 07:38:45 +00:00
|
|
|
|
.4 lda (TmpPtr1),y KM.* ?
|
2016-06-07 06:10:18 +00:00
|
|
|
|
cmp KM.PREFIX,y
|
|
|
|
|
bne .5
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
dey
|
|
|
|
|
bne .4
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
jsr LoadKM
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
.5 lda EnumKM.BPTR
|
|
|
|
|
clc
|
|
|
|
|
adc #EnumKM.EL
|
|
|
|
|
sta EnumKM.BPTR
|
|
|
|
|
bcc .6
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
inc EnumKM.BPTR+1
|
|
|
|
|
|
|
|
|
|
.6 dec EnumKM.EC
|
|
|
|
|
bne .3
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2015-03-15 22:00:40 +00:00
|
|
|
|
bra .2
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2017-10-26 16:01:54 +00:00
|
|
|
|
.98 cmp #MLI.E.EOF
|
2016-06-07 06:10:18 +00:00
|
|
|
|
beq .8
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
pha
|
|
|
|
|
jsr .8
|
|
|
|
|
pla
|
2018-11-30 16:00:36 +00:00
|
|
|
|
|
2019-12-10 16:06:51 +00:00
|
|
|
|
sec
|
2016-06-07 06:10:18 +00:00
|
|
|
|
rts
|
2018-11-30 16:00:36 +00:00
|
|
|
|
|
|
|
|
|
.8 jsr MLI
|
|
|
|
|
.DA #MLICLOSE
|
|
|
|
|
.DA MLICLOSE01
|
2019-10-03 06:25:27 +00:00
|
|
|
|
rts
|
2016-06-07 06:10:18 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
EnumKM.EC .BS 1
|
|
|
|
|
EnumKM.BPTR .BS 2
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
LoadKM ldx Boot.Prefix
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
.1 lda Boot.Prefix,x
|
|
|
|
|
sta KM.Filename,x
|
|
|
|
|
dex
|
|
|
|
|
bne .1
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2019-12-11 07:38:45 +00:00
|
|
|
|
ldy #$1c
|
|
|
|
|
lda (TmpPtr1),y
|
|
|
|
|
sta LoadKM.VERSION
|
|
|
|
|
iny
|
|
|
|
|
lda (TmpPtr1),y
|
|
|
|
|
sta LoadKM.MVERSION
|
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
ldx Boot.Prefix
|
|
|
|
|
lda (TmpPtr1)
|
2015-03-15 22:00:40 +00:00
|
|
|
|
and #$0F
|
2016-06-07 06:10:18 +00:00
|
|
|
|
tay
|
2015-03-15 22:00:40 +00:00
|
|
|
|
clc
|
2016-06-07 06:10:18 +00:00
|
|
|
|
adc Boot.Prefix
|
|
|
|
|
sta KM.Filename
|
|
|
|
|
tax
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2019-12-11 07:38:45 +00:00
|
|
|
|
.2 bit LoadKM.VERSION
|
|
|
|
|
bpl .6
|
|
|
|
|
|
|
|
|
|
cpy #8
|
|
|
|
|
bcs .3
|
|
|
|
|
|
|
|
|
|
lda LoadKM.Bits,y
|
|
|
|
|
bit LoadKM.VERSION
|
|
|
|
|
beq .6
|
|
|
|
|
bra .4
|
|
|
|
|
|
|
|
|
|
.3 lda LoadKM.Bits-8,y
|
|
|
|
|
bit LoadKM.MVERSION
|
|
|
|
|
beq .6
|
|
|
|
|
|
|
|
|
|
.4 lda (TmpPtr1),y
|
|
|
|
|
eor #$20
|
|
|
|
|
.HS 2C BIT ABS
|
|
|
|
|
|
|
|
|
|
.6 lda (TmpPtr1),y
|
2016-06-07 06:10:18 +00:00
|
|
|
|
sta KM.Filename,x
|
|
|
|
|
dex
|
|
|
|
|
dey
|
|
|
|
|
bne .2
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2017-05-02 15:56:43 +00:00
|
|
|
|
lda #KM.Filename
|
|
|
|
|
pha
|
|
|
|
|
lda /KM.Filename
|
|
|
|
|
pha
|
2018-07-12 15:20:39 +00:00
|
|
|
|
>LDYAI MSG.KMLOAD
|
|
|
|
|
jsr PrintFYA
|
2016-06-07 06:10:18 +00:00
|
|
|
|
|
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIOPEN
|
|
|
|
|
.DA MLIOPEN02
|
|
|
|
|
bcs .99
|
|
|
|
|
|
|
|
|
|
lda MLIOPEN02+5
|
|
|
|
|
sta MLIREAD02+1
|
|
|
|
|
sta MLICLOSE02+1
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
jsr MLI
|
|
|
|
|
.DA #MLIREAD
|
|
|
|
|
.DA MLIREAD02
|
|
|
|
|
bcs .98
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
jsr .9
|
|
|
|
|
jsr A2osX.KMLOAD
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
.98 pha
|
|
|
|
|
jsr .9
|
|
|
|
|
pla
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2015-03-15 22:00:40 +00:00
|
|
|
|
sec
|
|
|
|
|
rts
|
2019-12-09 15:53:14 +00:00
|
|
|
|
|
2016-06-07 06:10:18 +00:00
|
|
|
|
.9 jsr MLI
|
|
|
|
|
.DA #MLICLOSE
|
|
|
|
|
.DA MLICLOSE02
|
|
|
|
|
.99 rts
|
2019-12-11 07:38:45 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
LoadKM.VERSION .BS 1
|
|
|
|
|
LoadKM.MVERSION .BS 1
|
|
|
|
|
LoadKM.Bits .HS 8040201008040201
|
2015-03-15 22:00:40 +00:00
|
|
|
|
*--------------------------------------
|
2019-04-10 15:51:47 +00:00
|
|
|
|
.INB USR/SRC/SHARED/X.PRINTF.S
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2018-04-11 15:35:51 +00:00
|
|
|
|
MSG.INIT0 .AZ "A2osX[Stage0]:Init\n"
|
|
|
|
|
MSG.SYSMEM .AZ "Checking System Memory..."
|
|
|
|
|
MSG.SYSMEM.OK .AZ "128k Detected.\n"
|
|
|
|
|
MSG.SYSMEM.KO .AZ "A2osX Requires At Least 128k Memory.\n"
|
2016-06-07 06:10:18 +00:00
|
|
|
|
|
2018-04-11 15:35:51 +00:00
|
|
|
|
MSG.CPU .AZ "Checking CPU..."
|
|
|
|
|
MSG.CPU.OK .AZ "65C02 CPU (or higher) Detected.\n"
|
|
|
|
|
MSG.CPU.KO .AZ "A2osX Requires At Least A 65C02 CPU.\n"
|
2016-06-07 06:10:18 +00:00
|
|
|
|
|
2018-04-11 15:35:51 +00:00
|
|
|
|
MSG.RAMDRV .AZ "Checking ProDOS RamDrive..."
|
|
|
|
|
MSG.RAMDRV.OK .AZ "Successfully Disabled.\n"
|
|
|
|
|
MSG.RAMDRV.KO0 .AZ "Not Detected.\n"
|
|
|
|
|
MSG.RAMDRV.KO1 .AZ "Uninstall Failed !!!\n"
|
2016-06-07 06:10:18 +00:00
|
|
|
|
|
2019-05-01 13:35:41 +00:00
|
|
|
|
MSG.BOOTPREFIX .AZ "Boot Prefix:%S\n"
|
2016-06-07 06:10:18 +00:00
|
|
|
|
|
2018-04-11 15:35:51 +00:00
|
|
|
|
MSG.KMENUM .AZ "Looking For Kernel Modules...\n"
|
2019-12-11 07:38:45 +00:00
|
|
|
|
MSG.KMSYSDIR .AZ "SYS dir is %S\n"
|
2019-12-10 16:06:51 +00:00
|
|
|
|
MSG.KMSYSDIR.KO .AZ "***Error : $%h\n"
|
2018-04-11 15:35:51 +00:00
|
|
|
|
MSG.KMLOAD .AZ "***Loading KM : %S\n"
|
|
|
|
|
MSG.INIT0OK .AZ "A2osX[Stage0]:Complete.\n"
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
MLIGETPREFIX01 .DA #1
|
|
|
|
|
.DA Boot.Prefix
|
2015-06-03 18:30:57 +00:00
|
|
|
|
MLIONLINE01 .DA #2
|
|
|
|
|
.DA #0
|
|
|
|
|
.DA MLIONLINE01BUF
|
2019-04-10 15:51:47 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
MLIOPEN00 .DA #3 For DIR listing
|
|
|
|
|
.DA LOGO.Filename
|
|
|
|
|
.DA A2osX.OpenBuff1
|
|
|
|
|
.BS 1
|
|
|
|
|
MLIREAD00 .DA #4
|
|
|
|
|
.BS 1
|
|
|
|
|
.DA A2osX.LOGOLOAD
|
|
|
|
|
.DA 2048
|
|
|
|
|
.BS 2
|
|
|
|
|
MLICLOSE00 .DA #1
|
|
|
|
|
.BS 1
|
|
|
|
|
*--------------------------------------
|
2015-03-15 22:00:40 +00:00
|
|
|
|
MLIOPEN01 .DA #3 For DIR listing
|
|
|
|
|
.DA Boot.Prefix
|
|
|
|
|
.DA A2osX.OpenBuff1
|
|
|
|
|
.BS 1
|
|
|
|
|
MLIREAD01 .DA #4
|
|
|
|
|
.BS 1
|
|
|
|
|
.DA A2osX.ReadBuff Load address Dir Blocks
|
|
|
|
|
.DA $200 Maxlen of Dir Blocks (512)
|
|
|
|
|
.BS 2
|
|
|
|
|
MLICLOSE01 .DA #1
|
|
|
|
|
.BS 1
|
2019-04-10 15:51:47 +00:00
|
|
|
|
*--------------------------------------
|
2015-03-15 22:00:40 +00:00
|
|
|
|
MLIOPEN02 .DA #3
|
|
|
|
|
.DA KM.Filename
|
|
|
|
|
.DA A2osX.OpenBuff2
|
|
|
|
|
.BS 1
|
|
|
|
|
MLIREAD02 .DA #4
|
|
|
|
|
.BS 1
|
|
|
|
|
.DA A2osX.KMLOAD Load address for KMs
|
|
|
|
|
.DA A2osX.KMMAXLEN Maxlen of KM
|
|
|
|
|
.BS 2
|
|
|
|
|
MLICLOSE02 .DA #1
|
|
|
|
|
.BS 1
|
2019-04-10 15:51:47 +00:00
|
|
|
|
*--------------------------------------
|
2015-03-14 21:48:35 +00:00
|
|
|
|
MLIQUIT01 .DA #4
|
|
|
|
|
.DA #0
|
|
|
|
|
.DA 0
|
|
|
|
|
.DA #0
|
|
|
|
|
.DA 0
|
|
|
|
|
*--------------------------------------
|
2019-12-09 15:53:14 +00:00
|
|
|
|
A2osX.LOGO >PSTR "A2osX.logo"
|
2019-11-27 22:04:55 +00:00
|
|
|
|
SYS >PSTR "sys/"
|
2016-10-24 15:54:43 +00:00
|
|
|
|
KM.PREFIX >PSTR "KM."
|
2019-04-10 15:51:47 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
|
|
|
|
SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PALETTE.AUX .HS 00080109020A030B040C050D060E070F
|
2015-03-16 21:35:08 +00:00
|
|
|
|
*--------------------------------------
|
2015-03-15 22:00:40 +00:00
|
|
|
|
.EP
|
2015-03-16 21:35:08 +00:00
|
|
|
|
*--------------------------------------
|
2016-06-07 06:10:18 +00:00
|
|
|
|
A2osX.QC.B.Start
|
2019-04-30 16:08:47 +00:00
|
|
|
|
A2osX.QC.B.BOOT .EQ *+4
|
|
|
|
|
A2osX.QC.B.ROOT .EQ *+4+32
|
2018-11-30 07:42:49 +00:00
|
|
|
|
.INB USR/SRC/A2OSX.S.QC
|
2019-04-10 15:51:47 +00:00
|
|
|
|
.LIST ON
|
|
|
|
|
SYSTEM.END .EQ *
|
|
|
|
|
.LIST OFF
|
2015-03-16 21:35:08 +00:00
|
|
|
|
*--------------------------------------
|
2015-03-14 21:48:35 +00:00
|
|
|
|
MAN
|
2018-11-30 07:42:49 +00:00
|
|
|
|
SAVE USR/SRC/A2OSX.S
|
2015-03-14 21:48:35 +00:00
|
|
|
|
ASM
|