mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-09 02:30:35 +00:00
Kernel 0.9.2
This commit is contained in:
parent
be83829ab4
commit
b0bfcee198
Binary file not shown.
Binary file not shown.
@ -44,7 +44,7 @@ A2osX.QC.Start1 sei
|
|||||||
lda #$8C Reset 80 col screen ($0C=FF=HOME)
|
lda #$8C Reset 80 col screen ($0C=FF=HOME)
|
||||||
jsr $C300
|
jsr $C300
|
||||||
|
|
||||||
>LDAXI MSG.INIT1
|
>LDYAI MSG.INIT1
|
||||||
jsr A2osX.QC.PrintAX
|
jsr A2osX.QC.PrintAX
|
||||||
|
|
||||||
.3 jsr MLI
|
.3 jsr MLI
|
||||||
@ -52,16 +52,16 @@ A2osX.QC.Start1 sei
|
|||||||
.DA MLISETPREFIX00
|
.DA MLISETPREFIX00
|
||||||
bcc .4
|
bcc .4
|
||||||
|
|
||||||
>LDAXI MSG.SETPREFIXKO
|
>LDYAI MSG.SETPREFIXKO
|
||||||
jsr A2osX.QC.PrintAX
|
jsr A2osX.QC.PrintAX
|
||||||
>LDAXI A2osX.QC.Prefix
|
>LDYAI A2osX.QC.Prefix
|
||||||
jsr A2osX.QC.PrintAX
|
jsr A2osX.QC.PrintAX
|
||||||
|
|
||||||
>DEBUG
|
>DEBUG
|
||||||
|
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.4 >LDAXI MSG.SETPREFIXOK
|
.4 >LDYAI MSG.SETPREFIXOK
|
||||||
jsr A2osX.QC.PrintAX
|
jsr A2osX.QC.PrintAX
|
||||||
|
|
||||||
jsr A2osX.QC.KLoad
|
jsr A2osX.QC.KLoad
|
||||||
@ -72,13 +72,13 @@ A2osX.QC.Start1 sei
|
|||||||
* bit RROMBNK1
|
* bit RROMBNK1
|
||||||
* jsr SETPWRC
|
* jsr SETPWRC
|
||||||
|
|
||||||
.8 >LDAXI MSG.INIT1OK
|
.8 >LDYAI MSG.INIT1OK
|
||||||
jsr A2osX.QC.PrintAX
|
jsr A2osX.QC.PrintAX
|
||||||
|
|
||||||
>DEBUGOA
|
>DEBUGOA
|
||||||
jmp $2000
|
jmp $2000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.QC.KLoad >LDAXI MSG.KLOAD
|
A2osX.QC.KLoad >LDYAI MSG.KLOAD
|
||||||
jsr A2osX.QC.PrintAX
|
jsr A2osX.QC.PrintAX
|
||||||
|
|
||||||
ldx A2osX.QC.Prefix
|
ldx A2osX.QC.Prefix
|
||||||
@ -94,7 +94,7 @@ A2osX.QC.KLoad >LDAXI MSG.KLOAD
|
|||||||
|
|
||||||
stx A2osX.QC.Prefix
|
stx A2osX.QC.Prefix
|
||||||
|
|
||||||
>LDAXI A2osX.QC.Prefix
|
>LDYAI A2osX.QC.Prefix
|
||||||
jsr A2osX.QC.PrintAX
|
jsr A2osX.QC.PrintAX
|
||||||
|
|
||||||
jsr MLI
|
jsr MLI
|
||||||
@ -121,7 +121,7 @@ A2osX.QC.KLoad >LDAXI MSG.KLOAD
|
|||||||
plp
|
plp
|
||||||
bcc .9
|
bcc .9
|
||||||
|
|
||||||
>LDAXI MSG.KLOAD.KO
|
>LDYAI MSG.KLOAD.KO
|
||||||
jsr A2osX.QC.PrintAX
|
jsr A2osX.QC.PrintAX
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
68
A2osX.S.txt
68
A2osX.S.txt
@ -55,35 +55,35 @@ A2osX.Init1 ldx #$FF init 6502 stack to highest
|
|||||||
|
|
||||||
bit RROMBNK1
|
bit RROMBNK1
|
||||||
jsr HOME
|
jsr HOME
|
||||||
>LDAXI MSG.INIT0
|
>LDYAI MSG.INIT0
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
>LDAXI MSG.SYSMEM
|
>LDYAI MSG.SYSMEM
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
lda MACHID
|
lda MACHID
|
||||||
and #MACHID.M
|
and #MACHID.M
|
||||||
cmp #MACHID.M.128
|
cmp #MACHID.M.128
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>LDAXI MSG.SYSMEM.KO
|
>LDYAI MSG.SYSMEM.KO
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
bra *
|
bra *
|
||||||
|
|
||||||
.1 lda #$8C Reset 80 col screen ($0C:HOME)
|
.1 lda #$8C Reset 80 col screen ($0C:HOME)
|
||||||
jsr $C300
|
jsr $C300
|
||||||
|
|
||||||
>LDAXI MSG.INIT0
|
>LDYAI MSG.INIT0
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
>LDAXI MSG.SYSMEM
|
>LDYAI MSG.SYSMEM
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
>LDAXI MSG.SYSMEM.OK
|
>LDYAI MSG.SYSMEM.OK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
>LDAXI MSG.CPU
|
>LDYAI MSG.CPU
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
sed Test 6502 BCD bug
|
sed Test 6502 BCD bug
|
||||||
lda #$99
|
lda #$99
|
||||||
@ -92,12 +92,12 @@ A2osX.Init1 ldx #$FF init 6502 stack to highest
|
|||||||
cld
|
cld
|
||||||
bpl .2 if minus, BUG!, we have 6502
|
bpl .2 if minus, BUG!, we have 6502
|
||||||
|
|
||||||
>LDAXI MSG.CPU.KO
|
>LDYAI MSG.CPU.KO
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
bra *
|
bra *
|
||||||
|
|
||||||
.2 >LDAXI MSG.CPU.OK
|
.2 >LDYAI MSG.CPU.OK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.CloseAll stz LEVEL Back To FILE LEVEL 0
|
A2osX.CloseAll stz LEVEL Back To FILE LEVEL 0
|
||||||
|
|
||||||
@ -106,8 +106,8 @@ A2osX.CloseAll stz LEVEL Back To FILE LEVEL 0
|
|||||||
.DA MLICLOSE01
|
.DA MLICLOSE01
|
||||||
bcs *
|
bcs *
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.Prefix >LDAXI MSG.BOOTPREFIX
|
A2osX.Prefix >LDYAI MSG.BOOTPREFIX
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
jsr MLI
|
jsr MLI
|
||||||
.DA #MLIGETPREFIX
|
.DA #MLIGETPREFIX
|
||||||
.DA MLIGETPREFIX01
|
.DA MLIGETPREFIX01
|
||||||
@ -124,24 +124,24 @@ A2osX.Prefix >LDAXI MSG.BOOTPREFIX
|
|||||||
bne .1
|
bne .1
|
||||||
jsr CROUT
|
jsr CROUT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.RamDrv >LDAXI MSG.RAMDRV
|
A2osX.RamDrv >LDYAI MSG.RAMDRV
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr DisableRamDRV
|
jsr DisableRamDRV
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
tax
|
tax
|
||||||
bne .1
|
bne .1
|
||||||
>LDAXI MSG.RAMDRV.KO0
|
>LDYAI MSG.RAMDRV.KO0
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
bra A2osX.SetupQC
|
bra A2osX.SetupQC
|
||||||
|
|
||||||
.1 >LDAXI MSG.RAMDRV.KO1
|
.1 >LDYAI MSG.RAMDRV.KO1
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
bra A2osX.SetupQC
|
bra A2osX.SetupQC
|
||||||
|
|
||||||
.2 >LDAXI MSG.RAMDRV.OK
|
.2 >LDYAI MSG.RAMDRV.OK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.SetupQC lda RRAMWRAMBNK2
|
A2osX.SetupQC lda RRAMWRAMBNK2
|
||||||
lda RRAMWRAMBNK2
|
lda RRAMWRAMBNK2
|
||||||
@ -159,12 +159,12 @@ A2osX.SetupQC lda RRAMWRAMBNK2
|
|||||||
|
|
||||||
lda RROMBNK1
|
lda RROMBNK1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.EnumKM >LDAXI MSG.KMENUM
|
A2osX.EnumKM >LDYAI MSG.KMENUM
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
jsr EnumKM
|
jsr EnumKM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.MLIQuit >LDAXI MSG.INIT0OK
|
A2osX.MLIQuit >LDYAI MSG.INIT0OK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
>DEBUGOA
|
>DEBUGOA
|
||||||
jsr MLI
|
jsr MLI
|
||||||
@ -336,8 +336,8 @@ LoadKM ldx Boot.Prefix
|
|||||||
lda /KM.Filename
|
lda /KM.Filename
|
||||||
pha
|
pha
|
||||||
|
|
||||||
>LDAXI MSG.KMLOAD
|
>LDYAI MSG.KMLOAD
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr MLI
|
jsr MLI
|
||||||
.DA #MLIOPEN
|
.DA #MLIOPEN
|
||||||
|
@ -351,6 +351,7 @@ AUTO 4,1
|
|||||||
dec
|
dec
|
||||||
bne :1
|
bne :1
|
||||||
pla
|
pla
|
||||||
|
rts
|
||||||
.FIN
|
.FIN
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -360,11 +361,6 @@ AUTO 4,1
|
|||||||
ldy #]1
|
ldy #]1
|
||||||
lda /]1
|
lda /]1
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
|
||||||
.MA LDAXI
|
|
||||||
lda #]1
|
|
||||||
ldx /]1
|
|
||||||
.EM
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA LDYA
|
.MA LDYA
|
||||||
.DO ]#=2
|
.DO ]#=2
|
||||||
|
@ -198,7 +198,8 @@ GetDynPort inc DYNPORT.LAST
|
|||||||
|
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
>LDAXI K.DYNPORT.START
|
lda #K.DYNPORT.START
|
||||||
|
ldx /K.DYNPORT.START
|
||||||
sta DYNPORT.LAST
|
sta DYNPORT.LAST
|
||||||
stx DYNPORT.LAST+1
|
stx DYNPORT.LAST+1
|
||||||
rts CC
|
rts CC
|
||||||
|
@ -10,9 +10,219 @@ Kernel.Init2 sei
|
|||||||
stx A2osX.SaveSM
|
stx A2osX.SaveSM
|
||||||
stx A2osX.SaveSX
|
stx A2osX.SaveSX
|
||||||
|
|
||||||
sta CLRALTZP Make sure MAIN ZP is enabled for X.PRINT.F
|
ldx #Kernel.ZP.S-1
|
||||||
|
|
||||||
ldx #0
|
.1 lda Kernel.ZP,x
|
||||||
|
sta CHARGET,x
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
sta CLRALTZP
|
||||||
|
|
||||||
|
>LDYAI MSG.Init2
|
||||||
|
jsr PrintFYA
|
||||||
|
|
||||||
|
>LDYAI A2osX.MAIN
|
||||||
|
>STYA ZPPtr1
|
||||||
|
>LDYAI CORE.Run
|
||||||
|
>STYA ZPPtr2
|
||||||
|
>LDYAI A2osX.MAIN.S^$FFFF
|
||||||
|
|
||||||
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
>LDYAI A2osX.AUX
|
||||||
|
>STYA A1L Src Start Address (MAIN)
|
||||||
|
>LDYAI A2osX.GP
|
||||||
|
>STYA A2L Src End Address (MAIN)
|
||||||
|
>LDYAI X.GUIOSD
|
||||||
|
>STYA A4L Dst Address (AUX)
|
||||||
|
sec Main To Aux
|
||||||
|
jsr AuxMove
|
||||||
|
|
||||||
|
>LDYAI A2osX.GP
|
||||||
|
>STYA ZPPtr1
|
||||||
|
>LDYAI A2osX.SYSCALL
|
||||||
|
>STYA ZPPtr2
|
||||||
|
>LDYAI A2osX.GP.S^$FFFF
|
||||||
|
|
||||||
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
sta SETALTZP
|
||||||
|
bit RRAMWRAMBNK2
|
||||||
|
bit RRAMWRAMBNK2
|
||||||
|
|
||||||
|
>LDYAI A2osX.D2
|
||||||
|
>STYA ZPPtr1
|
||||||
|
>LDYAI $D000
|
||||||
|
>STYA ZPPtr2
|
||||||
|
>LDYAI A2osX.D2.S^$FFFF
|
||||||
|
|
||||||
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
bit RRAMWRAMBNK1
|
||||||
|
bit RRAMWRAMBNK1
|
||||||
|
|
||||||
|
>LDYAI A2osX.D1
|
||||||
|
>STYA ZPPtr1
|
||||||
|
>LDYAI $D000
|
||||||
|
>STYA ZPPtr2
|
||||||
|
>LDYAI A2osX.D1.S^$FFFF
|
||||||
|
|
||||||
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
>LDYAI A2osX.E0
|
||||||
|
>STYA ZPPtr1
|
||||||
|
>LDYAI $E000
|
||||||
|
>STYA ZPPtr2
|
||||||
|
>LDYAI A2osX.E0.S^$FFFF
|
||||||
|
|
||||||
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
bit RROMBNK1
|
||||||
|
sta CLRALTZP
|
||||||
|
cli
|
||||||
|
|
||||||
|
jsr KConfigLoad
|
||||||
|
|
||||||
|
lda A2osX.HZ
|
||||||
|
pha
|
||||||
|
>LDYAI MSG.HZ
|
||||||
|
jsr PrintFYA
|
||||||
|
|
||||||
|
>LDYAI MSG.Init2.OK
|
||||||
|
jsr PrintFYA
|
||||||
|
*--------------------------------------
|
||||||
|
>DEBUGOA
|
||||||
|
*--------------------------------------
|
||||||
|
Kernel.Init3 sta SETALTZP
|
||||||
|
bit RRAMWRAMBNK1
|
||||||
|
bit RRAMWRAMBNK1
|
||||||
|
|
||||||
|
lda #$ff Make sure we are in Kernel Mode during setup
|
||||||
|
sta IRQ.InKernel
|
||||||
|
|
||||||
|
jsr SysScrInit
|
||||||
|
|
||||||
|
jsr MemMgrInit
|
||||||
|
|
||||||
|
>LDYAI FD.NULL
|
||||||
|
jsr DevMgrInit.AddCDev
|
||||||
|
|
||||||
|
>LDYAI FD.SYS
|
||||||
|
jsr DevMgrInit.AddCDev
|
||||||
|
|
||||||
|
jsr PS0.Init
|
||||||
|
|
||||||
|
>DEBUG
|
||||||
|
>LDYAI MSG.Init3
|
||||||
|
>SYSCALL printf
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
|
jsr CPU.Init
|
||||||
|
|
||||||
|
jsr DevMgrInit
|
||||||
|
|
||||||
|
jsr IrqMgrInit
|
||||||
|
bcs *
|
||||||
|
|
||||||
|
jsr EvtMgrInit
|
||||||
|
|
||||||
|
jsr FltMgrInit
|
||||||
|
|
||||||
|
jsr TskMgrInit
|
||||||
|
bcs *
|
||||||
|
|
||||||
|
ldy #S.PS.hPREFIX
|
||||||
|
lda (pPs),y
|
||||||
|
>SYSCALL GetMemPtr
|
||||||
|
|
||||||
|
>PUSHYA
|
||||||
|
>LDYAI MSG.Prefix
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
|
>PUSHWI STARTUP.CMDLINE
|
||||||
|
>LDYAI MSG.Startup
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
|
>LDYAI STARTUP.CMDLINE
|
||||||
|
>SYSCALL ExpandStr
|
||||||
|
phx Save Expanded CMDLINE for discard
|
||||||
|
|
||||||
|
>SYSCALL CreatePS
|
||||||
|
|
||||||
|
bcs .9
|
||||||
|
pla
|
||||||
|
>SYSCALL FreeMem ...discard...
|
||||||
|
|
||||||
|
>LDYAI MSG.Init3.OK
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
|
>DEBUGOA
|
||||||
|
|
||||||
|
jmp CORE.Run
|
||||||
|
|
||||||
|
.9 >PUSHA
|
||||||
|
>LDYAI MSG.StartupErr
|
||||||
|
>SYSCALL printf
|
||||||
|
bra * No need to discard Expanded CMDLINE
|
||||||
|
*--------------------------------------
|
||||||
|
* INIT2 Subs
|
||||||
|
*--------------------------------------
|
||||||
|
Kernel.Move >STYA ZPPtr3
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 inc ZPPtr3
|
||||||
|
bne .2
|
||||||
|
inc ZPPtr3+1
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
.2 lda (ZPPtr1),y
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
iny
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
inc ZPPtr2+1
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
KConfigLoad >LDYAI MSG.KCREAD
|
||||||
|
jsr PrintFYA
|
||||||
|
|
||||||
|
jsr MLI
|
||||||
|
.DA #MLIOPEN
|
||||||
|
.DA MLIOPEN00
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda MLIOPEN00+5
|
||||||
|
sta MLIREAD00+1
|
||||||
|
sta MLICLOSE00+1
|
||||||
|
|
||||||
|
jsr MLI
|
||||||
|
.DA #MLIREAD
|
||||||
|
.DA MLIREAD00
|
||||||
|
php
|
||||||
|
pha
|
||||||
|
jsr MLI
|
||||||
|
.DA #MLICLOSE
|
||||||
|
.DA MLICLOSE00
|
||||||
|
pla
|
||||||
|
plp
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDYAI MSG.KCREAD.OK
|
||||||
|
jsr PrintFYA
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 >LDYAI MSG.KCREAD.KO
|
||||||
|
jsr PrintFYA
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
* INIT3 Subs
|
||||||
|
*--------------------------------------
|
||||||
|
SysScrInit ldx #0
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
@ -58,257 +268,51 @@ Kernel.Init2 sei
|
|||||||
inx
|
inx
|
||||||
cpx #40
|
cpx #40
|
||||||
bne .4
|
bne .4
|
||||||
|
rts
|
||||||
>LDAXI MSG.Init2
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
sta CLRALTZP
|
|
||||||
|
|
||||||
ldx #Kernel.ZP.S-1
|
|
||||||
|
|
||||||
.1 lda Kernel.ZP,x
|
|
||||||
sta CHARGET,x
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
sta CLRALTZP
|
|
||||||
|
|
||||||
>LDAXI MSG.MAIN
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
>LDYAI A2osX.MAIN
|
|
||||||
>STYA ZPPtr1
|
|
||||||
>LDYAI CORE.Run
|
|
||||||
>STYA ZPPtr2
|
|
||||||
>LDYAI A2osX.MAIN.S^$FFFF
|
|
||||||
|
|
||||||
jsr Kernel.Move
|
|
||||||
|
|
||||||
>LDAXI MSG.AUX
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
>LDYAI A2osX.AUX
|
|
||||||
>STYA A1L Src Start Address (MAIN)
|
|
||||||
>LDYAI A2osX.GP
|
|
||||||
>STYA A2L Src End Address (MAIN)
|
|
||||||
|
|
||||||
>LDYAI X.GUIOSD
|
|
||||||
>STYA A4L Dst Address (AUX)
|
|
||||||
|
|
||||||
sec Main To Aux
|
|
||||||
jsr AuxMove
|
|
||||||
|
|
||||||
>LDAXI MSG.GP
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
>LDYAI A2osX.GP
|
|
||||||
>STYA ZPPtr1
|
|
||||||
>LDYAI A2osX.SYSCALL
|
|
||||||
>STYA ZPPtr2
|
|
||||||
>LDYAI A2osX.GP.S^$FFFF
|
|
||||||
|
|
||||||
jsr Kernel.Move
|
|
||||||
|
|
||||||
sta CLRALTZP
|
|
||||||
|
|
||||||
>LDAXI MSG.D2
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
sta SETALTZP
|
|
||||||
bit RRAMWRAMBNK2
|
|
||||||
bit RRAMWRAMBNK2
|
|
||||||
|
|
||||||
>LDYAI A2osX.D2
|
|
||||||
>STYA ZPPtr1
|
|
||||||
>LDYAI $D000
|
|
||||||
>STYA ZPPtr2
|
|
||||||
>LDYAI A2osX.D2.S^$FFFF
|
|
||||||
|
|
||||||
jsr Kernel.Move
|
|
||||||
|
|
||||||
sta CLRALTZP
|
|
||||||
|
|
||||||
>LDAXI MSG.D1
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
sta SETALTZP
|
|
||||||
bit RRAMWRAMBNK1
|
|
||||||
bit RRAMWRAMBNK1
|
|
||||||
|
|
||||||
>LDYAI A2osX.D1
|
|
||||||
>STYA ZPPtr1
|
|
||||||
>LDYAI $D000
|
|
||||||
>STYA ZPPtr2
|
|
||||||
>LDYAI A2osX.D1.S^$FFFF
|
|
||||||
|
|
||||||
jsr Kernel.Move
|
|
||||||
|
|
||||||
sta CLRALTZP
|
|
||||||
|
|
||||||
>LDAXI MSG.E0
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
sta SETALTZP
|
|
||||||
bit RRAMWRAMBNK1
|
|
||||||
bit RRAMWRAMBNK1
|
|
||||||
|
|
||||||
>LDYAI A2osX.E0
|
|
||||||
>STYA ZPPtr1
|
|
||||||
>LDYAI $E000
|
|
||||||
>STYA ZPPtr2
|
|
||||||
>LDYAI A2osX.E0.S^$FFFF
|
|
||||||
|
|
||||||
jsr Kernel.Move
|
|
||||||
|
|
||||||
sta CLRALTZP Make MAIN ZP is enabled for X.PRINT.F
|
|
||||||
|
|
||||||
cli
|
|
||||||
|
|
||||||
jsr KConfigLoad
|
|
||||||
|
|
||||||
lda A2osX.HZ
|
|
||||||
pha push HZ
|
|
||||||
>LDAXI MSG.HZ
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
jsr CPU.Init
|
|
||||||
|
|
||||||
>LDAXI MSG.Init2.OK
|
|
||||||
jsr PrintFAX
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
>DEBUGOA
|
PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel)
|
||||||
*--------------------------------------
|
>STYA pPs
|
||||||
Kernel.Init3 sta SETALTZP
|
|
||||||
bit RRAMWRAMBNK1
|
|
||||||
bit RRAMWRAMBNK1
|
|
||||||
|
|
||||||
lda #$ff Make sure we are in Kernel Mode during setup
|
>LDYAI K.STACKTOP
|
||||||
sta IRQ.InKernel
|
>STYA pStack
|
||||||
|
|
||||||
>LDAXI MSG.Init3
|
|
||||||
jsr PrintFAX
|
|
||||||
>DEBUG
|
|
||||||
jsr MemMgrInit
|
|
||||||
|
|
||||||
jsr DevMgrInit
|
|
||||||
bcs *
|
|
||||||
|
|
||||||
jsr IrqMgrInit
|
|
||||||
bcs *
|
|
||||||
|
|
||||||
jsr EvtMgrInit
|
|
||||||
bcs *
|
|
||||||
|
|
||||||
jsr FltMgrInit
|
|
||||||
bcs *
|
|
||||||
|
|
||||||
jsr TskMgrInit
|
|
||||||
bcs *
|
|
||||||
|
|
||||||
jsr PS0Init
|
|
||||||
|
|
||||||
ldy #S.PS.hPREFIX
|
|
||||||
lda (pPs),y
|
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
|
|
||||||
>PUSHYA
|
|
||||||
>LDYAI MSG.Prefix
|
|
||||||
>SYSCALL PrintF
|
|
||||||
|
|
||||||
>PUSHWI STARTUP.CMDLINE
|
|
||||||
>LDYAI MSG.Startup
|
|
||||||
>SYSCALL PrintF
|
|
||||||
|
|
||||||
>LDYAI STARTUP.CMDLINE
|
|
||||||
>SYSCALL ExpandStr
|
|
||||||
phx Save Expanded CMDLINE for discard
|
|
||||||
|
|
||||||
>SYSCALL CreatePS
|
|
||||||
|
|
||||||
|
>PUSHBI 0
|
||||||
|
>LDYAI DEV.SYS
|
||||||
|
>SYSCALL open
|
||||||
bcs .9
|
bcs .9
|
||||||
pla
|
|
||||||
>SYSCALL FreeMem ...discard...
|
|
||||||
|
|
||||||
>LDYAI MSG.Init3.OK
|
ldy #S.PS.hStdIn
|
||||||
>SYSCALL PrintF
|
sta (pPs),y
|
||||||
|
sta CORE.S.PS0+S.PS.hStdIn
|
||||||
>DEBUGOA
|
iny #S.PS.hStdOut
|
||||||
|
sta (pPs),y
|
||||||
jmp CORE.Run
|
sta CORE.S.PS0+S.PS.hStdOut
|
||||||
|
iny #S.PS.hStdErr
|
||||||
.9 >PUSHA
|
sta (pPs),y
|
||||||
>LDYAI MSG.StartupErr
|
sta CORE.S.PS0+S.PS.hStdErr
|
||||||
>SYSCALL PrintF
|
|
||||||
bra * No need to discard Expanded CMDLINE
|
|
||||||
*--------------------------------------
|
|
||||||
Kernel.Move >STYA ZPPtr3
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
.1 inc ZPPtr3
|
|
||||||
bne .2
|
|
||||||
inc ZPPtr3+1
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
.2 lda (ZPPtr1),y
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
iny
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
inc ZPPtr1+1
|
|
||||||
inc ZPPtr2+1
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KConfigLoad >LDAXI MSG.KCREAD
|
CPU.Init >LDYAI MSG.CPU
|
||||||
jsr PrintFAX
|
>SYSCALL printf
|
||||||
|
|
||||||
jsr MLI
|
|
||||||
.DA #MLIOPEN
|
|
||||||
.DA MLIOPEN00
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
lda MLIOPEN00+5
|
|
||||||
sta MLIREAD00+1
|
|
||||||
sta MLICLOSE00+1
|
|
||||||
|
|
||||||
jsr MLI
|
|
||||||
.DA #MLIREAD
|
|
||||||
.DA MLIREAD00
|
|
||||||
php
|
|
||||||
pha
|
|
||||||
jsr MLI
|
|
||||||
.DA #MLICLOSE
|
|
||||||
.DA MLICLOSE00
|
|
||||||
pla
|
|
||||||
plp
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>LDAXI MSG.KCREAD.OK
|
|
||||||
jsr PrintFAX
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 >LDAXI MSG.KCREAD.KO
|
|
||||||
jsr PrintFAX
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CPU.Init >LDAXI MSG.CPU
|
|
||||||
jsr PrintFAX
|
|
||||||
|
|
||||||
jsr Detect6502 A = CPU type
|
jsr Detect6502 A = CPU type
|
||||||
sta A2osX.CPUTYPE
|
sta A2osX.CPUTYPE
|
||||||
ldx MSG.CPUTYPEH,y
|
|
||||||
lda MSG.CPUTYPEL,y
|
ldx MSG.CPUTYPEL,y
|
||||||
jsr PrintFAX
|
lda MSG.CPUTYPEH,y
|
||||||
|
tay
|
||||||
|
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
lda MACHID
|
lda MACHID
|
||||||
and #MACHID.T
|
and #MACHID.T
|
||||||
cmp #MACHID.T.IIc
|
cmp #MACHID.T.IIc
|
||||||
beq CPU.Init.Z80
|
beq CPU.Init.Z80
|
||||||
|
|
||||||
>LDAXI MSG.CPU.SPEED
|
>LDYAI MSG.CPU.SPEED
|
||||||
jsr PrintFAX
|
>SYSCALL printf
|
||||||
|
|
||||||
stz A2osX.RANDOM16
|
stz A2osX.RANDOM16
|
||||||
stz A2osX.RANDOM16+1
|
stz A2osX.RANDOM16+1
|
||||||
@ -367,11 +371,12 @@ CPU.Init >LDAXI MSG.CPU
|
|||||||
pha push CPU speed LO
|
pha push CPU speed LO
|
||||||
lda A2osX.CPUSPEED
|
lda A2osX.CPUSPEED
|
||||||
pha push CPU speed HI
|
pha push CPU speed HI
|
||||||
>LDAXI MSG.CPU.SPEEDOK
|
>LDYAI MSG.CPU.SPEEDOK
|
||||||
jsr PrintFAX
|
>SYSCALL printf
|
||||||
|
|
||||||
|
CPU.Init.Z80 >LDYAI MSG.Z80
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
CPU.Init.Z80 >LDAXI MSG.Z80
|
|
||||||
jsr PrintFAX
|
|
||||||
jsr DetectZ80
|
jsr DetectZ80
|
||||||
bcs .9
|
bcs .9
|
||||||
sta A2osX.Z80SLOT
|
sta A2osX.Z80SLOT
|
||||||
@ -381,12 +386,12 @@ CPU.Init.Z80 >LDAXI MSG.Z80
|
|||||||
lda #A2osX.S.Z80
|
lda #A2osX.S.Z80
|
||||||
sta A2osX.S,x
|
sta A2osX.S,x
|
||||||
|
|
||||||
>LDAXI MSG.Z80.OK
|
>LDYAI MSG.Z80.OK
|
||||||
jsr PrintFAX
|
>SYSCALL printf
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 >LDAXI MSG.Z80.KO
|
.9 >LDYAI MSG.Z80.KO
|
||||||
jsr PrintFAX
|
>SYSCALL printf
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Out:
|
* Out:
|
||||||
@ -481,7 +486,7 @@ MemMgrInit >LDYAI Mem.MHiMem
|
|||||||
* if irq not handled, jmp (S.IrqMgrOldFFFE)
|
* if irq not handled, jmp (S.IrqMgrOldFFFE)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IrqMgrInit >LDYAI MSG.IRQ
|
IrqMgrInit >LDYAI MSG.IRQ
|
||||||
>SYSCALL PrintF
|
>SYSCALL printf
|
||||||
|
|
||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
@ -512,7 +517,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
>STYA GP.IrqH.JSR+1
|
>STYA GP.IrqH.JSR+1
|
||||||
|
|
||||||
>LDYAI MSG.IRQ.CLOCK
|
>LDYAI MSG.IRQ.CLOCK
|
||||||
>SYSCALL PrintF
|
>SYSCALL printf
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -528,7 +533,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
>STYA GP.IrqH.JSR+1
|
>STYA GP.IrqH.JSR+1
|
||||||
|
|
||||||
>LDYAI MSG.IRQ.VBL
|
>LDYAI MSG.IRQ.VBL
|
||||||
>SYSCALL PrintF
|
>SYSCALL printf
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -539,7 +544,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
sta SYS.BASL0+38
|
sta SYS.BASL0+38
|
||||||
|
|
||||||
>LDYAI MSG.IRQ.POLL
|
>LDYAI MSG.IRQ.POLL
|
||||||
>SYSCALL PrintF
|
>SYSCALL printf
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -701,13 +706,7 @@ IrqMgrInit.HZ2Tick
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgrInit >LDYAI MSG.DEV
|
DevMgrInit >LDYAI MSG.DEV
|
||||||
>SYSCALL PrintF
|
>SYSCALL printf
|
||||||
|
|
||||||
>LDYAI FD.NULL
|
|
||||||
jsr DevMgrInit.AddCDev
|
|
||||||
|
|
||||||
>LDYAI FD.SYS
|
|
||||||
jsr DevMgrInit.AddCDev
|
|
||||||
|
|
||||||
lda DEVCNT
|
lda DEVCNT
|
||||||
sta DevMgrInit.DEVCNT
|
sta DevMgrInit.DEVCNT
|
||||||
@ -884,19 +883,13 @@ DevMgrInit.AddCDev
|
|||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
|
||||||
jsr $ffff
|
|
||||||
|
|
||||||
inc DevMgr.DevCnt
|
inc DevMgr.DevCnt
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #K.E.OOH
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EvtMgrInit >LDYAI MSG.EVT
|
EvtMgrInit >LDYAI MSG.EVT
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
lda #$A5
|
lda #$A5
|
||||||
sta A2osX.TIMER16
|
sta A2osX.TIMER16
|
||||||
lda #$9B
|
lda #$9B
|
||||||
@ -909,6 +902,7 @@ EvtMgrInit >LDYAI MSG.EVT
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FltMgrInit >LDYAI MSG.FLT
|
FltMgrInit >LDYAI MSG.FLT
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
stz Flt.Table
|
stz Flt.Table
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -916,8 +910,6 @@ FltMgrInit >LDYAI MSG.FLT
|
|||||||
TskMgrInit >LDYAI MSG.TSK
|
TskMgrInit >LDYAI MSG.TSK
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
jsr CORE.PSSelect0
|
|
||||||
|
|
||||||
>LDYAI K.ENV.SIZE get a buffer for ENV
|
>LDYAI K.ENV.SIZE get a buffer for ENV
|
||||||
>SYSCALL GetMem0 make sure blank!!
|
>SYSCALL GetMem0 make sure blank!!
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -967,29 +959,6 @@ TskMgrInit >LDYAI MSG.TSK
|
|||||||
>SYSCALL PutEnv
|
>SYSCALL PutEnv
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS0Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel)
|
|
||||||
>STYA pPs
|
|
||||||
|
|
||||||
>LDYAI K.STACKTOP
|
|
||||||
>STYA pStack
|
|
||||||
|
|
||||||
>PUSHBI 0
|
|
||||||
>LDYAI DEV.SYS
|
|
||||||
>SYSCALL open
|
|
||||||
|
|
||||||
ldy #S.PS.hStdIn
|
|
||||||
sta (pPs),y
|
|
||||||
sta CORE.S.PS0+S.PS.hStdIn
|
|
||||||
iny #S.PS.hStdOut
|
|
||||||
sta (pPs),y
|
|
||||||
sta CORE.S.PS0+S.PS.hStdOut
|
|
||||||
iny #S.PS.hStdErr
|
|
||||||
sta (pPs),y
|
|
||||||
sta CORE.S.PS0+S.PS.hStdErr
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
* Modified CHARGET/CHARGOT for ROM CALL
|
* Modified CHARGET/CHARGOT for ROM CALL
|
||||||
* CHRGET .EQ $B1 - C8
|
* CHRGET .EQ $B1 - C8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -1026,14 +995,7 @@ TClock.SIG .HS 0878282c58ff700538b00118b8087848
|
|||||||
.HS 8a489848adffcf201ac86868ba8df807
|
.HS 8a489848adffcf201ac86868ba8df807
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYSSCREEN.TOP .AZ "A2osX System Screen"
|
SYSSCREEN.TOP .AZ "A2osX System Screen"
|
||||||
MSG.Init2 .AZ "A2osX[Stage2]:Init\n"
|
MSG.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n"
|
||||||
MSG.ZP .AZ "Installing KERNEL...\n - $0000 ZP...\n"
|
|
||||||
MSG.MAIN .AZ " - $1100 Main...\n"
|
|
||||||
MSG.AUX .AZ " - $0C00 Aux...\n"
|
|
||||||
MSG.GP .AZ " - $BD00 Global Page...\n"
|
|
||||||
MSG.D1 .AZ " - $D000 Bank1...\n"
|
|
||||||
MSG.D2 .AZ " - $D000 Bank2...\n"
|
|
||||||
MSG.E0 .AZ " - $E000...\n"
|
|
||||||
MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n"
|
MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n"
|
||||||
MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n"
|
MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -1099,8 +1061,8 @@ FD.NULL .DA #S.FD.T.CDEV
|
|||||||
.DA #0 HANDLER
|
.DA #0 HANDLER
|
||||||
.DA #0 BUSID
|
.DA #0 BUSID
|
||||||
.DA #DEVID.NULL
|
.DA #DEVID.NULL
|
||||||
|
.DA 0 BUSPTR
|
||||||
.DA DRV.NULL
|
.DA DRV.NULL
|
||||||
.DA 0 ROMPTR
|
|
||||||
.AZ "NULL" NAME
|
.AZ "NULL" NAME
|
||||||
.HS 000000
|
.HS 000000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -1108,8 +1070,8 @@ FD.SYS .DA #S.FD.T.CDEV
|
|||||||
.DA #0 HANDLER
|
.DA #0 HANDLER
|
||||||
.DA #0 BUSID
|
.DA #0 BUSID
|
||||||
.DA #DEVID.SYS
|
.DA #DEVID.SYS
|
||||||
|
.DA 0 BUSPTR
|
||||||
.DA DRV.SYS
|
.DA DRV.SYS
|
||||||
.DA 0 ROMPTR
|
|
||||||
.AZ "SYS" NAME
|
.AZ "SYS" NAME
|
||||||
.HS 00000000
|
.HS 00000000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -1117,8 +1079,8 @@ FD.BDEV .DA #S.FD.T.BDEV
|
|||||||
.DA #0 HANDLER
|
.DA #0 HANDLER
|
||||||
.DA #0 BUSID
|
.DA #0 BUSID
|
||||||
.DA #0 DEVID
|
.DA #0 DEVID
|
||||||
|
.BS 2 BUSPTR
|
||||||
.BS 2 DRVPTR
|
.BS 2 DRVPTR
|
||||||
.BS 2 ROMPTR
|
|
||||||
.AZ "S1D1" NAME
|
.AZ "S1D1" NAME
|
||||||
.HS 000000
|
.HS 000000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -20,7 +20,7 @@ K.Open.I jsr IO.SetMLIPathYA local pathname...
|
|||||||
|
|
||||||
ldx #5 /DEV/
|
ldx #5 /DEV/
|
||||||
cpx K.MLI.PATH
|
cpx K.MLI.PATH
|
||||||
bcc K.Open.REG
|
bcs K.Open.REG
|
||||||
|
|
||||||
.1 lda K.MLI.PATH,x
|
.1 lda K.MLI.PATH,x
|
||||||
cmp IO.DEVDIR,x
|
cmp IO.DEVDIR,x
|
||||||
@ -28,22 +28,39 @@ K.Open.I jsr IO.SetMLIPathYA local pathname...
|
|||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
K.Open.DEV ldy #K.MLI.PATH+5 skip /DEV/
|
K.Open.DEV ldy #K.MLI.PATH+6 skip L/DEV/
|
||||||
lda /K.MLI.PATH+5
|
lda /K.MLI.PATH+6
|
||||||
|
|
||||||
jsr K.GetDevByName
|
jsr K.GetDevByName
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA pFD
|
>STYA pFD
|
||||||
|
stx .8+1 DEVID
|
||||||
|
|
||||||
|
ldy #S.FD.DEV.DRVPTR
|
||||||
|
lda (pFD),y
|
||||||
|
sta .1+1
|
||||||
|
iny
|
||||||
|
lda (pFD),y
|
||||||
|
sta .1+2
|
||||||
|
|
||||||
.9 >RET 1
|
>PULLA get flags
|
||||||
|
ldx #IOCTL.OPEN
|
||||||
|
.1 jsr $ffff SELF MODIFIED
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
.8 lda #$ff SELF MODIFIED
|
||||||
|
.99 rts
|
||||||
|
|
||||||
|
.9 >RET 1 discard flags
|
||||||
|
|
||||||
K.Open.REG >LDYAI K.MLI.PATH
|
K.Open.REG >LDYAI K.MLI.PATH
|
||||||
>STYA K.MLI.PARAMS+1
|
>STYA K.MLI.PARAMS+1
|
||||||
|
|
||||||
|
lda (pStack)
|
||||||
|
* sta K.S.IOCTL
|
||||||
|
|
||||||
sta K.S.IOCTL
|
>RET 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* int close(int fd);
|
* int close(int fd);
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -191,9 +208,18 @@ K.IOCTL.9 rts
|
|||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
IO.SELECT jsr K.GetMemPtr
|
IO.SELECT cmp DevMgr.DevCnt
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
tax
|
||||||
|
|
||||||
|
ldy FD.Table.PTRLO,x
|
||||||
|
lda FD.Table.PTRHI,x
|
||||||
>STYA pFD
|
>STYA pFD
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.9 lda #MLI.E.NODEV
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.PullMLIPath >PULLYA
|
IO.PullMLIPath >PULLYA
|
||||||
IO.SetMLIPathYA >STYA .1+1
|
IO.SetMLIPathYA >STYA .1+1
|
||||||
|
@ -17,6 +17,7 @@ AUTO 4,1
|
|||||||
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.INIT
|
.INB /A2OSX.SRC/SYS/KERNEL.S.INIT
|
||||||
.INB /A2OSX.SRC/X.PRINTF.S
|
.INB /A2OSX.SRC/X.PRINTF.S
|
||||||
|
|
||||||
A2osX.MAIN .PH $1100
|
A2osX.MAIN .PH $1100
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CORE
|
.INB /A2OSX.SRC/SYS/KERNEL.S.CORE
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DRV
|
.INB /A2OSX.SRC/SYS/KERNEL.S.DRV
|
||||||
|
@ -15,8 +15,8 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TmpPtr1 .EQ $0
|
TmpPtr1 .EQ $0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
AT.INIT >LDAXI MSG.INIT
|
AT.INIT >LDYAI MSG.INIT
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
lda #$F9
|
lda #$F9
|
||||||
sta TmpPtr1
|
sta TmpPtr1
|
||||||
@ -43,8 +43,8 @@ AT.INIT >LDAXI MSG.INIT
|
|||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
pha
|
pha
|
||||||
>LDAXI MSG.FAILED
|
>LDYAI MSG.FAILED
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 dec TmpPtr1+1
|
.3 dec TmpPtr1+1
|
||||||
@ -52,8 +52,8 @@ AT.INIT >LDAXI MSG.INIT
|
|||||||
cmp #$C0
|
cmp #$C0
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDAXI MSG.NOHW
|
>LDYAI MSG.NOHW
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.4 stx WC.Flag
|
.4 stx WC.Flag
|
||||||
@ -63,8 +63,8 @@ AT.INIT >LDAXI MSG.INIT
|
|||||||
and #$0f
|
and #$0f
|
||||||
pha Push slot #
|
pha Push slot #
|
||||||
phy Push Type #
|
phy Push Type #
|
||||||
>LDAXI MSG.HWOK
|
>LDYAI MSG.HWOK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
>LDYA MLI+1
|
>LDYA MLI+1
|
||||||
>STYA GO.OLDMLI+1
|
>STYA GO.OLDMLI+1
|
||||||
@ -80,16 +80,16 @@ AT.INIT >LDAXI MSG.INIT
|
|||||||
|
|
||||||
>STYA MLI+1
|
>STYA MLI+1
|
||||||
|
|
||||||
.5 >LDAXI MSG.ATINIT
|
.5 >LDYAI MSG.ATINIT
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr GO.WSCARD
|
jsr GO.WSCARD
|
||||||
.DA #MLIATALK
|
.DA #MLIATALK
|
||||||
.DA MLIATALK.PARAMS
|
.DA MLIATALK.PARAMS
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDAXI MSG.IRQ
|
>LDYAI MSG.IRQ
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr MLI
|
jsr MLI
|
||||||
.DA #MLIALLOCIRQ
|
.DA #MLIALLOCIRQ
|
||||||
@ -98,29 +98,29 @@ AT.INIT >LDAXI MSG.INIT
|
|||||||
|
|
||||||
cli
|
cli
|
||||||
|
|
||||||
>LDAXI MSG.PREFIX1
|
>LDYAI MSG.PREFIX1
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr GO.OLDMLI
|
jsr GO.OLDMLI
|
||||||
.DA #MLIGETPREFIX
|
.DA #MLIGETPREFIX
|
||||||
.DA MLIGETPREFIX.PARAMS
|
.DA MLIGETPREFIX.PARAMS
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDAXI MSG.PREFIX2
|
>LDYAI MSG.PREFIX2
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr GO.WSCARD
|
jsr GO.WSCARD
|
||||||
.DA #MLISETPREFIX
|
.DA #MLISETPREFIX
|
||||||
.DA MLIGETPREFIX.PARAMS
|
.DA MLIGETPREFIX.PARAMS
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDAXI MSG.OK
|
>LDYAI MSG.OK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 pha
|
.9 pha
|
||||||
>LDAXI MSG.KO
|
>LDYAI MSG.KO
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GO.WSCARD jmp $ffff Self Modifed
|
GO.WSCARD jmp $ffff Self Modifed
|
||||||
|
@ -16,20 +16,20 @@ AUTO 6
|
|||||||
TmpPtr1 .EQ $0
|
TmpPtr1 .EQ $0
|
||||||
TmpPtr2 .EQ $2
|
TmpPtr2 .EQ $2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
NSC.Init >LDAXI NSC.MSG0
|
NSC.Init >LDYAI NSC.MSG0
|
||||||
jsr NSC.Print
|
jsr NSC.Print
|
||||||
lda MACHID
|
lda MACHID
|
||||||
and #MACHID.CLK Clock already installed ?
|
and #MACHID.CLK Clock already installed ?
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>LDAXI NSC.MSG1
|
>LDYAI NSC.MSG1
|
||||||
jsr NSC.Print
|
jsr NSC.Print
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 jsr NSC.Detect
|
.1 jsr NSC.Detect
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
>LDAXI NSC.MSG2
|
>LDYAI NSC.MSG2
|
||||||
jsr NSC.Print
|
jsr NSC.Print
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ NSC.Init >LDAXI NSC.MSG0
|
|||||||
ora #MACHID.CLK
|
ora #MACHID.CLK
|
||||||
sta MACHID
|
sta MACHID
|
||||||
|
|
||||||
>LDAXI NSC.MSG3
|
>LDYAI NSC.MSG3
|
||||||
jsr NSC.Print
|
jsr NSC.Print
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -26,22 +26,22 @@ RW.BLOCK .EQ $A00
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RWBankSelect .EQ $C073
|
RWBankSelect .EQ $C073
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RW.Init >LDAXI RW.MSG
|
RW.Init >LDYAI RW.MSG
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr RW.Detect1
|
jsr RW.Detect1
|
||||||
bcs .10
|
bcs .10
|
||||||
|
|
||||||
>LDAXI RW.MSG.OK
|
>LDYAI RW.MSG.OK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.10 jsr RW.Detect2
|
.10 jsr RW.Detect2
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
>LDAXI RW.MSG.KO1
|
>LDYAI RW.MSG.KO1
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 pha Push Page count
|
.1 pha Push Page count
|
||||||
@ -55,28 +55,28 @@ RW.Init >LDAXI RW.MSG
|
|||||||
phx Push Kbyte LO
|
phx Push Kbyte LO
|
||||||
pha Push Kbyte HI
|
pha Push Kbyte HI
|
||||||
|
|
||||||
>LDAXI RW.MSG.OK1
|
>LDYAI RW.MSG.OK1
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr RW.Install
|
jsr RW.Install
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
>LDAXI RW.MSG.KO2
|
>LDYAI RW.MSG.KO2
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 >LDAXI RW.MSG.OK2
|
.2 >LDYAI RW.MSG.OK2
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr RW.Format
|
jsr RW.Format
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
>LDAXI RW.MSG.KO3
|
>LDYAI RW.MSG.KO3
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 >LDAXI RW.MSG.OK3
|
.3 >LDYAI RW.MSG.OK3
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RW.Detect1 jsr MLI
|
RW.Detect1 jsr MLI
|
||||||
|
@ -18,8 +18,8 @@ ADT.CMD.VSD .EQ $C5 "E": Virtual Drive Command Envelope
|
|||||||
ADT.CMD.PING .EQ $D9 "Y": PING
|
ADT.CMD.PING .EQ $D9 "Y": PING
|
||||||
DRV.EntryPoint .EQ $BF41
|
DRV.EntryPoint .EQ $BF41
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VSDRIVE.Init >LDAXI VSDRIVE.MSG0
|
VSDRIVE.Init >LDYAI VSDRIVE.MSG0
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr VSDRIVE.Check
|
jsr VSDRIVE.Check
|
||||||
bcs .90
|
bcs .90
|
||||||
@ -36,49 +36,49 @@ VSDRIVE.Init >LDAXI VSDRIVE.MSG0
|
|||||||
and #$0F
|
and #$0F
|
||||||
pha slot n
|
pha slot n
|
||||||
|
|
||||||
>LDAXI VSDRIVE.SSCOK
|
>LDYAI VSDRIVE.SSCOK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr VSDRIVE.Ping
|
jsr VSDRIVE.Ping
|
||||||
|
|
||||||
bcs .92
|
bcs .92
|
||||||
|
|
||||||
>LDAXI VSDRIVE.SRVOK
|
>LDYAI VSDRIVE.SRVOK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr VSDRIVE.SetSlot
|
jsr VSDRIVE.SetSlot
|
||||||
bcs .91
|
bcs .91
|
||||||
|
|
||||||
pha Push slot
|
pha Push slot
|
||||||
pha 2 times
|
pha 2 times
|
||||||
>LDAXI VSDRIVE.DEVOK
|
>LDYAI VSDRIVE.DEVOK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
jsr VSDRIVE.Install
|
jsr VSDRIVE.Install
|
||||||
|
|
||||||
>LDAXI VSDRIVE.OK
|
>LDYAI VSDRIVE.OK
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.90 >LDAXI VSDRIVE.DRVKO
|
.90 >LDYAI VSDRIVE.DRVKO
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.91 >LDAXI VSDRIVE.NOSLOT
|
.91 >LDYAI VSDRIVE.NOSLOT
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.92 pha Push EC
|
.92 pha Push EC
|
||||||
>LDAXI VSDRIVE.SRVKO
|
>LDYAI VSDRIVE.SRVKO
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
|
|
||||||
inc .1+1
|
inc .1+1
|
||||||
lda .1+1
|
lda .1+1
|
||||||
cmp #$C8
|
cmp #$C8
|
||||||
bne .2 Go try next SSC....
|
bne .2 Go try next SSC....
|
||||||
|
|
||||||
.99 >LDAXI VSDRIVE.SSCKO
|
.99 >LDYAI VSDRIVE.SSCKO
|
||||||
jsr PrintFAX
|
jsr PrintFYA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VSDRIVE.Check bit RRAMWRAMBNK2
|
VSDRIVE.Check bit RRAMWRAMBNK2
|
||||||
|
@ -3,33 +3,33 @@ PREFIX /A2OSX.BUILD
|
|||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintFAX sta PrintFAX.Next+1
|
PrintFYA sty PrintFYA.Next+1
|
||||||
stx PrintFAX.Next+2
|
sta PrintFYA.Next+2
|
||||||
|
|
||||||
pla
|
pla
|
||||||
sta PrintFAX.99+1
|
sta PrintFYA.99+1
|
||||||
pla
|
pla
|
||||||
sta PrintFAX.98+1
|
sta PrintFYA.98+1
|
||||||
|
|
||||||
lda $C011 RDLCBNK2
|
lda $C011 RDLCBNK2
|
||||||
sta PrintFAX.91+1
|
sta PrintFYA.91+1
|
||||||
lda $C012 RDLCRAM
|
lda $C012 RDLCRAM
|
||||||
sta PrintFAX.90+1
|
sta PrintFYA.90+1
|
||||||
|
|
||||||
lda $C08A RROMBNK1, make sure $D000-$FFFF ROM selected
|
lda $C08A RROMBNK1, make sure $D000-$FFFF ROM selected
|
||||||
lda $CFFF get access to $C800-$CFFF internal ROM
|
lda $CFFF get access to $C800-$CFFF internal ROM
|
||||||
|
|
||||||
PrintFAX.1 stz X.b0Flag
|
PrintFYA.1 stz X.b0Flag
|
||||||
stz X.DigitCount
|
stz X.DigitCount
|
||||||
|
|
||||||
jsr PrintFAX.Next
|
jsr PrintFYA.Next
|
||||||
beq PrintFAX.90
|
beq PrintFYA.90
|
||||||
|
|
||||||
cmp #'%'
|
cmp #'%'
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
.2 jsr PrintFAX.Next
|
.2 jsr PrintFYA.Next
|
||||||
beq PrintFAX.90
|
beq PrintFYA.90
|
||||||
|
|
||||||
cmp #'0'
|
cmp #'0'
|
||||||
bne .3
|
bne .3
|
||||||
@ -43,24 +43,24 @@ PrintFAX.1 stz X.b0Flag
|
|||||||
sta X.DigitCount
|
sta X.DigitCount
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.4 ldx #PrintFAX.Tbl-PrintFAX.Esc-1
|
.4 ldx #PrintFYA.Tbl-PrintFYA.Esc-1
|
||||||
|
|
||||||
.5 cmp PrintFAX.Esc,x
|
.5 cmp PrintFYA.Esc,x
|
||||||
beq .6
|
beq .6
|
||||||
dex
|
dex
|
||||||
bpl .5
|
bpl .5
|
||||||
bra PrintFAX.1
|
bra PrintFYA.1
|
||||||
|
|
||||||
.6 txa
|
.6 txa
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (PrintFAX.Tbl,x)
|
jmp (PrintFYA.Tbl,x)
|
||||||
|
|
||||||
.7 cmp #'\'
|
.7 cmp #'\'
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
jsr PrintFAX.Next
|
jsr PrintFYA.Next
|
||||||
beq PrintFAX.90
|
beq PrintFYA.90
|
||||||
|
|
||||||
cmp #'n'
|
cmp #'n'
|
||||||
bne .8
|
bne .8
|
||||||
@ -68,46 +68,46 @@ PrintFAX.1 stz X.b0Flag
|
|||||||
|
|
||||||
.8 ora #$80
|
.8 ora #$80
|
||||||
jsr $FDED COUT
|
jsr $FDED COUT
|
||||||
bra PrintFAX.1
|
bra PrintFYA.1
|
||||||
|
|
||||||
PrintFAX.90 lda #$ff
|
PrintFYA.90 lda #$ff
|
||||||
bpl PrintFAX.98 ROM was selected, nothing to do
|
bpl PrintFYA.98 ROM was selected, nothing to do
|
||||||
|
|
||||||
PrintFAX.91 lda #$ff
|
PrintFYA.91 lda #$ff
|
||||||
bmi PrintFAX.92 RAM bank 2 was selected
|
bmi PrintFYA.92 RAM bank 2 was selected
|
||||||
|
|
||||||
ldx #$8B RRAMWRAMBNK1
|
ldx #$8B RRAMWRAMBNK1
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
|
|
||||||
PrintFAX.92 ldx #$83 RRAMWRAMBNK2
|
PrintFYA.92 ldx #$83 RRAMWRAMBNK2
|
||||||
|
|
||||||
lda $C000,x
|
lda $C000,x
|
||||||
lda $C000,x
|
lda $C000,x
|
||||||
|
|
||||||
PrintFAX.98 lda #$ff Self modified RTS HI
|
PrintFYA.98 lda #$ff Self modified RTS HI
|
||||||
pha
|
pha
|
||||||
PrintFAX.99 lda #$ff Self modified RTS LOPrintFAXPrintFAX
|
PrintFYA.99 lda #$ff Self modified RTS LOPrintFYAPrintFYA
|
||||||
pha
|
pha
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintFAX.Next lda $ffff
|
PrintFYA.Next lda $ffff
|
||||||
beq .8
|
beq .8
|
||||||
inc PrintFAX.Next+1
|
inc PrintFYA.Next+1
|
||||||
bne .8
|
bne .8
|
||||||
inc PrintFAX.Next+2 Always !=0
|
inc PrintFYA.Next+2 Always !=0
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintFAX.Esc .AS "dDhHS"
|
PrintFYA.Esc .AS "dDhHS"
|
||||||
PrintFAX.Tbl .DA PrintFAX.D
|
PrintFYA.Tbl .DA PrintFYA.D
|
||||||
.DA PrintFAX.DD
|
.DA PrintFYA.DD
|
||||||
.DA PrintFAX.H
|
.DA PrintFYA.H
|
||||||
.DA PrintFAX.HH
|
.DA PrintFYA.HH
|
||||||
.DA PrintFAX.S
|
.DA PrintFYA.S
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintFAX.D ldx #0
|
PrintFYA.D ldx #0
|
||||||
.HS D0 bne
|
.HS D0 bne
|
||||||
PrintFAX.DD plx
|
PrintFYA.DD plx
|
||||||
pla
|
pla
|
||||||
sta X.HexBuffer
|
sta X.HexBuffer
|
||||||
stx X.HexBuffer+1
|
stx X.HexBuffer+1
|
||||||
@ -186,15 +186,15 @@ PrintFAX.DD plx
|
|||||||
cpy #6
|
cpy #6
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
.9 jmp PrintFAX.1
|
.9 jmp PrintFYA.1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintFAX.HH pla
|
PrintFYA.HH pla
|
||||||
jsr $FDDA PRBYTE
|
jsr $FDDA PRBYTE
|
||||||
PrintFAX.H pla
|
PrintFYA.H pla
|
||||||
jsr $FDDA PRBYTE
|
jsr $FDDA PRBYTE
|
||||||
jmp PrintFAX.1
|
jmp PrintFYA.1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintFAX.S pla
|
PrintFYA.S pla
|
||||||
sta .1+2
|
sta .1+2
|
||||||
sta .2+2
|
sta .2+2
|
||||||
|
|
||||||
@ -216,7 +216,7 @@ PrintFAX.S pla
|
|||||||
dex
|
dex
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.9 jmp PrintFAX.1
|
.9 jmp PrintFYA.1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
X.HexBuffer .BS 2
|
X.HexBuffer .BS 2
|
||||||
X.BCDBuffer .BS 3
|
X.BCDBuffer .BS 3
|
||||||
|
Loading…
x
Reference in New Issue
Block a user