mirror of
https://github.com/A2osX/A2osX.git
synced 2024-05-31 16:41:30 +00:00
Complete Rewrite #4 : Still debbuging...
This commit is contained in:
parent
71a00af938
commit
5d49c27c79
BIN
A2OSX.BOOT.DSK
BIN
A2OSX.BOOT.DSK
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
|
@ -59,16 +59,25 @@ A2osX.MLICALL1 jsr GO.MAINLC
|
||||||
jsr GO.AUXLC
|
jsr GO.AUXLC
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.ROMCALL1 bra *
|
A2osX.ROMCALL1 plx
|
||||||
|
stx .1+1
|
||||||
|
plx
|
||||||
|
stx .1+2
|
||||||
|
ldx RROMBNK1
|
||||||
|
jsr .1
|
||||||
|
ldx RRAMWRAMBNK1
|
||||||
|
ldx RRAMWRAMBNK1
|
||||||
|
rts
|
||||||
|
.1 jmp $FFFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GO.MAINLC php
|
GO.MAINLC php
|
||||||
clc
|
clc
|
||||||
bra GO.SAVE.REG
|
.HS 2C bit abs
|
||||||
|
|
||||||
GO.AUXLC php
|
GO.AUXLC php
|
||||||
sec
|
sec
|
||||||
|
|
||||||
GO.SAVE.REG sta A2osX.SaveA
|
sta A2osX.SaveA
|
||||||
pla keep P in A for later
|
pla keep P in A for later
|
||||||
stx A2osX.SaveX
|
stx A2osX.SaveX
|
||||||
sty A2osX.SaveY
|
sty A2osX.SaveY
|
||||||
|
@ -79,6 +88,10 @@ GO.SAVE.REG sta A2osX.SaveA
|
||||||
iny
|
iny
|
||||||
.1 stx GO.EXIT.JMP+1
|
.1 stx GO.EXIT.JMP+1
|
||||||
sty GO.EXIT.JMP+2
|
sty GO.EXIT.JMP+2
|
||||||
|
|
||||||
|
ldx RRAMWRAMBNK1
|
||||||
|
ldx RRAMWRAMBNK1
|
||||||
|
|
||||||
sei
|
sei
|
||||||
ldy pStack
|
ldy pStack
|
||||||
bcs GO.AUXLC1
|
bcs GO.AUXLC1
|
||||||
|
@ -88,7 +101,6 @@ GO.MAINLC1 tsx
|
||||||
ldx A2osX.SaveSM
|
ldx A2osX.SaveSM
|
||||||
txs
|
txs
|
||||||
stx CLRALTZP
|
stx CLRALTZP
|
||||||
ldx RROMBNK1
|
|
||||||
bra GO.EXIT
|
bra GO.EXIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GO.AUXLC1 stx SETALTZP
|
GO.AUXLC1 stx SETALTZP
|
||||||
|
@ -96,8 +108,6 @@ GO.AUXLC1 stx SETALTZP
|
||||||
stx A2osX.SaveSM
|
stx A2osX.SaveSM
|
||||||
ldx A2osX.SaveSX
|
ldx A2osX.SaveSX
|
||||||
txs
|
txs
|
||||||
ldx RRAMWRAMBNK1
|
|
||||||
ldx RRAMWRAMBNK1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GO.EXIT sty pStack
|
GO.EXIT sty pStack
|
||||||
pha push P on stack
|
pha push P on stack
|
||||||
|
@ -110,39 +120,18 @@ GO.EXIT.JMP jmp $FFFF
|
||||||
GO.Reset jsr GO.AUXLC
|
GO.Reset jsr GO.AUXLC
|
||||||
jmp KERNEL.COLDBOOT
|
jmp KERNEL.COLDBOOT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.PRBYTE pha
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
ora #$30
|
|
||||||
cmp #$3A
|
|
||||||
bcc .1
|
|
||||||
adc #6
|
|
||||||
.1 jsr S.COUT
|
|
||||||
pla
|
|
||||||
and #$0F
|
|
||||||
ora #$30
|
|
||||||
cmp #$3A
|
|
||||||
bcc S.COUT
|
|
||||||
adc #6
|
|
||||||
bra S.COUT
|
|
||||||
*--------------------------------------
|
|
||||||
S.CROUT lda #13
|
|
||||||
*--------------------------------------
|
|
||||||
S.COUT phx
|
|
||||||
phy
|
|
||||||
ldx #DEVMGR.COUT
|
|
||||||
jsr pDevJmp
|
|
||||||
ply
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.SaveA .BS 1
|
A2osX.SaveA .BS 1
|
||||||
A2osX.SaveX .BS 1
|
A2osX.SaveX .BS 1
|
||||||
A2osX.SaveY .BS 1
|
A2osX.SaveY .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.GP.End .EQ *
|
A2osX.GP.End .EQ *
|
||||||
|
*--------------------------------------
|
||||||
|
* CONTROL SECTION :
|
||||||
|
*--------------------------------------
|
||||||
|
.DO A2osX.GP.End>$BEBF
|
||||||
|
ERROR:GP too big
|
||||||
|
.FIN
|
||||||
|
*--------------------------------------
|
||||||
A2osX.GP.SIZE .EQ A2osX.GP.END-A2osX.GP.START
|
A2osX.GP.SIZE .EQ A2osX.GP.END-A2osX.GP.START
|
||||||
.BS A2osX.GP.START+$100-*
|
.BS A2osX.GP.START+$100-*
|
||||||
.EP
|
.EP
|
||||||
|
|
|
@ -76,7 +76,7 @@ PrintCStrAX >STAX TmpPtr1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintADec ldx #0
|
PrintADec ldx #0
|
||||||
PrintAXDec >STAX HEX
|
PrintAXDec >STAX HEX
|
||||||
PrintDec stz BCD
|
stz BCD
|
||||||
stz BCD+1
|
stz BCD+1
|
||||||
stz BCD+2
|
stz BCD+2
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF /A2OSX.BOOT/A
|
.TF /A2OSX.BOOT/A2OSX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
|
|
@ -3,21 +3,24 @@ PREFIX /A2OSX.BOOT
|
||||||
NEW
|
NEW
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
SET PATH=%A2OSX%SBIN/;%A2OSX%BIN/
|
ECHO *** A2osX Startup file ***
|
||||||
SET LIB=%A2OSX%LIB/
|
echo Env:
|
||||||
LOAD %A2OSX%DRV/CONSOLE.DRV
|
SET
|
||||||
EXEC GETTY CON LOGIN
|
INSDRV CONSOLE.DRV
|
||||||
*LOAD %A2OSX%DRV/SSC.DRV 9600 N 8 1 X
|
GETTY CON SBIN/LOGIN
|
||||||
*EXEC GETTY COM2 LOGIN
|
INSDRV UTHERNET.DRV 000E3A123456
|
||||||
*LOAD %A2OSX%DRV/PPIC.DRV
|
TCPIP ETH3
|
||||||
LOAD %A2OSX%DRV/UTHERNET.DRV 000E3A123456
|
DHCPCLNT
|
||||||
EXEC TCPIP ETH3
|
#INSDRV SSC.DRV 9600 N 8 1 X
|
||||||
EXEC DHCPCLNT
|
#GETTY COM2 SBIN/LOGIN
|
||||||
*EXEC TELNETD
|
#INSDRV PPIC.DRV
|
||||||
*MOUNT TFTP 192.168.1.5:/A2OSX /MNT/A2OSX
|
#TELNETD
|
||||||
*MOUNT CIFS 192.168.1.5:/MSSHARE /MNT/MSSHARE
|
#MOUNT TFTP 192.168.1.5:/A2OSX /MNT/A2OSX
|
||||||
*LOAD %A2OSX%DRV/DHGR.DRV
|
#MOUNT CIFS 192.168.1.5:/MSSHARE /MNT/MSSHARE
|
||||||
*LOAD %A2OSX%DRV/MOUSE.DRV
|
INSDRV DHGR.DRV
|
||||||
*EXEC GUI
|
INSDRV MOUSE.DRV
|
||||||
|
GUI
|
||||||
|
PS
|
||||||
|
ECHO *** End A2osX Startup file ***
|
||||||
MAN
|
MAN
|
||||||
TEXT A2OSX.STARTUP
|
TEXT A2OSX.STARTUP
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -48,11 +46,11 @@ L.MSG2 .DA MSG2
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
>LDYA L.LIBTCPIP
|
>LDYA L.LIBTCPIP
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
|
@ -139,7 +137,7 @@ CS.RUN lda #ARP.TIMEOUT
|
||||||
|
|
||||||
lda TimeOut
|
lda TimeOut
|
||||||
beq .9
|
beq .9
|
||||||
jsr A2osX.SLEEP
|
>SYSCALL SYS.Sleep
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 ldx #5
|
.2 ldx #5
|
||||||
|
|
|
@ -77,7 +77,12 @@ EXP.Eval stz EXP.Operator
|
||||||
lda (pData),y pass#2?
|
lda (pData),y pass#2?
|
||||||
bne .96 yes, undefined symbol
|
bne .96 yes, undefined symbol
|
||||||
|
|
||||||
jsr
|
|
||||||
|
|
||||||
|
bra *
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.41 ldx #3
|
.41 ldx #3
|
||||||
.5 lda SRC.FLabel.Value,x
|
.5 lda SRC.FLabel.Value,x
|
||||||
|
|
|
@ -65,9 +65,9 @@ FIO.OpenFileA sta FIO.hFileName
|
||||||
>SYSCALL SYS.MLIGetFileInfoA
|
>SYSCALL SYS.MLIGetFileInfoA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPPtr1
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
ldy #SRC.COUNT
|
ldy #SRC.COUNT
|
||||||
|
|
|
@ -107,7 +107,7 @@ SYM.Dump >PUSHW L.MSG.SYMBOLS
|
||||||
|
|
||||||
>PUSHW L.MSG.GSYMBOL
|
>PUSHW L.MSG.GSYMBOL
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
* bcs .9
|
bcs .9
|
||||||
|
|
||||||
.4 jsr SYM.GetByteGBlock
|
.4 jsr SYM.GetByteGBlock
|
||||||
beq .5 End Locals...proceed next Global
|
beq .5 End Locals...proceed next Global
|
||||||
|
@ -119,11 +119,10 @@ SYM.Dump >PUSHW L.MSG.SYMBOLS
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW L.MSG.LSYMBOL
|
>PUSHW L.MSG.LSYMBOL
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
* bcc .4
|
bcc .4
|
||||||
bra .4
|
|
||||||
|
|
||||||
.5 lda #13
|
.5 lda #13
|
||||||
jsr COUT
|
>SYSCALL SYS.CoutA
|
||||||
|
|
||||||
ldy #SYM.DumpCount
|
ldy #SYM.DumpCount
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
|
|
|
@ -10,7 +10,6 @@ AUTO 6
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
ZPPtr1 .EQ ZPBIN
|
ZPPtr1 .EQ ZPBIN
|
||||||
|
@ -139,7 +138,7 @@ J.LI .DA DIR.LI.CON
|
||||||
.DA 0
|
.DA 0
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
|
@ -342,15 +341,6 @@ CS.QUIT jsr FIO.FileClose
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
COUT phx
|
|
||||||
phy
|
|
||||||
ldx #DEVMGR.COUT
|
|
||||||
jsr pDevJmp
|
|
||||||
ply
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
*---------------------------------------
|
|
||||||
.INB BIN/ASM.S.DIR
|
.INB BIN/ASM.S.DIR
|
||||||
.INB BIN/ASM.S.EXP
|
.INB BIN/ASM.S.EXP
|
||||||
.INB BIN/ASM.S.FIO
|
.INB BIN/ASM.S.FIO
|
||||||
|
|
|
@ -6,23 +6,26 @@ AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF BIN/CHTYP
|
.TF /A2OSX.BOOT/BIN/CHTYP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Main entry point
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
|
||||||
* Code signature and INIT table
|
|
||||||
*--------------------------------------
|
|
||||||
* CLD $D8
|
|
||||||
* JMP (*,x) $7C
|
|
||||||
* #JMPTABLE
|
|
||||||
* /JMPTABLE
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
|
.DA #1 BIN Layout Version 1
|
||||||
|
.DA 0
|
||||||
|
.DA CS.END-CS.START Code Length To Relocate
|
||||||
|
.DA DS.END-DS.START Data Segment to Allocate
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
* Relocation Table
|
||||||
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
|
@ -37,11 +40,11 @@ L.MSG.VOL.END .DA MSG.VOL.END
|
||||||
L.MSG.DIR.END .DA MSG.DIR.END
|
L.MSG.DIR.END .DA MSG.DIR.END
|
||||||
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA CS.END-CS.START Code Length To Relocate
|
|
||||||
.DA DS.END-DS.START Data Segment to Allocate
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LIBLOADP L.LIB.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
stz hDIRPATH
|
stz hDIRPATH
|
||||||
stz hS.LISTDIR
|
stz hS.LISTDIR
|
||||||
stz hVOLHEADER
|
stz hVOLHEADER
|
||||||
|
@ -50,7 +53,7 @@ CS.INIT >LIBLOADP L.LIB.LIBSTR
|
||||||
stz bCANCEL
|
stz bCANCEL
|
||||||
|
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
lda (pPsContext),y
|
lda (pPs),y
|
||||||
beq .99 no arg, exit with err=0
|
beq .99 no arg, exit with err=0
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
@ -76,25 +79,25 @@ CS.INIT >LIBLOADP L.LIB.LIBSTR
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.10 ldy #S.PS.hARGS
|
.10 ldy #S.PS.hARGS
|
||||||
lda (pPsContext),y
|
lda (pPs),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
ldy #S.PS.hPREFIX
|
ldy #S.PS.hPREFIX
|
||||||
lda (pPsContext),y
|
lda (pPs),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>SYSCALL SYS.PStrCat
|
>SYSCALL SYS.PStrCat
|
||||||
sta hDIRPATH
|
sta hDIRPATH
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.1 ldy #S.PS.hPREFIX
|
.1 ldy #S.PS.hPREFIX
|
||||||
.2 lda (pPsContext),y
|
.2 lda (pPs),y
|
||||||
|
|
||||||
.3 >SYSCALL SYS.ListDirInitA
|
.3 >SYSCALL SYS.ListDirInitA
|
||||||
bcs .98
|
bcs .98
|
||||||
sta hS.LISTDIR
|
sta hS.LISTDIR
|
||||||
|
|
||||||
lda (pPsContext)
|
lda (pPs)
|
||||||
ora #S.PS.F.EVENT Now accept events
|
ora #S.PS.F.EVENT Now accept events
|
||||||
sta (pPsContext)
|
sta (pPs)
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -313,7 +316,7 @@ Push.Footer lda hVOLHEADER
|
||||||
CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
lda (pEvent),y
|
lda (pEvent),y
|
||||||
ldy #S.PS.hINDEV
|
ldy #S.PS.hINDEV
|
||||||
cmp (pPsContext),y
|
cmp (pPs),y
|
||||||
bne .9
|
bne .9
|
||||||
lda (pEvent)
|
lda (pEvent)
|
||||||
and #S.EVT.F.KEY is it a KEY event?
|
and #S.EVT.F.KEY is it a KEY event?
|
||||||
|
|
|
@ -3,15 +3,13 @@ PREFIX /A2OSX.SRC
|
||||||
NEW
|
NEW
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST ON
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF /A2OSX.BOOT/BIN/DNS
|
.TF /A2OSX.BOOT/BIN/DNSINFO
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -49,11 +47,11 @@ CS.INIT stz hHostName
|
||||||
stz hIP
|
stz hIP
|
||||||
|
|
||||||
>LDYA L.LIBSTR
|
>LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
>LDYA L.LIBTCPIP
|
>LDYA L.LIBTCPIP
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
|
@ -201,5 +199,5 @@ hIP .BS 1
|
||||||
IP .BS 4
|
IP .BS 4
|
||||||
DNSNAME .BS K.DNS.MAXLEN+1
|
DNSNAME .BS K.DNS.MAXLEN+1
|
||||||
MAN
|
MAN
|
||||||
SAVE BIN/DNS.S
|
SAVE BIN/DNSINFO.S
|
||||||
ASM
|
ASM
|
|
@ -9,9 +9,7 @@ AUTO 6
|
||||||
.TF /A2OSX.BOOT/BIN/EDIT
|
.TF /A2OSX.BOOT/BIN/EDIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
ZPPTR1 .EQ ZPBIN
|
||||||
|
@ -44,17 +42,14 @@ CS.INIT lda #0
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
lda #12
|
|
||||||
jsr COUT
|
|
||||||
|
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPPTR1
|
||||||
|
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPTR1)
|
||||||
cmp #'/'
|
cmp #'/'
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
|
@ -83,18 +78,27 @@ CS.INIT lda #0
|
||||||
bcs .9
|
bcs .9
|
||||||
>LDYAI 0
|
>LDYAI 0
|
||||||
|
|
||||||
.8 pha
|
.8 pha Y,A = len,X=hMem
|
||||||
tya
|
tya
|
||||||
ldy #FileLen
|
ldy #FileLen
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
iny
|
iny
|
||||||
pla
|
pla
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
txa
|
txa
|
||||||
ldy #hBuffer
|
ldy #hBuffer
|
||||||
txa
|
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
|
lda #$80
|
||||||
|
ldy #bSaved
|
||||||
|
sta (pData),y
|
||||||
|
ldy #bInsert
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
lda #12
|
||||||
|
jsr COUT
|
||||||
|
|
||||||
lda (pPs)
|
lda (pPs)
|
||||||
ora #S.PS.F.EVENT Now accept events
|
ora #S.PS.F.EVENT Now accept events
|
||||||
sta (pPs)
|
sta (pPs)
|
||||||
|
@ -135,7 +139,7 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.1
|
.1 cmp #$20
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
@ -143,30 +147,13 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda #12
|
CS.QUIT ldy #hBuffer
|
||||||
jsr COUT
|
lda (pData),y
|
||||||
|
>SYSCALL SYS.FreeMemA
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRBYTE pha
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
ora #$B0
|
|
||||||
cmp #$BA
|
|
||||||
bcc .1
|
|
||||||
adc #6
|
|
||||||
.1 jsr COUT
|
|
||||||
pla
|
|
||||||
and #$0F
|
|
||||||
ora #$B0
|
|
||||||
cmp #$BA
|
|
||||||
bcc COUT
|
|
||||||
adc #6
|
|
||||||
bra COUT
|
|
||||||
*--------------------------------------
|
|
||||||
CROUT lda #13
|
CROUT lda #13
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT phx
|
COUT phx
|
||||||
|
@ -176,7 +163,6 @@ COUT phx
|
||||||
ply
|
ply
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -187,9 +173,10 @@ bCANCEL .BS 1
|
||||||
hFileName .BS 1
|
hFileName .BS 1
|
||||||
hBuffer .BS 1
|
hBuffer .BS 1
|
||||||
FileLen .BS 2
|
FileLen .BS 2
|
||||||
xPos .BS 2
|
cPos .BS 1
|
||||||
yPos .BS 2
|
rPos .BS 2
|
||||||
|
bInsert .BS 1
|
||||||
|
bSaved .BS 1
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
101
BIN/LS.S.txt
101
BIN/LS.S.txt
|
@ -10,9 +10,12 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
ZPPtr1 .EQ ZPBIN
|
||||||
|
ZPPtr2 .EQ ZPBIN+2
|
||||||
|
ZPPtr3 .EQ ZPBIN+4
|
||||||
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
|
@ -43,7 +46,7 @@ L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
@ -57,11 +60,11 @@ CS.INIT >LDYA L.LIBSTR
|
||||||
beq .1 no arg, go get current prefix
|
beq .1 no arg, go get current prefix
|
||||||
|
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPQuickPtr1)
|
lda (ZPPtr1)
|
||||||
beq .1
|
beq .1
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #'/' full path starting with '/'?
|
cmp #'/' full path starting with '/'?
|
||||||
bne .10 no, append to current prefix
|
bne .10 no, append to current prefix
|
||||||
|
|
||||||
|
@ -89,18 +92,18 @@ CS.INIT >LDYA L.LIBSTR
|
||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPQuickPtr1)
|
lda (ZPPtr1)
|
||||||
tay
|
tay
|
||||||
lda #'/'
|
lda #'/'
|
||||||
cmp (ZPQuickPtr1),y
|
cmp (ZPPtr1),y
|
||||||
beq .31
|
beq .31
|
||||||
iny
|
iny
|
||||||
sta (ZPQuickPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
.31 iny
|
.31 iny
|
||||||
lda #'*'
|
lda #'*'
|
||||||
sta (ZPQuickPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
.4 pla
|
.4 pla
|
||||||
>SYSCALL SYS.ListDirInitA
|
>SYSCALL SYS.ListDirInitA
|
||||||
|
@ -138,12 +141,12 @@ CS.RUN ldy #bCANCEL
|
||||||
|
|
||||||
.3 pha
|
.3 pha
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPQuickPtr1)
|
lda (ZPPtr1)
|
||||||
pha
|
pha
|
||||||
|
|
||||||
and #$0F
|
and #$0F
|
||||||
sta (ZPQuickPtr1) Adjust Filename len
|
sta (ZPPtr1) Adjust Filename len
|
||||||
|
|
||||||
pla
|
pla
|
||||||
and #$F0
|
and #$F0
|
||||||
|
@ -153,7 +156,7 @@ CS.RUN ldy #bCANCEL
|
||||||
pla
|
pla
|
||||||
ldy #hVOLHEADER
|
ldy #hVOLHEADER
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
>PUSHW ZPQuickPtr1
|
>PUSHW ZPPtr1
|
||||||
>PUSHW L.MSG.VOL.HEADER
|
>PUSHW L.MSG.VOL.HEADER
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
clc
|
clc
|
||||||
|
@ -166,7 +169,7 @@ CS.RUN ldy #bCANCEL
|
||||||
ldy #hDIRHEADER
|
ldy #hDIRHEADER
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
>PUSHW ZPQuickPtr1
|
>PUSHW ZPPtr1
|
||||||
>PUSHW L.MSG.DIR.HEADER
|
>PUSHW L.MSG.DIR.HEADER
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
clc
|
clc
|
||||||
|
@ -183,7 +186,7 @@ CS.RUN ldy #bCANCEL
|
||||||
.5 cmp #$C0 Volume Name ?
|
.5 cmp #$C0 Volume Name ?
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
>PUSHW ZPQuickPtr1
|
>PUSHW ZPPtr1
|
||||||
>PUSHW L.MSG.VOL
|
>PUSHW L.MSG.VOL
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
|
@ -199,55 +202,55 @@ CS.RUN ldy #bCANCEL
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Push.Dir ldy #$1E get access mask
|
Push.Dir ldy #$1E get access mask
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW ZPQuickPtr1
|
>PUSHW ZPPtr1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Push.File >PUSHBI 0 4th byte of file len=0
|
Push.File >PUSHBI 0 4th byte of file len=0
|
||||||
ldy #$17 get file len (3 bytes)
|
ldy #$17 get file len (3 bytes)
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
ldy #$1E get access mask
|
ldy #$1E get access mask
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
ldy #$20 get aux type
|
ldy #$20 get aux type
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
ldy #$10 get filetype
|
ldy #$10 get filetype
|
||||||
|
|
||||||
lda L.PRODOS.FT.TXT
|
lda L.PRODOS.FT.TXT
|
||||||
sta ZPQuickPtr2
|
sta ZPPtr2
|
||||||
lda L.PRODOS.FT.TXT+1
|
lda L.PRODOS.FT.TXT+1
|
||||||
sta ZPQuickPtr2+1
|
sta ZPPtr2+1
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 lda (ZPQuickPtr1),y
|
.1 lda (ZPPtr1),y
|
||||||
cmp PRODOS.FT.ID,x
|
cmp PRODOS.FT.ID,x
|
||||||
beq .3
|
beq .3
|
||||||
lda ZPQuickPtr2
|
lda ZPPtr2
|
||||||
clc
|
clc
|
||||||
adc #4
|
adc #4
|
||||||
sta ZPQuickPtr2
|
sta ZPPtr2
|
||||||
bcc .2
|
bcc .2
|
||||||
inc ZPQuickPtr2+1
|
inc ZPPtr2+1
|
||||||
.2 inx
|
.2 inx
|
||||||
cpx PRODOS.FT.COUNT
|
cpx PRODOS.FT.COUNT
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
|
@ -255,41 +258,41 @@ Push.File >PUSHBI 0 4th byte of file len=0
|
||||||
tax
|
tax
|
||||||
lda HEXDIGIT,x
|
lda HEXDIGIT,x
|
||||||
sta PRODOS.FT.DFLT+2
|
sta PRODOS.FT.DFLT+2
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
and #$0F
|
and #$0F
|
||||||
tax
|
tax
|
||||||
lda HEXDIGIT,x
|
lda HEXDIGIT,x
|
||||||
sta PRODOS.FT.DFLT+3
|
sta PRODOS.FT.DFLT+3
|
||||||
|
|
||||||
.3 >PUSHW ZPQuickPtr2
|
.3 >PUSHW ZPPtr2
|
||||||
>PUSHW ZPQuickPtr1
|
>PUSHW ZPPtr1
|
||||||
>LIBCALL hLIBSTR,LIBSTR.LCASEP
|
>LIBCALL hLIBSTR,LIBSTR.LCASEP
|
||||||
>PUSHW ZPQuickPtr1
|
>PUSHW ZPPtr1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Push.Dates ldy #$24 get modification time
|
Push.Dates ldy #$24 get modification time
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
ldy #$22
|
ldy #$22
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
ldy #$1B get creation time
|
ldy #$1B get creation time
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
ldy #$19
|
ldy #$19
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -298,13 +301,13 @@ Push.Footer ldy #hVOLHEADER
|
||||||
beq .20
|
beq .20
|
||||||
|
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldy #$22 file_count
|
ldy #$22 file_count
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
>PUSHW L.MSG.VOL.END
|
>PUSHW L.MSG.VOL.END
|
||||||
|
@ -315,13 +318,13 @@ Push.Footer ldy #hVOLHEADER
|
||||||
beq .21
|
beq .21
|
||||||
|
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldy #$22 file_count
|
ldy #$22 file_count
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPtr1),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
>PUSHW L.MSG.DIR.END
|
>PUSHW L.MSG.DIR.END
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
ZPPTR1 .EQ ZPBIN
|
||||||
|
@ -42,7 +40,7 @@ L.MSG1 .DA MSG1
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
bcs .9
|
bcs .9
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,7 @@ AUTO 6
|
||||||
.TF /A2OSX.BOOT/BIN/MD
|
.TF /A2OSX.BOOT/BIN/MD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
ZPPTR1 .EQ ZPBIN
|
||||||
|
@ -123,7 +121,6 @@ COUT phx
|
||||||
ply
|
ply
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
hFullPath .BS 1
|
hFullPath .BS 1
|
||||||
|
|
|
@ -9,9 +9,7 @@ AUTO 6
|
||||||
.TF /A2OSX.BOOT/BIN/MEM
|
.TF /A2OSX.BOOT/BIN/MEM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PAGELEN .EQ 22
|
PAGELEN .EQ 22
|
||||||
|
@ -49,7 +47,7 @@ L.MSG6 .DA MSG6
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
bcs .9
|
bcs .9
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
|
@ -330,7 +328,6 @@ COUT phx
|
||||||
ply
|
ply
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
LIBSTR >PSTRING "libstr.o"
|
LIBSTR >PSTRING "libstr.o"
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -52,11 +50,11 @@ CS.INIT ldy #S.PS.hARGS
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 >LDYA L.LIBSTR
|
.1 >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
>LDYA L.LIBTCPIP
|
>LDYA L.LIBTCPIP
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
||||||
|
|
|
@ -6,12 +6,10 @@ AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF /A2OSX.BOOT/BIN/NETCFG
|
.TF /A2OSX.BOOT/BIN/NETINFO
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -55,7 +53,7 @@ L.MSG1.END .DA MSG1.END
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
lda #K.PROTOID.IP
|
lda #K.PROTOID.IP
|
||||||
|
@ -200,5 +198,5 @@ MSG1.DOMAIN >CSTRING ".%s"
|
||||||
MSG1.END >CSTRING "\nEnd of network configuration.\n"
|
MSG1.END >CSTRING "\nEnd of network configuration.\n"
|
||||||
hLIBSTR .BS 1
|
hLIBSTR .BS 1
|
||||||
MAN
|
MAN
|
||||||
SAVE BIN/NETCFG.S
|
SAVE BIN/NETINFO.S
|
||||||
ASM
|
ASM
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -20,6 +18,7 @@ PING.TIMEOUT .EQ 40 40*100ms = 4 sec.
|
||||||
ZPFrameBase1 .EQ ZPBIN
|
ZPFrameBase1 .EQ ZPBIN
|
||||||
ZPFrameLen1 .EQ ZPBIN+2
|
ZPFrameLen1 .EQ ZPBIN+2
|
||||||
ZPFramePtr1 .EQ ZPBIN+4
|
ZPFramePtr1 .EQ ZPBIN+4
|
||||||
|
ZPIPCfgPtr .EQ ZPBIN+6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -54,22 +53,22 @@ CS.INIT ldy #S.PS.hARGS
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 >LDYA L.LIBSTR
|
.1 >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
>LDYA L.LIBTCPIP
|
>LDYA L.LIBTCPIP
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
||||||
bcs .9
|
bcs .9
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPIPCfgPtr
|
||||||
|
|
||||||
lda (ZPQuickPtr1) Configured ?
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
bpl .9
|
bpl .9
|
||||||
|
|
||||||
ldy #S.IPCFG.HDEV
|
ldy #S.IPCFG.HDEV
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPIPCfgPtr),y
|
||||||
sta hDev
|
sta hDev
|
||||||
|
|
||||||
lda A2OSX.RANDOM16
|
lda A2OSX.RANDOM16
|
||||||
|
@ -113,7 +112,7 @@ CS.RUN.DNSQUERY >PUSHW pData DST.IP
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.QUERY
|
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.QUERY
|
||||||
bcc CS.RUN.IPOK
|
bcc CS.RUN.IPOK
|
||||||
|
|
||||||
jsr A2osX.SLEEP
|
>SYSCALL SYS.Sleep
|
||||||
ldy #TimeOut
|
ldy #TimeOut
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne CS.RUN.DNSQUERY
|
bne CS.RUN.DNSQUERY
|
||||||
|
@ -212,7 +211,7 @@ CS.RUN.ECHO >LIBCALL hLIBTCPIP,LIBTCPIP.NEW.ICMP.FRAME
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SEND.ICMP.FRAME
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SEND.ICMP.FRAME
|
||||||
bcc .4
|
bcc .4
|
||||||
jsr A2osX.SLEEP
|
>SYSCALL SYS.Sleep
|
||||||
ldy #TimeOut
|
ldy #TimeOut
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .3
|
bne .3
|
||||||
|
@ -228,7 +227,7 @@ CS.RUN.ECHO >LIBCALL hLIBTCPIP,LIBTCPIP.NEW.ICMP.FRAME
|
||||||
ldy #TimeOut
|
ldy #TimeOut
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
CS.RUN.WAIT jsr A2osX.SLEEP
|
CS.RUN.WAIT >SYSCALL SYS.Sleep
|
||||||
ldy #bReply
|
ldy #bReply
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -257,7 +256,7 @@ CS.RUN.WAIT jsr A2osX.SLEEP
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
jsr A2osX.SLEEP
|
>SYSCALL SYS.Sleep
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 jmp CS.RUN.ECHO
|
.2 jmp CS.RUN.ECHO
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
ZPPTR1 .EQ ZPBIN
|
||||||
|
@ -43,7 +41,7 @@ L.MSG2 .DA MSG2
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLibStr
|
sta hLibStr
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/LIBSTR.I
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPListDirPTR .EQ ZPBIN
|
ZPListDirPTR .EQ ZPBIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -250,7 +248,6 @@ COUT phx
|
||||||
ply
|
ply
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
FullPath .BS 64
|
FullPath .BS 64
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -20,6 +18,7 @@ RPCINFO.TIMEOUT .EQ 40 40*100ms = 4 sec.
|
||||||
ZPFrameBase1 .EQ ZPBIN
|
ZPFrameBase1 .EQ ZPBIN
|
||||||
ZPFrameLen1 .EQ ZPBIN+2
|
ZPFrameLen1 .EQ ZPBIN+2
|
||||||
ZPFramePtr1 .EQ ZPBIN+4
|
ZPFramePtr1 .EQ ZPBIN+4
|
||||||
|
ZPIPCfgPtr .EQ ZPBIN+6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -54,22 +53,22 @@ CS.INIT ldy #S.PS.hARGS
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 >LDYA L.LIBSTR
|
.1 >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
>LDYA L.LIBTCPIP
|
>LDYA L.LIBTCPIP
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
||||||
bcs .9
|
bcs .9
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPIPCfgPtr
|
||||||
|
|
||||||
lda (ZPQuickPtr1) Configured ?
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
bpl .9
|
bpl .9
|
||||||
|
|
||||||
ldy #S.IPCFG.HDEV
|
ldy #S.IPCFG.HDEV
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPIPCfgPtr),y
|
||||||
sta hDev
|
sta hDev
|
||||||
|
|
||||||
lda A2OSX.RANDOM16
|
lda A2OSX.RANDOM16
|
||||||
|
|
|
@ -6,23 +6,26 @@ AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF BIN/TEST
|
.TF /A2OSX.BOOT/BIN/TEST
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Main entry point
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
|
||||||
* Code signature and INIT table
|
|
||||||
*--------------------------------------
|
|
||||||
* CLD $D8
|
|
||||||
* JMP (*,x) $7C
|
|
||||||
* #JMPTABLE
|
|
||||||
* /JMPTABLE
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
|
.DA #1 BIN Layout Version 1
|
||||||
|
.DA 0
|
||||||
|
.DA CS.END-CS.START Code Length To Relocate
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
* Relocation Table
|
||||||
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.EVENT
|
.DA CS.EVENT
|
||||||
|
@ -39,21 +42,20 @@ L.TEST1 .DA TEST1
|
||||||
L.TEST2 .DA TEST2
|
L.TEST2 .DA TEST2
|
||||||
L.TEST3 .DA TEST3
|
L.TEST3 .DA TEST3
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA CS.END-CS.START Code Length To Relocate
|
|
||||||
.DA 0 Data Segment to Allocate
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LIBLOADP L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
ldy #S.PS.hPREFIX
|
ldy #S.PS.hPREFIX
|
||||||
lda (pPsContext),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW L.MSG0
|
>PUSHW L.MSG0
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
ldy #S.PS.hCS
|
ldy #S.PS.hCS
|
||||||
lda (pPsContext),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemByIDA
|
>SYSCALL SYS.GetMemByIDA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPQuickPtr1
|
||||||
ldy #S.MEM.BIN
|
ldy #S.MEM.BIN
|
||||||
|
@ -64,18 +66,18 @@ CS.INIT >LIBLOADP L.LIBSTR
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
lda (pPsContext),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
ldy #S.PS.hCMD
|
ldy #S.PS.hCMD
|
||||||
lda (pPsContext),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW L.MSG2
|
>PUSHW L.MSG2
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPsContext),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPBIN
|
>STYA ZPBIN
|
||||||
|
|
||||||
|
@ -163,10 +165,8 @@ CROUT lda #13
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT phx
|
COUT phx
|
||||||
phy
|
phy
|
||||||
>PUSHA
|
ldx #DEVMGR.COUT
|
||||||
ldy #S.PS.hOUTDEV
|
jsr pDevJmp
|
||||||
lda (pPsContext),y
|
|
||||||
>SYSCALL SYS.DevOutA
|
|
||||||
ply
|
ply
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/IO.I
|
.INB INC/IO.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CURSOR.BLINK.SPEED .EQ 2
|
CURSOR.BLINK.SPEED .EQ 2
|
||||||
|
@ -37,16 +35,15 @@ L.MSG.DETECT .DA MSG.DETECT
|
||||||
.DA 0 End Of Reloc Table
|
.DA 0 End Of Reloc Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Dev.Detect >LDYA L.MSG.DETECT
|
Dev.Detect >LDYA L.MSG.DETECT
|
||||||
>SYSCALL SYS.SysScrPPSTRYA
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
|
||||||
lda A2osX.SCREENS
|
lda A2osX.SCREENS
|
||||||
ora #A2osX.SCREENS.C
|
ora #A2osX.SCREENS.C
|
||||||
sta A2osX.SCREENS
|
sta A2osX.SCREENS
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
CS.END
|
CS.END
|
||||||
MSG.DETECT >PSTRING "\nApple IIe/IIc 80 Col Driver."
|
MSG.DETECT >PSTRING "Apple IIe/IIc 80 Col Driver.\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Device Header (16 Bytes)
|
* Device Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -72,8 +69,10 @@ L.DEVINFO .DA DEVINFO
|
||||||
OPEN stz CURON
|
OPEN stz CURON
|
||||||
lda #$80
|
lda #$80
|
||||||
sta INVFLG
|
sta INVFLG
|
||||||
|
|
||||||
jsr HOME
|
jsr HOME
|
||||||
|
|
||||||
|
lda #A2osX.SCREENS.C
|
||||||
|
>SYSCALL SYS.ScreenSelectA
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -84,7 +83,7 @@ GETEVENT lda A2osX.TIMER16
|
||||||
beq .1
|
beq .1
|
||||||
jsr CURBLNK
|
jsr CURBLNK
|
||||||
|
|
||||||
.1 lda A2osX.SCREENS
|
.1 lda A2osX.ASCREEN
|
||||||
and #A2osX.SCREENS.C is screen active?
|
and #A2osX.SCREENS.C is screen active?
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/IO.I
|
.INB INC/IO.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPBASE .EQ ZPDRV
|
ZPBASE .EQ ZPDRV
|
||||||
|
@ -50,7 +48,7 @@ MSG.DETECT >PSTRING "\nApple IIe/IIc DoubleHGR Driver."
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.HEADER cld
|
DEV.HEADER cld
|
||||||
jmp (DRV.CS.START,x)
|
jmp (DRV.CS.START,x)
|
||||||
.DA #0
|
.DA #S.DEV.F.EVENT
|
||||||
>PSTRING "GFX" NAME
|
>PSTRING "GFX" NAME
|
||||||
.HS 00 NAME must Be 5 bytes long
|
.HS 00 NAME must Be 5 bytes long
|
||||||
.HS 00.00
|
.HS 00.00
|
||||||
|
@ -73,7 +71,12 @@ DRV.CS.START .DA OPEN
|
||||||
L.DEVINFO .DA DEVINFO
|
L.DEVINFO .DA DEVINFO
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OPEN sta SETHIRES
|
OPEN lda #A2osX.SCREENS.G
|
||||||
|
>SYSCALL SYS.ScreenSelectA
|
||||||
|
|
||||||
|
sta SETHIRES
|
||||||
|
lda RD80STORE
|
||||||
|
pha
|
||||||
sta SET80STORE prepare for page switching
|
sta SET80STORE prepare for page switching
|
||||||
|
|
||||||
ldx #192
|
ldx #192
|
||||||
|
@ -106,10 +109,25 @@ OPEN sta SETHIRES
|
||||||
txa
|
txa
|
||||||
bne .81
|
bne .81
|
||||||
|
|
||||||
clc
|
pla
|
||||||
|
bmi .84
|
||||||
|
|
||||||
|
sta CLR80STORE
|
||||||
|
.84 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GETEVENT
|
GETEVENT lda A2osX.ASCREEN
|
||||||
|
and #A2osX.SCREENS.G is screen active?
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
>SYSCALL SYS.GetKeyboardEvent
|
||||||
|
bcs .9
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 lda #0 Error = no event
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
COUT
|
COUT
|
||||||
IRQ sec
|
IRQ sec
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -11,7 +11,6 @@ AUTO 6
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/IO.I
|
.INB INC/IO.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPGoMouse .EQ ZPDRV
|
ZPGoMouse .EQ ZPDRV
|
||||||
ZPTmpPtr1 .EQ ZPDRV+2
|
ZPTmpPtr1 .EQ ZPDRV+2
|
||||||
|
@ -65,7 +64,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
|
||||||
.DA 0 End Of Reloc Table
|
.DA 0 End Of Reloc Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Dev.Detect >LDYA L.MSG.DETECT
|
Dev.Detect >LDYA L.MSG.DETECT
|
||||||
>SYSCALL SYS.SysScrPPSTRYA
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
|
||||||
stz ZPTmpPtr1
|
stz ZPTmpPtr1
|
||||||
lda #$C1
|
lda #$C1
|
||||||
|
@ -87,7 +86,7 @@ Dev.Detect >LDYA L.MSG.DETECT
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG.DETECT.KO
|
>LDYA L.MSG.DETECT.KO
|
||||||
>SYSCALL SYS.SysScrPPSTRYA
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
|
||||||
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
|
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
|
||||||
sec
|
sec
|
||||||
|
@ -106,16 +105,18 @@ Dev.Detect >LDYA L.MSG.DETECT
|
||||||
sta DEVSLOTn0
|
sta DEVSLOTn0
|
||||||
|
|
||||||
>LDYA L.MSG.DETECT.OK
|
>LDYA L.MSG.DETECT.OK
|
||||||
>SYSCALL SYS.SysScrPPSTRYA
|
>SYSCALL SYS.PSTROutYA
|
||||||
>LDYA L.DEV.HEADER.NAME
|
>LDYA L.DEV.HEADER.NAME
|
||||||
>SYSCALL SYS.SysScrPPSTRYA
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.DETECT >PSTRING "\nApple II Mouse Driver."
|
MSG.DETECT >PSTRING "Apple Mouse Card/IIc Mouse Driver."
|
||||||
MSG.DETECT.OK >PSTRING "\nMouse Card Driver Installed As Device : "
|
MSG.DETECT.OK >PSTRING "Mouse Installed As Device : "
|
||||||
MSG.DETECT.KO >PSTRING "\nMouse Card Not Found."
|
MSG.DETECT.KO >PSTRING "No Mouse Found.\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Device Header (16 Bytes)
|
* Device Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -188,7 +189,11 @@ OPEN
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GETEVENT php
|
GETEVENT lda A2osX.ASCREEN
|
||||||
|
and #A2osX.SCREENS.G is screen active?
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
php
|
||||||
sei
|
sei
|
||||||
|
|
||||||
lda RD80STORE
|
lda RD80STORE
|
||||||
|
@ -252,8 +257,9 @@ GETEVENT php
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec A=0 : no event
|
.9 lda #0 Error = no event
|
||||||
rts
|
sec
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT
|
COUT
|
||||||
IRQ sec
|
IRQ sec
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPTmpPTR .EQ ZPDRV
|
ZPTmpPTR .EQ ZPDRV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -126,11 +124,14 @@ CS.START cld
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.MSG.DETECT .DA MSG.DETECT
|
L.MSG.DETECT .DA MSG.DETECT
|
||||||
|
L.MSG.DETECT.OK .DA MSG.DETECT.OK
|
||||||
|
L.MSG.DETECT.KO .DA MSG.DETECT.KO
|
||||||
|
L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
|
||||||
.DA 0 End Of Reloc Table
|
.DA 0 End Of Reloc Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Dev.Detect sta hArgs
|
Dev.Detect sta hArgs
|
||||||
>LDYA L.MSG.DETECT
|
>LDYA L.MSG.DETECT
|
||||||
>SYSCALL SYS.SysScrPPSTRYA
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
|
||||||
ldx #$10
|
ldx #$10
|
||||||
.1 stx DEVSLOTx0
|
.1 stx DEVSLOTx0
|
||||||
|
@ -150,7 +151,10 @@ Dev.Detect sta hArgs
|
||||||
cpx #$80
|
cpx #$80
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #DEVMGR.ERRNOHW
|
>LDYA L.MSG.DETECT.KO
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
|
||||||
|
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -165,7 +169,13 @@ Dev.Detect sta hArgs
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.4 clc
|
.4 >LDYA L.MSG.DETECT.OK
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
>LDYA L.DEV.HEADER.NAME
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DecodeMac lda (ZPTmpPTR)
|
DecodeMac lda (ZPTmpPTR)
|
||||||
|
@ -221,7 +231,9 @@ Asc2NibbleA cmp #$30
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.DETECT >PSTRING "\nUtherNet/CS8900A Driver."
|
MSG.DETECT >PSTRING "UtherNet/CS8900A Driver.\n"
|
||||||
|
MSG.DETECT.OK >PSTRING "UtherNet/CS8900A Installed As Device : "
|
||||||
|
MSG.DETECT.KO >PSTRING "Hardware Not Found.\n"
|
||||||
hArgs .BS 1
|
hArgs .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Device Header (16 Bytes)
|
* Device Header (16 Bytes)
|
||||||
|
|
1
ETC/HOSTNAME
Normal file
1
ETC/HOSTNAME
Normal file
|
@ -0,0 +1 @@
|
||||||
|
apple2-host
|
|
@ -8,7 +8,6 @@ MASK=255.255.255.0
|
||||||
GW=192.168.1.1
|
GW=192.168.1.1
|
||||||
DNS=192.168.1.2
|
DNS=192.168.1.2
|
||||||
DNS=192.168.1.1
|
DNS=192.168.1.1
|
||||||
HOSTNAME=apple2
|
|
||||||
DOMAIN=coincoin.hd.free.fr
|
DOMAIN=coincoin.hd.free.fr
|
||||||
MAN
|
MAN
|
||||||
TEXT ETC/TCPIP.CONF
|
TEXT ETC/TCPIP.CONF
|
||||||
|
|
|
@ -7,11 +7,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Aux ZP
|
* Aux ZP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPQuickPtr1 .EQ $0 Temp Ptrs for use in very limited scope
|
|
||||||
ZPQuickPtr2 .EQ $2 (could be trashed by any JSR)
|
|
||||||
ZPQuickPtr3 .EQ $4
|
|
||||||
ZPQuickPtr4 .EQ $6
|
|
||||||
|
|
||||||
pCode .EQ $10
|
pCode .EQ $10
|
||||||
pData .EQ $12
|
pData .EQ $12
|
||||||
pStack .EQ $14
|
pStack .EQ $14
|
||||||
|
@ -26,12 +21,12 @@ ZPDRV .EQ $80
|
||||||
ZPBIN .EQ $90
|
ZPBIN .EQ $90
|
||||||
ZPLIB .EQ $A0
|
ZPLIB .EQ $A0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* !!!!!!! RESERVED APPLESOFT.I !!!!!!!
|
||||||
|
* $5E -> $C8
|
||||||
|
*--------------------------------------
|
||||||
* $B0 -> $FF KERNEL RESERVED
|
* $B0 -> $FF KERNEL RESERVED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPMemMgr .EQ $B0
|
ZPMemMgr .EQ $E0
|
||||||
ZPSysScr .EQ $C0
|
|
||||||
ZPDevMgr .EQ $D0
|
|
||||||
ZPTskMgr .EQ $E0
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
R.VCPU16 .EQ $F0
|
R.VCPU16 .EQ $F0
|
||||||
R.AX .EQ R.VCPU16
|
R.AX .EQ R.VCPU16
|
||||||
|
@ -73,7 +68,6 @@ D.STACK.TOP .EQ $03F0 ...Down to $0300
|
||||||
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F00
|
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F00
|
||||||
Z80JMP .EQ $1000
|
Z80JMP .EQ $1000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MLICALL.PARAMS .EQ $1100
|
|
||||||
DevMgr.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*16=512b
|
DevMgr.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*16=512b
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TskMgr.Table .EQ $1400 K.PS.MAX*S.PS.SIZE=64*16=1k
|
TskMgr.Table .EQ $1400 K.PS.MAX*S.PS.SIZE=64*16=1k
|
||||||
|
@ -103,6 +97,10 @@ pDevJmp .EQ $BE10
|
||||||
pCodeJmp .EQ $BE13
|
pCodeJmp .EQ $BE13
|
||||||
pLibJmp .EQ $BE16
|
pLibJmp .EQ $BE16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* $11 bytes min !!!!
|
||||||
|
*--------------------------------------
|
||||||
|
MLICALL.PARAMS .EQ $BEC0
|
||||||
|
*--------------------------------------
|
||||||
* $BEE0->$BEFF : Public Variables
|
* $BEE0->$BEFF : Public Variables
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.SCREENS .EQ $BEE0
|
A2osX.SCREENS .EQ $BEE0
|
||||||
|
@ -189,13 +187,13 @@ SYS.LoadDrvA .EQ $26
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.ExpandPStrA .EQ $30
|
SYS.ExpandPStrA .EQ $30
|
||||||
SYS.ExpandPStrYA .EQ $32
|
SYS.ExpandPStrYA .EQ $32
|
||||||
SYS.GetEnvVarH .EQ $34
|
SYS.GetEnvVarA .EQ $34
|
||||||
SYS.GetEnvVarP .EQ $36
|
SYS.GetEnvVarYA .EQ $36
|
||||||
|
|
||||||
SYS.SetEnvVarH .EQ $38
|
SYS.SetEnvVarH .EQ $38
|
||||||
SYS.SetEnvVarP .EQ $3A
|
SYS.SetEnvVarP .EQ $3A
|
||||||
SYS.DelEnvVarH .EQ $3C
|
SYS.DelEnvVarA .EQ $3C
|
||||||
SYS.DelEnvVarP .EQ $3E
|
SYS.DelEnvVarYA .EQ $3E
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.MLICreateFile .EQ $40
|
SYS.MLICreateFile .EQ $40
|
||||||
SYS.MLICreateDirA .EQ $42
|
SYS.MLICreateDirA .EQ $42
|
||||||
|
@ -243,10 +241,10 @@ SYS.GetDevByNameYA .EQ $84
|
||||||
|
|
||||||
SYS.GetKeyboardEvent .EQ $88
|
SYS.GetKeyboardEvent .EQ $88
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.ExecProcessNewEnvA .EQ $90
|
SYS.ExecProcessNewEnvYA .EQ $90
|
||||||
SYS.ExecProcessA .EQ $92
|
SYS.ExecProcessYA .EQ $92
|
||||||
SYS.CreateProcessNewEnvA .EQ $94
|
SYS.CreateProcessNewEnvYA .EQ $94
|
||||||
SYS.CreateProcessA .EQ $96
|
SYS.CreateProcessYA .EQ $96
|
||||||
|
|
||||||
SYS.GetPSByIDA .EQ $98
|
SYS.GetPSByIDA .EQ $98
|
||||||
|
|
||||||
|
@ -267,9 +265,15 @@ SYS.GetNetCfgA .EQ $B4
|
||||||
SYS.ClrNetCfgA .EQ $B6
|
SYS.ClrNetCfgA .EQ $B6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.ScreenSelectA .EQ $C0
|
SYS.ScreenSelectA .EQ $C0
|
||||||
|
*--------------------------------------
|
||||||
|
SYS.COutA .EQ $D0
|
||||||
|
SYS.PSTROutA .EQ $D2
|
||||||
|
SYS.PSTROutYA .EQ $D4
|
||||||
|
|
||||||
SYS.SysScrPPSTRA .EQ $C4
|
SYS.HexOutA .EQ $D8
|
||||||
SYS.SysScrPPSTRYA .EQ $C6
|
SYS.HexOutYA .EQ $DA
|
||||||
|
SYS.DecOutA .EQ $DC
|
||||||
|
SYS.DecOutYA .EQ $DE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ERROR CODES
|
* ERROR CODES
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
70
INC/APPLESOFT.I.txt
Normal file
70
INC/APPLESOFT.I.txt
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
PR#3
|
||||||
|
PREFIX /A2OSX.SRC
|
||||||
|
NEW
|
||||||
|
INC 1
|
||||||
|
AUTO 6
|
||||||
|
.LIST OFF
|
||||||
|
*--------------------------------------
|
||||||
|
* AppleSoft ZP
|
||||||
|
* http://www.txbobsc.com/scsc/scdocumentor/index.html#toc
|
||||||
|
*--------------------------------------
|
||||||
|
SIGNFLG .EQ $16 FLAGS SIGN IN TAN
|
||||||
|
INDEX .EQ $5E Ptr Used by Math routines
|
||||||
|
RESULT .EQ $62 -> $66, RESULT OF LAST * OR /
|
||||||
|
FAC .EQ $9D -> $A1 (5 bytes)
|
||||||
|
FAC.SIGN .EQ $A2
|
||||||
|
ARG .EQ $A5 -> $A9 (5 bytes)
|
||||||
|
ARG.SIGN .EQ $AA
|
||||||
|
SGNCPR .EQ $AB FLAGS OPP SIGN IN FP ROUT
|
||||||
|
CHRGET .EQ $B1 -> $C8
|
||||||
|
CHRGOT .EQ $B7
|
||||||
|
TXTPTR .EQ $B8
|
||||||
|
*--------------------------------------
|
||||||
|
*--------------------------------------
|
||||||
|
*--------------------------------------
|
||||||
|
*--------------------------------------
|
||||||
|
* FAC = (Y,A) - FAC
|
||||||
|
*--------------------------------------
|
||||||
|
FSUB .EQ $E7A7
|
||||||
|
*--------------------------------------
|
||||||
|
* FAC = (Y,A) + FAC
|
||||||
|
*--------------------------------------
|
||||||
|
FADD .EQ $E7BE
|
||||||
|
*--------------------------------------
|
||||||
|
LOG .EQ $E941
|
||||||
|
*--------------------------------------
|
||||||
|
* FAC = (Y,A) * FAC
|
||||||
|
*--------------------------------------
|
||||||
|
FMULT .EQ $E97F
|
||||||
|
*--------------------------------------
|
||||||
|
* FAC = (Y,A) / FAC
|
||||||
|
*--------------------------------------
|
||||||
|
FDIV .EQ $EA66
|
||||||
|
*--------------------------------------
|
||||||
|
* CONVERT STRING TO FP VALUE IN FAC
|
||||||
|
* STRING POINTED TO BY TXTPTR
|
||||||
|
* FIRST CHAR ALREADY SCANNED BY CHRGET
|
||||||
|
* (A) = FIRST CHAR, C=0 IF DIGIT.
|
||||||
|
*--------------------------------------
|
||||||
|
FIN .EQ $EC4A
|
||||||
|
*--------------------------------------
|
||||||
|
SQR .EQ $EE8D
|
||||||
|
*--------------------------------------
|
||||||
|
* FAC = E ^ FAC
|
||||||
|
*--------------------------------------
|
||||||
|
EXP .EQ $EF09
|
||||||
|
*--------------------------------------
|
||||||
|
RND .EQ $EFAE
|
||||||
|
*--------------------------------------
|
||||||
|
COS .EQ $EFEA
|
||||||
|
*--------------------------------------
|
||||||
|
SIN .EQ $EFF1
|
||||||
|
*--------------------------------------
|
||||||
|
TAN .EQ $F03A
|
||||||
|
*--------------------------------------
|
||||||
|
ATN .EQ $F09E
|
||||||
|
*--------------------------------------
|
||||||
|
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE INC/APPLESOFT.I
|
|
@ -10,6 +10,14 @@ AUTO 6
|
||||||
bpl :1
|
bpl :1
|
||||||
sta $C010
|
sta $C010
|
||||||
.EM
|
.EM
|
||||||
|
*--------------------------------------
|
||||||
|
.MA DEBUGOA
|
||||||
|
bit $C061
|
||||||
|
bpl :2
|
||||||
|
:1 bit $C000
|
||||||
|
bpl :1
|
||||||
|
sta $C010
|
||||||
|
:2 .EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* SYSCALLs Macros
|
* SYSCALLs Macros
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -101,16 +109,6 @@ AUTO 6
|
||||||
ldx #]2
|
ldx #]2
|
||||||
jsr A2osX.DRVCALL
|
jsr A2osX.DRVCALL
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
|
||||||
.MA LOADLIBYA
|
|
||||||
ldx #SYS.LoadLibYA
|
|
||||||
jsr A2osX.SYSCALL
|
|
||||||
.EM
|
|
||||||
*--------------------------------------
|
|
||||||
.MA LOADLIBA
|
|
||||||
ldx #SYS.LoadLibA
|
|
||||||
jsr A2osX.SYSCALL
|
|
||||||
.EM
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA LIBCALL
|
.MA LIBCALL
|
||||||
ldy ]1
|
ldy ]1
|
||||||
|
@ -287,9 +285,9 @@ AUTO 6
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA PSTRING
|
.MA PSTRING
|
||||||
.DA #:2-:1
|
.DA #:1-*-1
|
||||||
:1 .AS "]1"
|
.AS "]1"
|
||||||
:2 .EQ *
|
:1 .EQ *
|
||||||
.EM
|
.EM
|
||||||
MAN
|
MAN
|
||||||
SAVE INC/MACROS.I
|
SAVE INC/MACROS.I
|
||||||
|
|
|
@ -10,7 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPTmpPtr1 .EQ ZPLIB+2
|
ZPTmpPtr1 .EQ ZPLIB+2
|
||||||
ZPTmpPtr2 .EQ ZPLIB+4
|
ZPTmpPtr2 .EQ ZPLIB+4
|
||||||
|
@ -761,7 +760,6 @@ COUT phx
|
||||||
ply
|
ply
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
PRINTFTBL1 .AS -"abBdDLeEhHiIsStT"
|
PRINTFTBL1 .AS -"abBdDLeEhHiIsStT"
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPFrameBase1 .EQ ZPLIB
|
ZPFrameBase1 .EQ ZPLIB
|
||||||
|
@ -469,7 +467,6 @@ ComputeChecksum >PULLA
|
||||||
eor #$FF
|
eor #$FF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
bFirstLoad .DA #0
|
bFirstLoad .DA #0
|
||||||
|
|
|
@ -10,14 +10,13 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPFrameBase1 .EQ ZPBIN
|
ZPFrameBase1 .EQ ZPBIN
|
||||||
ZPFrameLen1 .EQ ZPBIN+2
|
ZPFrameLen1 .EQ ZPBIN+2
|
||||||
ZPFramePtr1 .EQ ZPBIN+4
|
ZPFramePtr1 .EQ ZPBIN+4
|
||||||
|
ZPPtr1 .EQ ZPBIN+6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -43,20 +42,20 @@ L.IPCFG .DA IPCFG
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
>LDYA L.LIBTCPIP
|
>LDYA L.LIBTCPIP
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
||||||
bcs .9
|
bcs .9
|
||||||
>STYA ZPQuickPTR1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldy #S.IPCFG
|
ldy #S.IPCFG
|
||||||
.1 dey
|
.1 dey
|
||||||
lda (ZPQuickPTR1),y
|
lda (ZPPtr1),y
|
||||||
sta IPCFG,y
|
sta IPCFG,y
|
||||||
tya
|
tya
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -97,7 +96,7 @@ CS.RUN.DISC jsr SendDHCPDiscFrame
|
||||||
lda #S.IPCFG.STATUS.SDISC
|
lda #S.IPCFG.STATUS.SDISC
|
||||||
sta IPCFG
|
sta IPCFG
|
||||||
|
|
||||||
CS.RUN.OFFER jsr A2osX.SLEEP
|
CS.RUN.OFFER >SYSCALL SYS.Sleep
|
||||||
lda IPCFG
|
lda IPCFG
|
||||||
and #S.IPCFG.STATUS.ROFFER
|
and #S.IPCFG.STATUS.ROFFER
|
||||||
bne CS.RUN.REQ
|
bne CS.RUN.REQ
|
||||||
|
@ -112,7 +111,7 @@ CS.RUN.REQ jsr SendDHCPReqFrame
|
||||||
lda #S.IPCFG.STATUS.SREQ
|
lda #S.IPCFG.STATUS.SREQ
|
||||||
sta IPCFG
|
sta IPCFG
|
||||||
|
|
||||||
CS.RUN.RACK jsr A2osX.SLEEP
|
CS.RUN.RACK >SYSCALL SYS.Sleep
|
||||||
lda IPCFG
|
lda IPCFG
|
||||||
and #S.IPCFG.STATUS.RACK
|
and #S.IPCFG.STATUS.RACK
|
||||||
bne CS.RUN.OK
|
bne CS.RUN.OK
|
||||||
|
@ -209,15 +208,15 @@ SendDHCPDiscFrame
|
||||||
lda ZPFrameBase1
|
lda ZPFrameBase1
|
||||||
clc
|
clc
|
||||||
adc #S.UDP
|
adc #S.UDP
|
||||||
sta ZPQuickPTR1
|
sta ZPPtr1
|
||||||
lda ZPFrameBase1+1
|
lda ZPFrameBase1+1
|
||||||
adc /S.UDP
|
adc /S.UDP
|
||||||
sta ZPQuickPTR1+1
|
sta ZPPtr1+1
|
||||||
|
|
||||||
ldy #FRAME.DISC.LEN
|
ldy #FRAME.DISC.LEN
|
||||||
.1 dey
|
.1 dey
|
||||||
lda FRAME.DISC,y
|
lda FRAME.DISC,y
|
||||||
sta (ZPQuickPTR1),y
|
sta (ZPPtr1),y
|
||||||
tya
|
tya
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
@ -363,15 +362,15 @@ SendDHCPReqFrame
|
||||||
lda ZPFrameBase1
|
lda ZPFrameBase1
|
||||||
clc
|
clc
|
||||||
adc #S.UDP
|
adc #S.UDP
|
||||||
sta ZPQuickPTR1
|
sta ZPPtr1
|
||||||
lda ZPFrameBase1+1
|
lda ZPFrameBase1+1
|
||||||
adc /S.UDP
|
adc /S.UDP
|
||||||
sta ZPQuickPTR1+1
|
sta ZPPtr1+1
|
||||||
|
|
||||||
ldy #FRAME.REQ.LEN
|
ldy #FRAME.REQ.LEN
|
||||||
.1 dey
|
.1 dey
|
||||||
lda FRAME.REQ,y
|
lda FRAME.REQ,y
|
||||||
sta (ZPQuickPTR1),y
|
sta (ZPPtr1),y
|
||||||
tya
|
tya
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
|
104
SBIN/GETTY.S.txt
104
SBIN/GETTY.S.txt
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPTmp1 .EQ ZPBIN
|
ZPTmp1 .EQ ZPBIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -42,7 +40,8 @@ CS.INIT ldy #S.PS.hARGS
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG.USAGE
|
>LDYA L.MSG.USAGE
|
||||||
jsr PRINT.MSG
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
lda #0
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -50,12 +49,13 @@ CS.INIT ldy #S.PS.hARGS
|
||||||
>PUSHBI $20 Push SEP=' '
|
>PUSHBI $20 Push SEP=' '
|
||||||
>PUSHBI 1 Push 1 for getting INDEV
|
>PUSHBI 1 Push 1 for getting INDEV
|
||||||
>SYSCALL SYS.PStrGetTkn
|
>SYSCALL SYS.PStrGetTkn
|
||||||
bcs .98
|
bcs .99
|
||||||
|
|
||||||
sta hDEVNAME
|
sta hDEVNAME
|
||||||
>SYSCALL SYS.GetDevByNameA
|
>SYSCALL SYS.GetDevByNameA
|
||||||
bcs .99
|
bcs .98
|
||||||
|
|
||||||
|
>STYA pDev
|
||||||
txa
|
txa
|
||||||
ldy #S.PS.hINDEV
|
ldy #S.PS.hINDEV
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
|
@ -77,13 +77,11 @@ CS.INIT ldy #S.PS.hARGS
|
||||||
|
|
||||||
ldy #hBinName
|
ldy #hBinName
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
ldx #DEVMGR.OPEN
|
ldx #DEVMGR.OPEN
|
||||||
jsr pDevJmp if error CS, else...
|
jsr pDevJmp if error CS, else...
|
||||||
|
|
||||||
rts ...Tell TskMgr To stay in memory
|
rts ...Tell TskMgr To stay in memory
|
||||||
|
|
||||||
|
|
||||||
.98 pha
|
.98 pha
|
||||||
lda hDEVNAME
|
lda hDEVNAME
|
||||||
>SYSCALL SYS.FreeMemA
|
>SYSCALL SYS.FreeMemA
|
||||||
|
@ -91,41 +89,33 @@ CS.INIT ldy #S.PS.hARGS
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN ldy #S.PS.hOUTDEV
|
CS.RUN lda #13 try send a CR...
|
||||||
lda (pPs),y
|
>SYSCALL SYS.COutA Device Is Ready ?
|
||||||
>SYSCALL SYS.GetDevByIDA
|
|
||||||
>STYA pDev
|
|
||||||
|
|
||||||
lda #13 try send a CR...
|
|
||||||
|
|
||||||
jsr COUT Device Is Ready ?
|
|
||||||
|
|
||||||
bcc .1
|
bcs .8 no..loop...
|
||||||
clc no..loop...
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 >LDYA L.MSG.GREETINGS
|
.1 >LDYA L.MSG.GREETINGS
|
||||||
jsr PRINT.MSG
|
>SYSCALL SYS.PSTROutYA
|
||||||
bcs .9
|
|
||||||
|
|
||||||
ldy #S.PS.hINDEV
|
bcs .8 unable to send greetings...loop..
|
||||||
lda (pPs),y
|
|
||||||
jsr PRBYTE
|
|
||||||
bcs .9
|
|
||||||
lda #','
|
|
||||||
|
|
||||||
jsr COUT
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
ldy #S.PS.hOUTDEV
|
ldy #S.PS.hOUTDEV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
jsr PRBYTE
|
>SYSCALL SYS.HexOutA
|
||||||
bcs .9
|
bcs .8
|
||||||
|
|
||||||
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
bcs .8
|
||||||
|
|
||||||
ldy #hBinName
|
ldy #hBinName
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>SYSCALL SYS.ExecProcessNewEnvA
|
ldy #0
|
||||||
|
>SYSCALL SYS.ExecProcessNewEnvYA
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
|
@ -140,53 +130,9 @@ CS.QUIT ldy #hBinName
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRIVATE
|
|
||||||
*--------------------------------------
|
|
||||||
PRINT.MSG >STYA ZPTmp1
|
|
||||||
ldy #0
|
|
||||||
.1 lda (ZPTmp1),y
|
|
||||||
beq .2
|
|
||||||
jsr COUT
|
|
||||||
bcs .9
|
|
||||||
iny
|
|
||||||
bne .1
|
|
||||||
.2 clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
PRBYTE pha
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
ora #$30
|
|
||||||
cmp #$3A
|
|
||||||
bcc .1
|
|
||||||
adc #6
|
|
||||||
.1 jsr COUT
|
|
||||||
pla
|
|
||||||
bcs .9
|
|
||||||
and #$0F
|
|
||||||
ora #$30
|
|
||||||
cmp #$3A
|
|
||||||
bcc .2
|
|
||||||
adc #6
|
|
||||||
.2 jsr COUT
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
CROUT lda #13
|
|
||||||
*--------------------------------------
|
|
||||||
COUT phx
|
|
||||||
phy
|
|
||||||
ldx #DEVMGR.COUT
|
|
||||||
jsr pDevJmp
|
|
||||||
ply
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
*--------------------------------------
|
|
||||||
CS.END
|
CS.END
|
||||||
MSG.USAGE >CSTRING "GETTY <INDEV> <OUTDEV> <PROGRAM>"
|
MSG.USAGE >PSTRING "GETTY <DEV> <PROGRAM>"
|
||||||
MSG.GREETINGS >CSTRING "A2osX-GeTTY on Dev="
|
MSG.GREETINGS >PSTRING "A2osX-GeTTY on Dev="
|
||||||
hDEVNAME .BS 1
|
hDEVNAME .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
|
|
|
@ -10,7 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
0
SBIN/HTTPD.S.txt
Normal file
0
SBIN/HTTPD.S.txt
Normal file
74
SBIN/INSDRV.S.txt
Normal file
74
SBIN/INSDRV.S.txt
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
PR#3
|
||||||
|
PREFIX /A2OSX.SRC
|
||||||
|
NEW
|
||||||
|
INC 1
|
||||||
|
AUTO 6
|
||||||
|
.LIST OFF
|
||||||
|
.OP 65C02
|
||||||
|
.OR $2000
|
||||||
|
.TF /A2OSX.BOOT/SBIN/INSDRV
|
||||||
|
*--------------------------------------
|
||||||
|
.INB INC/MACROS.I
|
||||||
|
.INB INC/A2OSX.I
|
||||||
|
.INB INC/LIBSTR.I
|
||||||
|
*--------------------------------------
|
||||||
|
ZPPTR1 .EQ ZPBIN
|
||||||
|
ZPPTR2 .EQ ZPBIN+2
|
||||||
|
ZPPTR3 .EQ ZPBIN+4
|
||||||
|
*--------------------------------------
|
||||||
|
* File Header (16 Bytes)
|
||||||
|
*--------------------------------------
|
||||||
|
CS.START cld
|
||||||
|
jmp (.1,x)
|
||||||
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
|
.DA #1 BIN Layout Version 1
|
||||||
|
.DA 0
|
||||||
|
.DA CS.END-CS.START Code Length To Relocate
|
||||||
|
.DA 0 Data Segment to Allocate
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
* Relocation Table
|
||||||
|
*--------------------------------------
|
||||||
|
.1 .DA CS.INIT
|
||||||
|
.DA CS.RUN
|
||||||
|
.DA CS.EVENT
|
||||||
|
.DA CS.QUIT
|
||||||
|
L.MSG.HELP .DA MSG.HELP
|
||||||
|
L.MSG.LOADING .DA MSG.LOADING
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
CS.INIT ldy #S.PS.hARGS
|
||||||
|
lda (pPs),y
|
||||||
|
bne .1
|
||||||
|
>LDYA L.MSG.HELP
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.1 sta hArgs
|
||||||
|
>LDYA L.MSG.LOADING
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda hArgs
|
||||||
|
>SYSCALL SYS.LoadDrvA
|
||||||
|
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
|
||||||
|
.8 lda #0 tell TSKMGR that all done ok, but
|
||||||
|
.9 sec we do not want to stay in memory
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN
|
||||||
|
CS.EVENT
|
||||||
|
CS.QUIT clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.END
|
||||||
|
MSG.HELP >PSTRING "Usage: insdrv </path/drv/>file.drv <args>\n"
|
||||||
|
MSG.LOADING >PSTRING "INSDRV:\n"
|
||||||
|
hArgs .BS 1
|
||||||
|
MAN
|
||||||
|
SAVE SBIN/INSDRV.S
|
||||||
|
ASM
|
100
SBIN/LOGIN.S.txt
100
SBIN/LOGIN.S.txt
|
@ -10,7 +10,8 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
*--------------------------------------
|
||||||
|
ZPPTR1 .EQ ZPBIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
INPUT.BUFFER.SIZE .EQ 16
|
INPUT.BUFFER.SIZE .EQ 16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -56,39 +57,49 @@ CS.RUN lda #0
|
||||||
ldy #hPASSWORD
|
ldy #hPASSWORD
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
jsr CROUT
|
lda #13
|
||||||
jsr CROUT
|
>SYSCALL SYS.COutA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.MSG.LOGIN
|
>LDYA L.MSG.LOGIN
|
||||||
jsr PRINT.MSG
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
lda #0 Echo all caracters
|
lda #0 Echo all caracters
|
||||||
jsr INPUT.RESET
|
jsr INPUT.RESET
|
||||||
|
|
||||||
.1 jsr A2osX.Sleep
|
.1 >SYSCALL SYS.Sleep
|
||||||
jsr INPUT.LINEIN
|
jsr INPUT.LINEIN
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
jsr CROUT
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.MSG.PASSWORD
|
>LDYA L.MSG.PASSWORD
|
||||||
jsr PRINT.MSG
|
>SYSCALL SYS.PSTROutYA
|
||||||
lda #'*'
|
lda #'*'
|
||||||
jsr INPUT.RESET
|
jsr INPUT.RESET
|
||||||
|
|
||||||
.2 jsr A2osX.Sleep
|
.2 >SYSCALL SYS.Sleep
|
||||||
jsr INPUT.LINEIN
|
jsr INPUT.LINEIN
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
jsr CROUT
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
ldy #hSHELL
|
ldy #hSHELL
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>SYSCALL SYS.ExecProcessNewEnvA
|
ldy #0
|
||||||
|
>SYSCALL SYS.ExecProcessNewEnvYA
|
||||||
|
|
||||||
bcc .8
|
bcs .9
|
||||||
|
|
||||||
jsr PRBYTE
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT ldy #S.EVT.hDEV
|
CS.DOEVENT ldy #S.EVT.hDEV
|
||||||
lda (pEvent),y
|
lda (pEvent),y
|
||||||
|
@ -113,7 +124,10 @@ CS.DOEVENT ldy #S.EVT.hDEV
|
||||||
.99 sec
|
.99 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT clc
|
CS.QUIT ldy #hSHELL
|
||||||
|
lda (pData),y
|
||||||
|
>SYSCALL SYS.FreeMemA
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRIVATE
|
* PRIVATE
|
||||||
|
@ -133,31 +147,32 @@ INPUT.CHARIN tax saver char...
|
||||||
lda #INPUT.BUFFER
|
lda #INPUT.BUFFER
|
||||||
clc
|
clc
|
||||||
adc pData
|
adc pData
|
||||||
sta ZPQuickPtr1
|
sta ZPPTR1
|
||||||
lda pData+1
|
lda pData+1
|
||||||
adc /INPUT.BUFFER
|
adc /INPUT.BUFFER
|
||||||
sta ZPQuickPtr1+1
|
sta ZPPTR1+1
|
||||||
|
|
||||||
cpx #$20 Control Char?
|
cpx #$20 Control Char?
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
lda (ZPQuickPtr1)
|
lda (ZPPTR1)
|
||||||
|
|
||||||
cmp #INPUT.BUFFER.SIZE Buffer full?
|
cmp #INPUT.BUFFER.SIZE Buffer full?
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
inc
|
inc
|
||||||
sta (ZPQuickPtr1)
|
sta (ZPPTR1)
|
||||||
tay
|
tay
|
||||||
|
|
||||||
txa
|
txa
|
||||||
sta (ZPQuickPtr1),y
|
sta (ZPPTR1),y
|
||||||
|
|
||||||
ldy #INPUT.STATUS
|
ldy #INPUT.STATUS
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .1
|
bne .1
|
||||||
txa
|
txa
|
||||||
.1 jmp COUT
|
.1 >SYSCALL SYS.COutA
|
||||||
|
rts
|
||||||
|
|
||||||
.2 cpx #$0D
|
.2 cpx #$0D
|
||||||
bne .9
|
bne .9
|
||||||
|
@ -177,49 +192,10 @@ INPUT.LINEIN ldy #INPUT.STATUS
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINT.MSG >STYA ZPQuickPtr1
|
|
||||||
ldy #0
|
|
||||||
.1 lda (ZPQuickPtr1),y
|
|
||||||
beq .2
|
|
||||||
jsr COUT
|
|
||||||
iny
|
|
||||||
bne .1
|
|
||||||
.2 rts
|
|
||||||
*--------------------------------------
|
|
||||||
PRBYTE pha
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
ora #$30
|
|
||||||
cmp #$3A
|
|
||||||
bcc .1
|
|
||||||
adc #6
|
|
||||||
.1 jsr COUT
|
|
||||||
pla
|
|
||||||
and #$0F
|
|
||||||
ora #$30
|
|
||||||
cmp #$3A
|
|
||||||
bcc COUT
|
|
||||||
adc #6
|
|
||||||
bra COUT
|
|
||||||
*--------------------------------------
|
|
||||||
CROUT lda #13
|
|
||||||
*--------------------------------------
|
|
||||||
COUT phx
|
|
||||||
phy
|
|
||||||
ldx #DEVMGR.COUT
|
|
||||||
jsr pDevJmp
|
|
||||||
ply
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
MSG.LOGIN >PSTRING "login:"
|
||||||
MSG.LOGIN >CSTRING "login:"
|
MSG.PASSWORD >PSTRING "password:"
|
||||||
MSG.PASSWORD >CSTRING "password:"
|
SHELL >PSTRING "SBIN/SHELL"
|
||||||
SHELL >PSTRING "SHELL"
|
|
||||||
*--------------------------------------
|
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
|
|
|
@ -10,7 +10,8 @@ EXEC.CMD stz hFullCmd
|
||||||
stz hEnvPath
|
stz hEnvPath
|
||||||
|
|
||||||
ldy #hCmdLine
|
ldy #hCmdLine
|
||||||
>PUSHB (pData),y
|
lda (pData),y
|
||||||
|
>PUSHA
|
||||||
>PUSHBI $20 Push SEP=' '
|
>PUSHBI $20 Push SEP=' '
|
||||||
>PUSHBI 0 Push 0 for getting CMD & ARGS
|
>PUSHBI 0 Push 0 for getting CMD & ARGS
|
||||||
>SYSCALL SYS.PStrGetTkn
|
>SYSCALL SYS.PStrGetTkn
|
||||||
|
@ -38,7 +39,7 @@ EXEC.CMD stz hFullCmd
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #'a'
|
cmp #'a'
|
||||||
bcc .3
|
bcc .3
|
||||||
cmp #'{'
|
cmp #'z'+1
|
||||||
bcs .3
|
bcs .3
|
||||||
eor #$20 to Uppercase
|
eor #$20 to Uppercase
|
||||||
.3 cmp CMDS,x
|
.3 cmp CMDS,x
|
||||||
|
@ -60,24 +61,24 @@ EXEC.CMD stz hFullCmd
|
||||||
inc ExecCmdIdx
|
inc ExecCmdIdx
|
||||||
bra .1
|
bra .1
|
||||||
.99 rts
|
.99 rts
|
||||||
|
*--------------------------------------
|
||||||
|
* ZPPtr1 = hExecCmd
|
||||||
|
*--------------------------------------
|
||||||
EXEC.CMD.EXT ldy #1
|
EXEC.CMD.EXT ldy #1
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #'/'
|
cmp #'/'
|
||||||
bne .2
|
bne .1
|
||||||
ldy #hCmdLine
|
>LDYA ZPPtr1
|
||||||
lda (pPs),y
|
>SYSCALL SYS.NewPStrYA
|
||||||
bra .11
|
bra .10
|
||||||
|
|
||||||
.2 >PUSHW L.ENV.PATH push ENVNAME=PATH
|
.1 >LDYA L.ENV.PATH push ENVNAME=PATH
|
||||||
ldy #S.PS.hENV
|
>SYSCALL SYS.GetEnvVarYA get value for ENV=PATH
|
||||||
lda (pPs),y
|
|
||||||
>PUSHA
|
|
||||||
>SYSCALL SYS.GetEnvVarP get value for ENV=PATH
|
|
||||||
|
|
||||||
bcs EXEC.CMD.ClnUp
|
bcc .12
|
||||||
|
jmp EXEC.CMD.ClnUp
|
||||||
|
|
||||||
sta hEnvPath
|
.12 sta hEnvPath
|
||||||
>PUSHB hExecCmd
|
>PUSHB hExecCmd
|
||||||
>PUSHB hEnvPath
|
>PUSHB hEnvPath
|
||||||
>SYSCALL SYS.FileSearch
|
>SYSCALL SYS.FileSearch
|
||||||
|
@ -89,27 +90,55 @@ EXEC.CMD.EXT ldy #1
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>SYSCALL SYS.FileSearch
|
>SYSCALL SYS.FileSearch
|
||||||
|
|
||||||
bcs EXEC.CMD.ClnUp
|
.10 bcs EXEC.CMD.ClnUp
|
||||||
|
|
||||||
.10 sta hFullCmd
|
sta hFullCmd
|
||||||
.11 >SYSCALL SYS.MLIGetFileInfoA
|
>SYSCALL SYS.MLIGetFileInfoA
|
||||||
bcs EXEC.CMD.ClnUp
|
bcs EXEC.CMD.ClnUp
|
||||||
|
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
ldy #1 Get File Type
|
ldy #1 Get File Type
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
cmp #$04 TXT File ?
|
cmp #$04 TXT File ?
|
||||||
bne .1
|
bne .2
|
||||||
|
|
||||||
|
lda hFullCmd
|
||||||
|
jsr OpenTxtFileA
|
||||||
|
bcs EXEC.CMD.ClnUp
|
||||||
|
|
||||||
|
lda hExecArgs
|
||||||
|
beq .11
|
||||||
|
|
||||||
|
>SYSCALL SYS.PStrCpyA
|
||||||
|
bcs EXEC.CMD.ClnUp
|
||||||
|
.11 ldy #hInputArgs
|
||||||
|
sta (pData),y
|
||||||
|
bra EXEC.CMD.ClnUp
|
||||||
|
|
||||||
|
.2 cmp #$06 BIN File ?
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
ldy #S.PS.PID
|
||||||
|
lda (pPs),y
|
||||||
|
beq .3 0, we are in kernel space
|
||||||
|
|
||||||
|
lda hFullCmd
|
||||||
|
ldy hExecArgs
|
||||||
|
>SYSCALL SYS.ExecProcessNewEnvYA
|
||||||
|
bra EXEC.CMD.ClnUp
|
||||||
|
|
||||||
|
.3 lda hFullCmd
|
||||||
|
ldy hExecArgs
|
||||||
|
>SYSCALL SYS.CreateProcessYA
|
||||||
|
bra EXEC.CMD.ClnUp
|
||||||
|
|
||||||
|
.4 cmp #$ff SYS File ?
|
||||||
|
bne .5
|
||||||
|
|
||||||
bra *
|
bra *
|
||||||
|
|
||||||
.1 jsr EXEC.CMD.ClnUp Discard CMD & ARGS
|
.5 lda #SYSMGR.ERRSYN
|
||||||
ldy #hCmdLine
|
sec
|
||||||
lda (pData),y
|
|
||||||
>SYSCALL SYS.ExecProcessNewEnvA
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
EXEC.CMD.ClnUp pha
|
EXEC.CMD.ClnUp pha
|
||||||
php
|
php
|
||||||
lda hFullCmd
|
lda hFullCmd
|
||||||
|
@ -138,10 +167,9 @@ EXEC.CMD.CD lda hExecArgs
|
||||||
bne EXEC.CMD.CD.C
|
bne EXEC.CMD.CD.C
|
||||||
ldy #S.PS.hPREFIX
|
ldy #S.PS.hPREFIX
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.PSTROutA
|
||||||
>PUSHYA
|
lda #13
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTP
|
>SYSCALL SYS.COutA
|
||||||
jsr CROUT
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -224,7 +252,7 @@ EXEC.CMD.CD.C >SYSCALL SYS.GetMemPtrA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXEC.CMD.SET lda hExecArgs
|
EXEC.CMD.SET lda hExecArgs
|
||||||
bne .2
|
bne EXEC.CMD.SETVAR
|
||||||
|
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
|
@ -233,9 +261,10 @@ EXEC.CMD.SET lda hExecArgs
|
||||||
|
|
||||||
.1 lda (ZPPTR1)
|
.1 lda (ZPPTR1)
|
||||||
beq .8 Ending 0 ?
|
beq .8 Ending 0 ?
|
||||||
>PUSHW ZPPTR1
|
>LDYA ZPPTR1
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTP
|
>SYSCALL SYS.PSTROutYA
|
||||||
jsr CROUT
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
|
||||||
lda ZPPTR1
|
lda ZPPTR1
|
||||||
sec
|
sec
|
||||||
|
@ -248,7 +277,7 @@ EXEC.CMD.SET lda hExecArgs
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 >PUSHA Push Cmd Line
|
EXEC.CMD.SETVAR >PUSHA Push Cmd Line
|
||||||
>PUSHBI $3D Push SEP='='
|
>PUSHBI $3D Push SEP='='
|
||||||
>PUSHBI 0 Push Token IDX
|
>PUSHBI 0 Push Token IDX
|
||||||
>SYSCALL SYS.PStrGetTkn
|
>SYSCALL SYS.PStrGetTkn
|
||||||
|
@ -259,46 +288,42 @@ EXEC.CMD.SET lda hExecArgs
|
||||||
.3 sta hVarName
|
.3 sta hVarName
|
||||||
stx hVarValue
|
stx hVarValue
|
||||||
txa
|
txa
|
||||||
bne .7
|
beq .31
|
||||||
|
|
||||||
lda hExecArgs
|
>PUSHB hVarValue
|
||||||
|
>PUSHB hVarName
|
||||||
|
>SYSCALL SYS.SetEnvVarH
|
||||||
|
jmp .97
|
||||||
|
|
||||||
|
.31 lda hExecArgs
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
lda (ZPPTR1)
|
lda (ZPPTR1)
|
||||||
tay
|
tay
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
cmp #'='
|
cmp #'='
|
||||||
beq .7
|
bne .4
|
||||||
|
|
||||||
|
lda hVarName
|
||||||
|
>SYSCALL SYS.DelEnvVarA
|
||||||
|
bra .97
|
||||||
|
|
||||||
>PUSHB hVarName
|
.4 lda hVarName
|
||||||
ldy #S.PS.hENV
|
>SYSCALL SYS.GetEnvVarA
|
||||||
>PUSHB (pPs),y
|
|
||||||
>SYSCALL SYS.GetEnvVarH
|
|
||||||
bcs .97
|
bcs .97
|
||||||
sta hVarValue
|
sta hVarValue
|
||||||
|
|
||||||
lda hVarName
|
lda hVarName
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.PSTROutA
|
||||||
>PUSHYA
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTP
|
|
||||||
|
|
||||||
lda #'='
|
lda #'='
|
||||||
jsr COUT
|
>SYSCALL SYS.COutA
|
||||||
|
|
||||||
lda hVarValue
|
lda hVarValue
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.PSTROutA
|
||||||
>PUSHYA
|
lda #13
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTP
|
>SYSCALL SYS.COutA
|
||||||
jsr CROUT
|
|
||||||
|
clc
|
||||||
bra .97
|
|
||||||
|
|
||||||
.7 >PUSHB hVarValue
|
|
||||||
>PUSHB hVarName
|
|
||||||
ldy #S.PS.hENV
|
|
||||||
>PUSHB (pPs),y
|
|
||||||
>SYSCALL SYS.SetEnvVarH
|
|
||||||
|
|
||||||
.97 php
|
.97 php
|
||||||
pha
|
pha
|
||||||
lda hVarValue
|
lda hVarValue
|
||||||
|
@ -314,7 +339,8 @@ EXEC.CMD.DATE >SYSCALL SYS.MLIGetTime
|
||||||
bcs .9
|
bcs .9
|
||||||
>PUSHW DATELO
|
>PUSHW DATELO
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTDATE
|
>LIBCALL hLIBSTR,LIBSTR.PRINTDATE
|
||||||
jsr CROUT
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -322,7 +348,8 @@ EXEC.CMD.TIME >SYSCALL SYS.MLIGetTime
|
||||||
bcs .9
|
bcs .9
|
||||||
>PUSHW TIMELO
|
>PUSHW TIMELO
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTTIME
|
>LIBCALL hLIBSTR,LIBSTR.PRINTTIME
|
||||||
jsr CROUT
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -332,10 +359,9 @@ EXEC.CMD.ECHO lda hExecArgs
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
pha
|
pha
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.PSTROutA
|
||||||
>PUSHYA
|
lda #13
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTP
|
>SYSCALL SYS.COutA
|
||||||
jsr CROUT
|
|
||||||
pla
|
pla
|
||||||
>SYSCALL SYS.FreeMemA
|
>SYSCALL SYS.FreeMemA
|
||||||
clc
|
clc
|
||||||
|
@ -363,7 +389,7 @@ EXEC.CMD.TYPE lda hExecArgs
|
||||||
.2 dec ZPPTR2
|
.2 dec ZPPTR2
|
||||||
|
|
||||||
lda (ZPPTR1)
|
lda (ZPPTR1)
|
||||||
jsr COUT
|
>SYSCALL SYS.COutA
|
||||||
inc ZPPTR1
|
inc ZPPTR1
|
||||||
bne .1
|
bne .1
|
||||||
inc ZPPTR1+1
|
inc ZPPTR1+1
|
||||||
|
@ -378,6 +404,16 @@ EXEC.CMD.TYPE lda hExecArgs
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
EXEC.CMD.READ
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
EXEC.CMD.PAUSE ldy #bPause
|
||||||
|
lda #$80
|
||||||
|
sta (pData),y
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
EXEC.CMD.EXIT ldy #bEXIT
|
EXEC.CMD.EXIT ldy #bEXIT
|
||||||
lda #$FF
|
lda #$FF
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
300
SBIN/SHELL.S.txt
300
SBIN/SHELL.S.txt
|
@ -11,7 +11,6 @@ AUTO 6
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/PRODOS.I
|
.INB INC/PRODOS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
ZPPTR1 .EQ ZPBIN
|
||||||
|
@ -41,28 +40,35 @@ CS.START cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.LIBSTR .DA LIBSTR
|
L.LIBSTR .DA LIBSTR
|
||||||
L.MSG.GREETINGS .DA MSG.GREETINGS
|
L.MSG.GREETINGS .DA MSG.GREETINGS
|
||||||
L.MSG.UNKNOWN .DA MSG.UNKNOWN
|
L.MSG.ERROR .DA MSG.ERROR
|
||||||
L.MSG.SYNERR .DA MSG.SYNERR
|
|
||||||
L.ENV.PATH .DA ENV.PATH
|
L.ENV.PATH .DA ENV.PATH
|
||||||
J.INTCMDS .DA EXEC.CMD.CD
|
J.INTCMDS .DA EXEC.CMD.CD
|
||||||
.DA EXEC.CMD.SET
|
|
||||||
.DA EXEC.CMD.DATE
|
.DA EXEC.CMD.DATE
|
||||||
.DA EXEC.CMD.TIME
|
|
||||||
.DA EXEC.CMD.ECHO
|
.DA EXEC.CMD.ECHO
|
||||||
.DA EXEC.CMD.TYPE
|
|
||||||
.DA EXEC.CMD.EXIT
|
.DA EXEC.CMD.EXIT
|
||||||
|
.DA EXEC.CMD.PAUSE
|
||||||
|
.DA EXEC.CMD.READ
|
||||||
|
.DA EXEC.CMD.SET
|
||||||
|
.DA EXEC.CMD.TIME
|
||||||
|
.DA EXEC.CMD.TYPE
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >DEBUG
|
||||||
>LOADLIBYA
|
>LDYA L.LIBSTR
|
||||||
|
>SYSCALL SYS.LoadLibYA
|
||||||
bcs .9
|
bcs .9
|
||||||
sta hLIBSTR
|
sta hLIBSTR
|
||||||
|
|
||||||
ldy #S.PS.hARGS Batch mode ?
|
ldy #S.PS.hARGS Batch file ?
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
beq CS.INIT.INTERACTIVE no,continue starting interactive
|
beq CS.INIT.INTERACTIVE no,continue starting interactive
|
||||||
|
|
||||||
|
jsr OpenTxtFileA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
ldy #bExitOnEOF
|
||||||
|
lda #$FF
|
||||||
|
sta (pData),y
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -70,17 +76,11 @@ CS.INIT.INTERACTIVE
|
||||||
jsr History.Init
|
jsr History.Init
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #S.PS.ID
|
|
||||||
lda (pPs),y
|
|
||||||
>PUSHA
|
|
||||||
ldy #S.PS.hOUTDEV
|
|
||||||
lda (pPs),y
|
|
||||||
>PUSHA
|
|
||||||
ldy #S.PS.hINDEV
|
ldy #S.PS.hINDEV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW L.MSG.GREETINGS
|
>LDYA L.MSG.GREETINGS
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
|
||||||
lda (pPs)
|
lda (pPs)
|
||||||
ora #S.PS.F.EVENT Now accept events
|
ora #S.PS.F.EVENT Now accept events
|
||||||
|
@ -92,56 +92,77 @@ CS.INIT.INTERACTIVE
|
||||||
CS.RUN lda #0
|
CS.RUN lda #0
|
||||||
sta (pData)
|
sta (pData)
|
||||||
|
|
||||||
lda #"$"
|
ldy #bPause
|
||||||
jsr COUT
|
lda (pData),y
|
||||||
lda #" "
|
bpl .10
|
||||||
jsr COUT
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
.1 jsr A2osX.SLEEP
|
.10 ldy #hInputFile batch mode ?
|
||||||
|
lda (pData),y
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
jsr PrintPrompt
|
||||||
|
|
||||||
|
.1 >SYSCALL SYS.Sleep
|
||||||
lda (pData)
|
lda (pData)
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
.2 and #$7F
|
and #$7F
|
||||||
sta (pData)
|
sta (pData)
|
||||||
|
bra .3
|
||||||
|
|
||||||
|
.2 jsr ReadTxtFile
|
||||||
|
bcs .81
|
||||||
|
|
||||||
|
.3 lda (pData)
|
||||||
beq CS.RUN Empty line
|
beq CS.RUN Empty line
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
cmp #'#' Comment
|
cmp #'#' Comment
|
||||||
beq CS.RUN
|
beq CS.RUN
|
||||||
|
|
||||||
jsr History.Add
|
ldy #hInputFile
|
||||||
|
lda (pData),y
|
||||||
|
bne .32
|
||||||
|
|
||||||
|
ldy #bEchoOff
|
||||||
|
lda (pData),y
|
||||||
|
beq .31
|
||||||
|
|
||||||
>LDYA pData
|
>LDYA pData
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
|
||||||
|
.31 jsr History.Add
|
||||||
|
|
||||||
|
.32 >LDYA pData
|
||||||
>SYSCALL SYS.NewPStrYA
|
>SYSCALL SYS.NewPStrYA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
ldy #hCmdLine
|
ldy #hCmdLine
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
jsr EXEC.CMD
|
jsr EXEC.CMD
|
||||||
bcc .3
|
bcc .4
|
||||||
|
|
||||||
pha
|
jsr PrintError
|
||||||
lda #"["
|
|
||||||
jsr COUT
|
|
||||||
pla
|
|
||||||
jsr PRBYTE
|
|
||||||
lda #"]"
|
|
||||||
jsr COUT
|
|
||||||
jsr CROUT
|
|
||||||
|
|
||||||
.3 ldy #hCmdLine
|
.4 ldy #hCmdLine
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>SYSCALL SYS.FreeMemA
|
>SYSCALL SYS.FreeMemA
|
||||||
ldy #hCmdLine
|
ldy #hCmdLine
|
||||||
lda #0
|
lda #0
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
ldy #bEXIT
|
.8 ldy #bEXIT
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.81 jsr CloseTxtFile
|
||||||
|
bra .8
|
||||||
|
|
||||||
.99 sec
|
.99 sec
|
||||||
rts
|
rts
|
||||||
|
@ -150,8 +171,8 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
lda (pEvent),y
|
lda (pEvent),y
|
||||||
ldy #S.PS.hINDEV
|
ldy #S.PS.hINDEV
|
||||||
cmp (pPs),y
|
cmp (pPs),y
|
||||||
|
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda (pEvent)
|
lda (pEvent)
|
||||||
and #S.EVT.F.KEY is it a KEY event?
|
and #S.EVT.F.KEY is it a KEY event?
|
||||||
beq .9
|
beq .9
|
||||||
|
@ -164,7 +185,37 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
lda (pEvent),y
|
lda (pEvent),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
cpx #$20
|
ldy #bPause
|
||||||
|
lda (pData),y
|
||||||
|
bpl .11
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (pData),y
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.11 ldy #hInputFile Batch mode ?
|
||||||
|
lda (pData),y
|
||||||
|
beq .10
|
||||||
|
|
||||||
|
cpx #3 test Ctrl-c
|
||||||
|
bne .12
|
||||||
|
|
||||||
|
jsr CloseTxtFile
|
||||||
|
ldy #bExitOnEOF
|
||||||
|
lda (pData),y
|
||||||
|
ldy #bExit
|
||||||
|
sta (pData),y
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.12 cpx #19 test Ctrl-s
|
||||||
|
bne .8
|
||||||
|
ldy #bPause
|
||||||
|
lda #$80
|
||||||
|
sta (pData),y
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.10 cpx #$20
|
||||||
bcs .1
|
bcs .1
|
||||||
jsr CS.EVENT.CTRL.CHAR
|
jsr CS.EVENT.CTRL.CHAR
|
||||||
bra .8
|
bra .8
|
||||||
|
@ -185,8 +236,7 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
txa
|
txa
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
ora #$80
|
>SYSCALL SYS.COutA
|
||||||
jsr COUT
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
@ -195,64 +245,89 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.EVENT.CTRL.CHAR
|
CS.EVENT.CTRL.CHAR
|
||||||
cmp #13 CR
|
cpx #13 CR
|
||||||
bne .10
|
bne .10
|
||||||
jsr CROUT
|
txa
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
lda (pData) CmdBuffer
|
lda (pData) CmdBuffer
|
||||||
ora #$80
|
ora #$80
|
||||||
sta (pData)
|
sta (pData)
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.10 cmp #3
|
.10 cpx #3 Ctrl-C
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr CmdBuffer.CLR
|
jsr CmdBuffer.CLR
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 cmp #8 BS (left arrow)
|
.1 cpx #8 BS (left arrow)
|
||||||
bne .2
|
bne .2
|
||||||
jsr CmdBuffer.DEL
|
jsr CmdBuffer.DEL
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 cmp #10 LF (down arrow)
|
.2 cpx #10 LF (down arrow)
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jsr HISTORY.GETNEXT
|
jsr HISTORY.GETNEXT
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 cmp #11 VT (up arrow)
|
.3 cpx #11 VT (up arrow)
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
jsr HISTORY.GETPREV
|
jsr HISTORY.GETPREV
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.4 cmp #21 NAK (right arrow)
|
.4 cpx #21 NAK (right arrow)
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 jsr PRBYTE
|
.8 clc
|
||||||
clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT jsr History.Quit
|
CS.QUIT jsr History.Quit
|
||||||
lda hLIBSTR
|
|
||||||
|
ldy #hInputFile
|
||||||
|
lda (pData),y
|
||||||
|
beq .1
|
||||||
|
>SYSCALL SYS.MLICloseA
|
||||||
|
|
||||||
|
.1 ldy #hInputBuffer
|
||||||
|
lda (pData),y
|
||||||
|
beq .2
|
||||||
|
>SYSCALL SYS.FreeMemA
|
||||||
|
|
||||||
|
.2 lda hLIBSTR
|
||||||
>SYSCALL SYS.UnloadLibA
|
>SYSCALL SYS.UnloadLibA
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRIVATE
|
* PRIVATE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
PrintPrompt lda #"$"
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
lda #" "
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
PrintError pha
|
||||||
|
>PUSHA
|
||||||
|
>LDYA L.MSG.ERROR
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
pla
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CmdBuffer.PRINT ldy #0
|
CmdBuffer.PRINT ldy #0
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
ora #$80
|
ora #$80
|
||||||
jsr COUT
|
>SYSCALL SYS.COutA
|
||||||
tya
|
tya
|
||||||
cmp (pData)
|
cmp (pData)
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -265,40 +340,92 @@ CmdBuffer.CLR jsr CmdBuffer.DEL
|
||||||
CmdBuffer.DEL lda (pData)
|
CmdBuffer.DEL lda (pData)
|
||||||
beq .9
|
beq .9
|
||||||
lda #8
|
lda #8
|
||||||
jsr COUT
|
>SYSCALL SYS.COutA
|
||||||
lda (pData)
|
lda (pData)
|
||||||
dec
|
dec
|
||||||
sta (pData)
|
sta (pData)
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRBYTE pha
|
OpenTxtFileA >SYSCALL SYS.MLIOpenA
|
||||||
lsr
|
bcs .9
|
||||||
lsr
|
|
||||||
lsr
|
ldy #hInputFile
|
||||||
lsr
|
sta (pData),y
|
||||||
ora #$B0
|
pha
|
||||||
cmp #$BA
|
txa
|
||||||
bcc .1
|
ldy #hInputBuffer
|
||||||
adc #6
|
sta (pData),y
|
||||||
.1 jsr COUT
|
|
||||||
|
>PUSHBI $0D Line separator for TXT file
|
||||||
|
>PUSHBI $FF
|
||||||
pla
|
pla
|
||||||
and #$0F
|
>PUSHA
|
||||||
ora #$B0
|
>SYSCALL SYS.MLINewLine
|
||||||
cmp #$BA
|
bcc .9
|
||||||
bcc COUT
|
pha
|
||||||
adc #6
|
jsr CloseTxtFile
|
||||||
bra COUT
|
pla
|
||||||
|
sec
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CROUT lda #13
|
ReadTxtFile >PUSHWI 127
|
||||||
|
>PUSHWI TmpBuffer256+1
|
||||||
|
ldy #hInputFile
|
||||||
|
lda (pData),y
|
||||||
|
>PUSHA
|
||||||
|
>SYSCALL SYS.MLIRead
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda TmpBuffer256,y Y,A=Bytes read
|
||||||
|
cmp #$0D
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
dey
|
||||||
|
|
||||||
|
.10 tya
|
||||||
|
sta (pData)
|
||||||
|
|
||||||
|
.1 lda TmpBuffer256,y
|
||||||
|
sta (pData),y
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #'>'
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
lda #'"'
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
>LDYA pData
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
lda #'"'
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
lda #13
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT phx
|
CloseTxtFile ldy #hInputArgs
|
||||||
phy
|
lda (pData),y
|
||||||
ldx #DEVMGR.COUT
|
beq .1
|
||||||
jsr pDevJmp
|
>SYSCALL SYS.FreeMemA
|
||||||
ply
|
|
||||||
plx
|
.1 ldy #hInputFile
|
||||||
|
lda (pData),y
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
>SYSCALL SYS.MLICloseA
|
||||||
|
ldy #hInputBuffer
|
||||||
|
lda (pData),y
|
||||||
|
>SYSCALL SYS.FreeMemA
|
||||||
|
|
||||||
|
.9 lda #0
|
||||||
|
ldy #hInputArgs
|
||||||
|
sta (pData),y
|
||||||
|
ldy #hInputFile
|
||||||
|
sta (pData),y
|
||||||
|
ldy #hInputBuffer
|
||||||
|
sta (pData),y
|
||||||
rts
|
rts
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB SBIN/SHELL.S.CMD
|
.INB SBIN/SHELL.S.CMD
|
||||||
.INB SBIN/SHELL.S.HIS
|
.INB SBIN/SHELL.S.HIS
|
||||||
|
@ -307,18 +434,21 @@ CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.PATH >PSTRING "PATH"
|
ENV.PATH >PSTRING "PATH"
|
||||||
CMDS >PSTRING "CD"
|
CMDS >PSTRING "CD"
|
||||||
>PSTRING "SET"
|
|
||||||
>PSTRING "DATE"
|
>PSTRING "DATE"
|
||||||
>PSTRING "TIME"
|
|
||||||
>PSTRING "ECHO"
|
>PSTRING "ECHO"
|
||||||
>PSTRING "TYPE"
|
|
||||||
>PSTRING "EXIT"
|
>PSTRING "EXIT"
|
||||||
|
>PSTRING "PAUSE"
|
||||||
|
>PSTRING "READ"
|
||||||
|
>PSTRING "SET"
|
||||||
|
>PSTRING "TIME"
|
||||||
|
>PSTRING "TYPE"
|
||||||
.HS 00
|
.HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBSTR >PSTRING "libstr.o"
|
LIBSTR >PSTRING "libstr.o"
|
||||||
MSG.GREETINGS >CSTRING "\nA2osX-Shell on Dev=(%h:%h),PS=%h\n\n"
|
MSG.GREETINGS >PSTRING "\nA2osX-Shell on Dev=%h\n\n"
|
||||||
MSG.UNKNOWN >CSTRING "Command Not Found\n"
|
MSG.ERROR >PSTRING "[%h]\n"
|
||||||
MSG.SYNERR >CSTRING "Syntax Error Or Invalid Pathname\n"
|
*MSG.NOTFOUND >CSTRING "Command Not Found\n"
|
||||||
|
*MSG.SYNERR >CSTRING "Syntax Error Or Invalid Pathname\n"
|
||||||
hLIBSTR .BS 1
|
hLIBSTR .BS 1
|
||||||
hNEWPATH .BS 1
|
hNEWPATH .BS 1
|
||||||
hExecCmd .BS 1
|
hExecCmd .BS 1
|
||||||
|
@ -333,10 +463,16 @@ ExecCmdIdx .BS 1
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
CmdBuffer .BS CmdBuffer.MAX+1
|
CmdBuffer .BS CmdBuffer.MAX+1
|
||||||
bEXIT .BS 1
|
bPause .BS 1
|
||||||
|
bExit .BS 1
|
||||||
|
bEchoOff .BS 1
|
||||||
hCmdLine .BS 1
|
hCmdLine .BS 1
|
||||||
hCmdHistory .BS 1
|
hCmdHistory .BS 1
|
||||||
CmdHistory.IDX .BS 1
|
CmdHistory.IDX .BS 1
|
||||||
|
bExitOnEOF .BS 1
|
||||||
|
hInputFile .BS 1
|
||||||
|
hInputArgs .BS 1
|
||||||
|
hInputBuffer .BS 1
|
||||||
CmdHistory.END .BS 1
|
CmdHistory.END .BS 1
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPFrameBase1 .EQ ZPBIN
|
ZPFrameBase1 .EQ ZPBIN
|
||||||
|
@ -20,6 +18,8 @@ ZPFramePtr1 .EQ ZPBIN+4
|
||||||
ZPFrameBase2 .EQ ZPBIN+6
|
ZPFrameBase2 .EQ ZPBIN+6
|
||||||
ZPFrameLen2 .EQ ZPBIN+8
|
ZPFrameLen2 .EQ ZPBIN+8
|
||||||
ZPFramePtr2 .EQ ZPBIN+10
|
ZPFramePtr2 .EQ ZPBIN+10
|
||||||
|
ZPIPCfgPtr .EQ ZPBIN+12
|
||||||
|
ZPIPDevPtr .EQ ZPBIN+14
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -40,16 +40,26 @@ CS.START cld
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
|
L.MSG.HELP .DA MSG.HELP
|
||||||
L.CFGFILENAME .DA CFGFILENAME
|
L.CFGFILENAME .DA CFGFILENAME
|
||||||
L.IPCFG .DA IPCFG
|
L.IPCFG .DA IPCFG
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
ldx #0
|
|
||||||
|
ldy #S.PS.hARGS
|
||||||
|
lda (pPs),y
|
||||||
|
bne .10
|
||||||
|
>LDYA L.MSG.HELP
|
||||||
|
>SYSCALL SYS.PSTROutYA
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.10 ldx #0
|
||||||
.1 stz IPCFG,x
|
.1 stz IPCFG,x
|
||||||
inx
|
inx
|
||||||
cpx #S.IPCFG
|
cpx #S.IPCFG
|
||||||
|
@ -103,14 +113,16 @@ CS.INIT.DEV ldy #S.PS.hARGS
|
||||||
|
|
||||||
ldx #DEVMGR.OPEN
|
ldx #DEVMGR.OPEN
|
||||||
jsr pDevJmp
|
jsr pDevJmp
|
||||||
|
bcs .98
|
||||||
|
|
||||||
ldx #DEVMGR.GETINFO
|
ldx #DEVMGR.GETINFO
|
||||||
jsr pDevJmp
|
jsr pDevJmp
|
||||||
>STYA ZPQuickPtr1
|
bcs .98
|
||||||
|
>STYA ZPIPDevPtr
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
ldx #S.IPCFG.MAC
|
ldx #S.IPCFG.MAC
|
||||||
.1 lda (ZPQuickPtr1),y
|
.1 lda (ZPIPDevPtr),y
|
||||||
sta IPCFG,x
|
sta IPCFG,x
|
||||||
iny
|
iny
|
||||||
inx
|
inx
|
||||||
|
@ -138,7 +150,7 @@ CS.INIT.CFGFILE >LDYA L.CFGFILENAME
|
||||||
>STYA hCfgFileLen
|
>STYA hCfgFileLen
|
||||||
txa
|
txa
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPIPCfgPtr
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -431,11 +443,11 @@ DNSListener ldy #S.DNS.F+1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetIPCFG >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
GetIPCFG >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPIPCfgPtr
|
||||||
|
|
||||||
ldy #S.IPCFG
|
ldy #S.IPCFG
|
||||||
.1 dey
|
.1 dey
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPIPCfgPtr),y
|
||||||
sta IPCFG,y
|
sta IPCFG,y
|
||||||
tya
|
tya
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -492,11 +504,11 @@ CopyFramePtr12 dey
|
||||||
bne CopyFramePtr12
|
bne CopyFramePtr12
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
pDevJmp jmp (pDev)
|
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBTCPIP >PSTRING "libtcpip.o"
|
LIBTCPIP >PSTRING "libtcpip.o"
|
||||||
CFGFILENAME >PSTRING "%ETC%TCPIP.CONF"
|
MSG.HELP >PSTRING "Usage: TCPIP ETHx\n"
|
||||||
|
CFGFILENAME >PSTRING "${A2OSX}ETC/TCPIP.CONF"
|
||||||
DefaultHostName >CSTRING "a2osx-host"
|
DefaultHostName >CSTRING "a2osx-host"
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
hDEVNAME .BS 1
|
hDEVNAME .BS 1
|
||||||
|
|
|
@ -10,8 +10,6 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/A2OSX.API.I
|
|
||||||
.INB INC/KERNEL.I
|
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
|
@ -36,7 +34,7 @@ L.LIBTCPIP .DA LIBTCPIP
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
>LOADLIBYA
|
>SYSCALL SYS.LoadLibYA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
|
@ -14,6 +14,7 @@ AUTO 6
|
||||||
* X = hMem of Code Segment
|
* X = hMem of Code Segment
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.LoadBinA sta S.LoadBinA.hFilename save file path
|
S.LoadBinA sta S.LoadBinA.hFilename save file path
|
||||||
|
|
||||||
jsr S.GetMemPtrA
|
jsr S.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPQuickPtr1
|
||||||
|
|
||||||
|
@ -21,12 +22,11 @@ S.LoadBinA sta S.LoadBinA.hFilename save file path
|
||||||
tay
|
tay
|
||||||
|
|
||||||
.1 lda (ZPQuickPtr1),y convert to UPPERCASE
|
.1 lda (ZPQuickPtr1),y convert to UPPERCASE
|
||||||
cmp #$61 "a"
|
cmp #'a'
|
||||||
bmi .2
|
bmi .2
|
||||||
cmp #$7B "z"+1
|
cmp #'z'+1
|
||||||
bpl .2
|
bpl .2
|
||||||
sec
|
eor #$20
|
||||||
sbc #$20
|
|
||||||
sta (ZPQuickPtr1),y
|
sta (ZPQuickPtr1),y
|
||||||
.2 dey
|
.2 dey
|
||||||
bne .1
|
bne .1
|
||||||
|
|
201
SYS/KERNEL.S.CIO.txt
Normal file
201
SYS/KERNEL.S.CIO.txt
Normal file
|
@ -0,0 +1,201 @@
|
||||||
|
PR#3
|
||||||
|
PREFIX /A2OSX.SRC
|
||||||
|
NEW
|
||||||
|
INC 1
|
||||||
|
AUTO 6
|
||||||
|
.LIST OFF
|
||||||
|
.OP 65C02
|
||||||
|
*--------------------------------------
|
||||||
|
S.DecOutA tay
|
||||||
|
lda #0
|
||||||
|
S.DecOutYA >STYA HEX
|
||||||
|
stz BCD
|
||||||
|
stz BCD+1
|
||||||
|
stz BCD+2
|
||||||
|
|
||||||
|
ldx #16 let's roll 16 bits
|
||||||
|
sed
|
||||||
|
.2 asl HEX
|
||||||
|
rol HEX+1
|
||||||
|
php cpy will disturb carry while BCD adc
|
||||||
|
ldy #0
|
||||||
|
.3 plp
|
||||||
|
lda BCD,y
|
||||||
|
adc BCD,y
|
||||||
|
sta BCD,y
|
||||||
|
php
|
||||||
|
iny
|
||||||
|
cpy #3 Last byte of BCDBUF?
|
||||||
|
bne .3
|
||||||
|
plp
|
||||||
|
dex
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
cld
|
||||||
|
|
||||||
|
stz bL0Flag
|
||||||
|
ldx #2
|
||||||
|
|
||||||
|
.4 lda BCD,x
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
bne .5
|
||||||
|
bit bL0Flag
|
||||||
|
bpl .6
|
||||||
|
.5 sec
|
||||||
|
ror bL0Flag
|
||||||
|
ora #$30
|
||||||
|
jsr S.COutA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.6 lda BCD,x
|
||||||
|
and #$0F
|
||||||
|
bne .7
|
||||||
|
bit bL0Flag
|
||||||
|
bpl .8
|
||||||
|
.7 sec
|
||||||
|
ror bL0Flag
|
||||||
|
ora #$30
|
||||||
|
jsr S.COutA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.8 dex
|
||||||
|
bpl .4
|
||||||
|
|
||||||
|
bit bL0Flag
|
||||||
|
bmi .9
|
||||||
|
lda #$30
|
||||||
|
jsr S.COutA
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
S.HexOutYA phy
|
||||||
|
jsr S.HexOutA
|
||||||
|
bcs S.COutA.RTS
|
||||||
|
pla
|
||||||
|
*--------------------------------------
|
||||||
|
S.HexOutA pha
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
ora #$30
|
||||||
|
cmp #$3A
|
||||||
|
bcc .1
|
||||||
|
adc #6
|
||||||
|
.1 jsr S.COutA
|
||||||
|
bcs S.COutA.RTS
|
||||||
|
pla
|
||||||
|
and #$0F
|
||||||
|
ora #$30
|
||||||
|
cmp #$3A
|
||||||
|
bcc S.COutA
|
||||||
|
adc #6
|
||||||
|
*--------------------------------------
|
||||||
|
S.COutA phx
|
||||||
|
phy
|
||||||
|
ldx #DEVMGR.COUT
|
||||||
|
jsr pDevJmp
|
||||||
|
ply
|
||||||
|
plx
|
||||||
|
S.COutA.RTS rts
|
||||||
|
*--------------------------------------
|
||||||
|
* Mini printf for PSTR
|
||||||
|
* %d : byte
|
||||||
|
* %D : word
|
||||||
|
* %h : hex byte
|
||||||
|
* %H : hex word
|
||||||
|
* \n : CR
|
||||||
|
*--------------------------------------
|
||||||
|
S.PSTROutA jsr S.GetMemPtrA
|
||||||
|
S.PSTROutYA >STYA ZPQuickPtr1
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
lda (ZPQuickPtr1),y
|
||||||
|
cmp #'\'
|
||||||
|
|
||||||
|
bne .2
|
||||||
|
tya
|
||||||
|
cmp (ZPQuickPtr1)
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPQuickPtr1),y
|
||||||
|
cmp #'n'
|
||||||
|
bne .6
|
||||||
|
lda #13
|
||||||
|
bra .6
|
||||||
|
|
||||||
|
.2 cmp #'%'
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
tya
|
||||||
|
cmp (ZPQuickPtr1)
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPQuickPtr1),y
|
||||||
|
cmp #'d'
|
||||||
|
bne .3
|
||||||
|
phy
|
||||||
|
>PULLA
|
||||||
|
jsr S.DecOutA
|
||||||
|
ply
|
||||||
|
bcc .7
|
||||||
|
rts
|
||||||
|
|
||||||
|
.3 cmp #'D'
|
||||||
|
bne .4
|
||||||
|
phy
|
||||||
|
>PULLYA
|
||||||
|
jsr S.DecOutYA
|
||||||
|
ply
|
||||||
|
bcc .7
|
||||||
|
rts
|
||||||
|
|
||||||
|
.4 cmp #'h'
|
||||||
|
bne .5
|
||||||
|
phy
|
||||||
|
>PULLA
|
||||||
|
jsr S.HexOutA
|
||||||
|
ply
|
||||||
|
bcc .7
|
||||||
|
rts
|
||||||
|
|
||||||
|
.5 cmp #'H'
|
||||||
|
bne .51
|
||||||
|
phy
|
||||||
|
>PULLYA
|
||||||
|
jsr S.HexOutYA
|
||||||
|
ply
|
||||||
|
bcc .7
|
||||||
|
rts
|
||||||
|
|
||||||
|
.51 tax
|
||||||
|
lda #'%'
|
||||||
|
jsr S.COutA
|
||||||
|
bcs .9
|
||||||
|
txa
|
||||||
|
|
||||||
|
.6 jsr S.COutA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.7 tya
|
||||||
|
cmp (ZPQuickPtr1)
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
HEX .BS 2
|
||||||
|
BCD .BS 3
|
||||||
|
bL0Flag .BS 1
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE SYS/KERNEL.S.CIO
|
||||||
|
LOAD SYS/KERNEL.S
|
||||||
|
ASM
|
|
@ -179,6 +179,7 @@ DevMgr.DevID .BS 1
|
||||||
DevMgr.LastDevID .BS 1
|
DevMgr.LastDevID .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.Count .EQ 2
|
DevMgr.Count .EQ 2
|
||||||
|
DevMgr.SYS.BASL0 .EQ $800
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.NUL cld
|
DevMgr.NUL cld
|
||||||
jmp (DevMgr.NUL.Code,x)
|
jmp (DevMgr.NUL.Code,x)
|
||||||
|
@ -188,7 +189,7 @@ DevMgr.NUL cld
|
||||||
.HS 00.00
|
.HS 00.00
|
||||||
.HS 00.00.00.00
|
.HS 00.00.00.00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.SYS cld #S.DEV.F.EVENT
|
DevMgr.SYS cld
|
||||||
jmp (DevMgr.SYS.Code,x)
|
jmp (DevMgr.SYS.Code,x)
|
||||||
.DA #S.DEV.F.INUSE+S.DEV.F.EVENT+S.DEV.F.SHARE+S.DEV.F.COUT+S.DEV.F.CHAR
|
.DA #S.DEV.F.INUSE+S.DEV.F.EVENT+S.DEV.F.SHARE+S.DEV.F.COUT+S.DEV.F.CHAR
|
||||||
>PSTRING "SYS" NAME
|
>PSTRING "SYS" NAME
|
||||||
|
@ -205,21 +206,59 @@ DevMgr.NUL.Code .DA .8 OPEN
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.SYS.Code .DA .8 OPEN
|
DevMgr.SYS.Code .DA DevMgr.SYS.Open
|
||||||
.DA DevMgr.SYS.GetEvent
|
.DA DevMgr.SYS.GetEvent
|
||||||
.DA .8 COUT
|
.DA DevMgr.SYS.COut
|
||||||
.DA .8 CLOSE
|
.DA .8 CLOSE
|
||||||
.DA .8 GETINFO
|
.DA .8 GETINFO
|
||||||
.DA .8 IRQ
|
.DA .8 IRQ
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.Open stz DevMgr.SYS.CPULOADI
|
||||||
|
stz DevMgr.SYS.CH
|
||||||
|
stz DevMgr.SYS.CV
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
.1 lda DevMgr.SYS.TITLE,y
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
jsr DevMgr.SYS.SetCharAtYX
|
||||||
|
iny
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.2 lda #$20
|
||||||
|
jsr DevMgr.SYS.SetCharAtYX
|
||||||
|
iny
|
||||||
|
cpy #80
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
jsr DevMgr.SYS.Home
|
||||||
|
|
||||||
|
lda A2osX.SCREENS
|
||||||
|
ora #A2osX.SCREENS.S
|
||||||
|
sta A2osX.SCREENS
|
||||||
|
lda #A2osX.SCREENS.S
|
||||||
|
jsr S.ScreenSelectA
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
DevMgr.SYS.GetEvent
|
DevMgr.SYS.GetEvent
|
||||||
lda A2osX.ASCREEN
|
lda A2osX.ASCREEN
|
||||||
and #A2osX.SCREENS.S is screen active?
|
and #A2osX.SCREENS.S is screen active?
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
jsr S.GetKeyboardEvent
|
ldx DevMgr.SYS.CPULOADI
|
||||||
|
lda DevMgr.SYS.CPULOADC,x
|
||||||
|
sta DevMgr.SYS.BASL0+38
|
||||||
|
dec DevMgr.SYS.CPULOADI
|
||||||
|
bpl .1
|
||||||
|
lda #3
|
||||||
|
sta DevMgr.SYS.CPULOADI
|
||||||
|
|
||||||
|
.1 jsr S.GetKeyboardEvent
|
||||||
bcs .9
|
bcs .9
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -227,6 +266,163 @@ DevMgr.SYS.GetEvent
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.COut phx
|
||||||
|
phy
|
||||||
|
cmp #13
|
||||||
|
bne .1
|
||||||
|
jsr DevMgr.SYS.CROut
|
||||||
|
ply
|
||||||
|
plx
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 ldy DevMgr.SYS.CH
|
||||||
|
ldx DevMgr.SYS.CV
|
||||||
|
ora #$80
|
||||||
|
jsr DevMgr.SYS.SetCharAtYX
|
||||||
|
jsr DevMgr.SYS.FSOut
|
||||||
|
ply
|
||||||
|
plx
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.FSOut
|
||||||
|
lda DevMgr.SYS.CH
|
||||||
|
cmp #79
|
||||||
|
beq DevMgr.SYS.CROut1
|
||||||
|
inc DevMgr.SYS.CH
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.CROut
|
||||||
|
jsr DevMgr.SYS.ClrEOL
|
||||||
|
DevMgr.SYS.CROut1
|
||||||
|
stz DevMgr.SYS.CH
|
||||||
|
ldx DevMgr.SYS.CV
|
||||||
|
cpx #23
|
||||||
|
beq DevMgr.SYS.Scroll
|
||||||
|
inc DevMgr.SYS.CV
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.ClrEOL
|
||||||
|
ldx DevMgr.SYS.CV
|
||||||
|
lda #$A0
|
||||||
|
ldy DevMgr.SYS.CH
|
||||||
|
.1 cpy #79
|
||||||
|
beq .2
|
||||||
|
jsr DevMgr.SYS.SetCharAtYX
|
||||||
|
iny
|
||||||
|
bne .1
|
||||||
|
.2 rts
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.Scroll
|
||||||
|
ldx #1
|
||||||
|
.1 lda DevMgr.SYS.BASEL,x
|
||||||
|
sta ZPDRV
|
||||||
|
lda DevMgr.SYS.BASEH,x
|
||||||
|
sta ZPDRV+1
|
||||||
|
inx
|
||||||
|
lda DevMgr.SYS.BASEL,x
|
||||||
|
sta ZPDRV+2
|
||||||
|
lda DevMgr.SYS.BASEH,x
|
||||||
|
sta ZPDRV+3
|
||||||
|
|
||||||
|
ldy #39
|
||||||
|
sta SETWRITEAUX
|
||||||
|
sta SETREADAUX
|
||||||
|
.2 lda (ZPDRV+2),y
|
||||||
|
sta (ZPDRV),y
|
||||||
|
dey
|
||||||
|
bpl .2
|
||||||
|
|
||||||
|
ldy #39
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
sta CLRREADAUX
|
||||||
|
.3 lda (ZPDRV+2),y
|
||||||
|
sta (ZPDRV),y
|
||||||
|
dey
|
||||||
|
bpl .3
|
||||||
|
|
||||||
|
cpx #23
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldy #39
|
||||||
|
lda #$A0
|
||||||
|
.4 sta SETWRITEAUX
|
||||||
|
sta (ZPDRV+2),y
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
sta (ZPDRV+2),y
|
||||||
|
dey
|
||||||
|
bpl .4
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.ClrLineAtX
|
||||||
|
lda DevMgr.SYS.BASEL,x
|
||||||
|
sta ZPDRV
|
||||||
|
lda DevMgr.SYS.BASEH,x
|
||||||
|
sta ZPDRV+1
|
||||||
|
|
||||||
|
lda #$A0
|
||||||
|
|
||||||
|
ldy #39
|
||||||
|
sta SETWRITEAUX
|
||||||
|
.1 sta (ZPDRV),y
|
||||||
|
dey
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
ldy #39
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
.2 sta (ZPDRV),y
|
||||||
|
dey
|
||||||
|
bpl .2
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.Home ldx #23
|
||||||
|
|
||||||
|
.1 jsr DevMgr.SYS.ClrLineAtX
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
stz DevMgr.SYS.CH
|
||||||
|
lda #1
|
||||||
|
sta DevMgr.SYS.CV
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.SetCharAtYX
|
||||||
|
cmp #$40
|
||||||
|
bcc .1
|
||||||
|
cmp #$5F
|
||||||
|
bcs .1
|
||||||
|
and #$3F
|
||||||
|
|
||||||
|
.1 phy
|
||||||
|
pha
|
||||||
|
lda DevMgr.SYS.BASEL,x
|
||||||
|
sta ZPDRV
|
||||||
|
lda DevMgr.SYS.BASEH,x
|
||||||
|
sta ZPDRV+1
|
||||||
|
tya
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
bcs .2
|
||||||
|
sta SETWRITEAUX
|
||||||
|
|
||||||
|
.2 pla
|
||||||
|
sta (ZPDRV),y
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
ply
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.CH .BS 1
|
||||||
|
DevMgr.SYS.CV .BS 1
|
||||||
|
DevMgr.SYS.CPULOADI .BS 1
|
||||||
|
DevMgr.SYS.CPULOADC .AS -"|/-\"
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.SYS.TITLE >CSTRING "A2osX System Screen"
|
||||||
|
DevMgr.SYS.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
|
||||||
|
DevMgr.SYS.BASEH .HS 08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B
|
||||||
|
*--------------------------------------*--------------------------------------
|
||||||
DevMgr.End .EQ *
|
DevMgr.End .EQ *
|
||||||
MAN
|
MAN
|
||||||
SAVE SYS/KERNEL.S.DEV
|
SAVE SYS/KERNEL.S.DEV
|
||||||
|
|
|
@ -13,9 +13,6 @@ AUTO 6
|
||||||
* none
|
* none
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.LoadDrvA >PUSHA push Cmd Line for S.PStrGetTkn
|
S.LoadDrvA >PUSHA push Cmd Line for S.PStrGetTkn
|
||||||
>LDYAI MSG.DRVLOAD
|
|
||||||
jsr S.SysScrPPSTRYA
|
|
||||||
|
|
||||||
>PUSHBI $20 Push SEP=' '
|
>PUSHBI $20 Push SEP=' '
|
||||||
>PUSHBI 0 Push 0 for getting CMD And ARGS
|
>PUSHBI 0 Push 0 for getting CMD And ARGS
|
||||||
jsr S.PStrGetTkn
|
jsr S.PStrGetTkn
|
||||||
|
@ -24,17 +21,24 @@ S.LoadDrvA >PUSHA push Cmd Line for S.PStrGetTkn
|
||||||
|
|
||||||
.1 sta LoadDrv.Cmd
|
.1 sta LoadDrv.Cmd
|
||||||
stx LoadDrv.Args
|
stx LoadDrv.Args
|
||||||
pha
|
|
||||||
jsr S.SysScrPPSTRA
|
>LDYAI ENV.DRV push ENVNAME=DRV
|
||||||
pla
|
jsr S.GetEnvVarYA get value for ENV=$DRV
|
||||||
jsr S.ExpandPStrA
|
bcs .98
|
||||||
sta LoadDrv.ExpCmd
|
sta LoadDrv.Path
|
||||||
|
|
||||||
|
>PUSHB LoadDrv.Cmd push CMD for S.FileSearch
|
||||||
|
>PUSHB LoadDrv.Path
|
||||||
|
jsr S.FileSearch find File in $DRV
|
||||||
|
bcs .97 not Found
|
||||||
|
|
||||||
|
sta LoadDrv.FullName
|
||||||
jsr S.LoadBinA
|
jsr S.LoadBinA
|
||||||
bcs .96
|
bcs .96
|
||||||
|
|
||||||
>STYA pCode
|
>STYA pCode
|
||||||
stx LoadDrv.hMem
|
stx LoadDrv.hMem
|
||||||
|
|
||||||
lda LoadDrv.Args
|
lda LoadDrv.Args
|
||||||
jsr pCodeJmp call Dev.Detect
|
jsr pCodeJmp call Dev.Detect
|
||||||
|
|
||||||
|
@ -58,7 +62,12 @@ S.LoadDrvA >PUSHA push Cmd Line for S.PStrGetTkn
|
||||||
pla
|
pla
|
||||||
|
|
||||||
.96 pha
|
.96 pha
|
||||||
lda LoadDrv.ExpCmd
|
lda LoadDrv.FullName
|
||||||
|
jsr S.FreeMemA
|
||||||
|
pla
|
||||||
|
|
||||||
|
.97 pha
|
||||||
|
lda LoadDrv.Path
|
||||||
jsr S.FreeMemA
|
jsr S.FreeMemA
|
||||||
pla
|
pla
|
||||||
|
|
||||||
|
@ -72,10 +81,10 @@ S.LoadDrvA >PUSHA push Cmd Line for S.PStrGetTkn
|
||||||
.99 sec
|
.99 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.DRVLOAD >PSTRING "\nLoadDrv:"
|
|
||||||
LoadDrv.Cmd .BS 1
|
LoadDrv.Cmd .BS 1
|
||||||
LoadDrv.Args .BS 1
|
LoadDrv.Args .BS 1
|
||||||
LoadDrv.ExpCmd .BS 1
|
LoadDrv.Path .BS 1
|
||||||
|
LoadDrv.FullName .BS 1
|
||||||
LoadDrv.hMem .BS 1
|
LoadDrv.hMem .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* pCode = .DRV File Loaded Address
|
* pCode = .DRV File Loaded Address
|
||||||
|
|
|
@ -13,86 +13,133 @@ AUTO 6
|
||||||
* A = hMem to Expanded String (PSTRING)
|
* A = hMem to Expanded String (PSTRING)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.ExpandPStrA jsr S.GetMemPtrA
|
S.ExpandPStrA jsr S.GetMemPtrA
|
||||||
S.ExpandPStrYA >STYA R.AX
|
S.ExpandPStrYA >STYA ZPQuickPtr3
|
||||||
|
|
||||||
stz TmpBuffer256 init Expanded String len=0
|
stz TmpBuffer256 init Expanded String len=0
|
||||||
stz R.BL reset "in var"
|
|
||||||
ldy #0
|
ldy #0
|
||||||
.1 iny
|
|
||||||
lda (R.AX),y
|
.10 stz S.ExpandPStrA.Start
|
||||||
cmp #'%'
|
|
||||||
beq .10
|
.1 tya
|
||||||
jmp .7
|
cmp (ZPQuickPtr3) End of PSTR?
|
||||||
.10 ldx R.BL in var?
|
beq .6
|
||||||
bne .2
|
|
||||||
sty R.BL no, save start
|
|
||||||
jmp .8 skip this char
|
|
||||||
.2 sty R.BH yes, save end
|
|
||||||
phy save Actual char position
|
|
||||||
tya
|
|
||||||
sec
|
|
||||||
sbc R.BL compute len of %VAR% -1
|
|
||||||
tay
|
|
||||||
lda #0
|
|
||||||
>PUSHYA
|
|
||||||
>PUSHBI 0
|
|
||||||
jsr S.GetMem create VARNAME
|
|
||||||
phx save hMem for discard
|
|
||||||
>STYA R.CX
|
|
||||||
lda R.BH
|
|
||||||
sec
|
|
||||||
sbc R.BL
|
|
||||||
dec skip %
|
|
||||||
sta (R.CX)
|
|
||||||
ldy R.BL
|
|
||||||
iny
|
iny
|
||||||
.3 inc R.CL
|
lda (ZPQuickPtr3),y
|
||||||
bne .4
|
|
||||||
inc R.CH
|
ldx S.ExpandPStrA.Start
|
||||||
.4 lda (R.AX),y Copy string between % to ENVNAME
|
bne .3 already in a var?
|
||||||
sta (R.CX)
|
|
||||||
iny
|
cmp #'$' no, found one ?
|
||||||
cpy R.BH
|
beq .2
|
||||||
bne .3
|
|
||||||
pla
|
inc TmpBuffer256 no, copy char
|
||||||
pha Get back ENVNAME hMem
|
ldx TmpBuffer256
|
||||||
>PUSHA
|
sta TmpBuffer256,x
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.2 sty S.ExpandPStrA.Start save var start
|
||||||
|
stz S.ExpandPStrA.End
|
||||||
|
bra .1 skip this char
|
||||||
|
|
||||||
|
.3 cmp #'{' in var, "{" after "$"?
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
cmp #'}' end of var?
|
||||||
|
beq .5
|
||||||
|
|
||||||
|
.4 jsr S.ExpandPStrA.VC valid char ?
|
||||||
|
bcs .5 no, end here
|
||||||
|
sty S.ExpandPStrA.End yes, save end
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.5 lda S.ExpandPStrA.End get end
|
||||||
|
beq .1 empty {} or $/
|
||||||
|
|
||||||
|
phy save current index
|
||||||
|
jsr S.ExpandPStrA.AV
|
||||||
|
ply restore index in string...
|
||||||
|
bra .10 reset start flag and continue
|
||||||
|
|
||||||
|
.6 sty S.ExpandPStrA.End end of PSTR
|
||||||
|
lda S.ExpandPStrA.Start are we in a var?
|
||||||
|
beq .7 no...exit...
|
||||||
|
|
||||||
|
jsr S.ExpandPStrA.AV yes, expand and add to STR
|
||||||
|
|
||||||
|
.7 >LDYAI TmpBuffer256
|
||||||
|
jsr S.NewPStrYA
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
S.ExpandPStrA.AV
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>PUSHA
|
|
||||||
jsr S.GetEnvVarH
|
|
||||||
bcs .5
|
|
||||||
pha save hMem of VALUE
|
|
||||||
jsr S.GetMemPtrA
|
jsr S.GetMemPtrA
|
||||||
>STYA R.DX
|
>STYA ZPQuickPtr1 Store ENV for FindVar
|
||||||
|
|
||||||
|
lda S.ExpandPStrA.End
|
||||||
|
sec
|
||||||
|
sbc S.ExpandPStrA.Start compute len of VAR End-Start+1
|
||||||
|
|
||||||
|
ldx TmpBuffer256
|
||||||
|
inx
|
||||||
|
sta TmpBuffer256,x
|
||||||
|
|
||||||
|
stx ZPQuickPtr2
|
||||||
|
lda /TmpBuffer256
|
||||||
|
sta ZPQuickPtr2+1
|
||||||
|
|
||||||
|
ldy S.ExpandPStrA.Start
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
inx
|
||||||
|
lda (ZPQuickPtr3),y
|
||||||
|
sta TmpBuffer256,x
|
||||||
|
cpy S.ExpandPStrA.End
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
jsr S.FindVar
|
||||||
|
bcs .9
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
.41 iny
|
.2 iny
|
||||||
lda (R.DX),y
|
lda (ZPQuickPtr1),y
|
||||||
|
cmp #'='
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
.3 iny
|
||||||
|
lda (ZPQuickPtr1),y
|
||||||
inc TmpBuffer256
|
inc TmpBuffer256
|
||||||
ldx TmpBuffer256
|
ldx TmpBuffer256
|
||||||
sta TmpBuffer256,x
|
sta TmpBuffer256,x
|
||||||
|
|
||||||
tya
|
tya
|
||||||
cmp (R.DX)
|
cmp (ZPQuickPtr1) last char?
|
||||||
bne .41
|
bne .3
|
||||||
pla
|
.9 rts
|
||||||
jsr S.FreeMemA discard VALUE hMem
|
*--------------------------------------
|
||||||
.5 pla
|
S.ExpandPStrA.VC
|
||||||
jsr S.FreeMemA discard VARNAME hMem
|
cmp #'0'
|
||||||
* ldy R.BL TODO:continue scanning from first % found
|
bcc .9
|
||||||
stz R.BL reset "in var"
|
cmp #'9'+1
|
||||||
ply
|
bcc .8
|
||||||
bra .8
|
|
||||||
.7 ldx R.BL in var?
|
cmp #'A'
|
||||||
bne .8 yes, skip this char
|
bcc .9
|
||||||
inc TmpBuffer256
|
cmp #'Z'+1
|
||||||
ldx TmpBuffer256
|
bcc .8
|
||||||
sta TmpBuffer256,x
|
|
||||||
.8 tya
|
cmp #'_'
|
||||||
cmp (R.AX) last char?
|
bne .9
|
||||||
beq .81
|
|
||||||
jmp .1
|
.8 clc
|
||||||
.81 >LDYAI TmpBuffer256
|
|
||||||
jsr S.NewPStrYA
|
|
||||||
rts
|
rts
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
S.ExpandPStrA.Start .BS 1
|
||||||
|
S.ExpandPStrA.End .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.CreateEnv
|
* S.CreateEnv
|
||||||
* in :
|
* in :
|
||||||
|
@ -140,22 +187,21 @@ S.DupEnvA pha
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.GetEnvVarH
|
* S.GetEnvVarA
|
||||||
* In:
|
* In:
|
||||||
* PULLB = hENV
|
* A = hMem to NAME (PSTRING)
|
||||||
* PULLB = hMem to NAME (PSTRING)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.GetEnvVarP
|
* S.GetEnvVarYA
|
||||||
* In:
|
* In:
|
||||||
* PULLB = hENV
|
* Y,A = PTR to NAME (PSTRING)
|
||||||
* PULLW = PTR to NAME (PSTRING)
|
|
||||||
* Out:
|
* Out:
|
||||||
* A = hMem to VALUE (PSTRING) 0,"" if not exist
|
* A = hMem to VALUE (PSTRING) 0,"" if not exist
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.GetEnvVarH jsr S.FindVarH
|
S.GetEnvVarA >PULLA
|
||||||
bra S.GetEnvVar
|
jsr S.GetMemPtrA
|
||||||
S.GetEnvVarP jsr S.FindVarP
|
S.GetEnvVarYA >STYA ZPQuickPtr2
|
||||||
S.GetEnvVar bcc .1
|
jsr S.FindVar
|
||||||
|
bcc .1
|
||||||
>LDYAI 1 not found
|
>LDYAI 1 not found
|
||||||
>PUSHYA create "" PSTR
|
>PUSHYA create "" PSTR
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
|
@ -200,29 +246,25 @@ S.GetEnvVar bcc .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.SetEnvVarH
|
* S.SetEnvVarH
|
||||||
* In:
|
* In:
|
||||||
* PULLB = hENV
|
|
||||||
* PULLB = hMem To Name (PSTRING)
|
* PULLB = hMem To Name (PSTRING)
|
||||||
* PULLB = hMem To Value (PSTRING)
|
* PULLB = hMem To Value (PSTRING)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.SetEnvVarP
|
* S.SetEnvVarP
|
||||||
* In:
|
* In:
|
||||||
* PULLB = hENV
|
|
||||||
* PULLW = PTR To Name (PSTRING)
|
* PULLW = PTR To Name (PSTRING)
|
||||||
* PULLW = PTR To Value (PSTRING)
|
* PULLW = PTR To Value (PSTRING)
|
||||||
* Out:
|
* Out:
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.SetEnvVarH jsr S.FindVarH
|
S.SetEnvVarH >PULLA
|
||||||
php
|
jsr S.GetMemPtrA
|
||||||
|
>STYA ZPQuickPtr2
|
||||||
>PULLA
|
>PULLA
|
||||||
jsr S.GetMemPtrA
|
jsr S.GetMemPtrA
|
||||||
>STYA ZPQuickPtr3 ZPQuickPtr3 = VALUE
|
|
||||||
bra S.SetEnvVar
|
bra S.SetEnvVar
|
||||||
|
S.SetEnvVarP >PULLW ZPQuickPtr2
|
||||||
S.SetEnvVarP jsr S.FindVarP
|
>PULLYA
|
||||||
php
|
S.SetEnvVar >STYA ZPQuickPtr3 ZPQuickPtr3 = VALUE
|
||||||
>PULLW ZPQuickPtr3 ZPQuickPtr3 = VALUE
|
jsr S.FindVar
|
||||||
|
|
||||||
S.SetEnvVar plp
|
|
||||||
bcs .3 Not Found,ZPQuickPtr1 -> End Of Env
|
bcs .3 Not Found,ZPQuickPtr1 -> End Of Env
|
||||||
lda (ZPQuickPtr1) Found, Discard current NAME definition
|
lda (ZPQuickPtr1) Found, Discard current NAME definition
|
||||||
sec
|
sec
|
||||||
|
@ -304,22 +346,20 @@ S.SetEnvVar plp
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.DelEnvVarH
|
* S.DelEnvVarA
|
||||||
* In:
|
* In:
|
||||||
* PULLB = hENV
|
|
||||||
* PULLB = hMem To Name (PSTRING)
|
* PULLB = hMem To Name (PSTRING)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.DelEnvVarP
|
* S.DelEnvVarYA
|
||||||
* In:
|
* In:
|
||||||
* PULLB = hENV
|
|
||||||
* PULLW = PTR To Name (PSTRING)
|
* PULLW = PTR To Name (PSTRING)
|
||||||
* Out:
|
* Out:
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.DelEnvVarH jsr S.FindVarH
|
S.DelEnvVarA >PULLA get NAME
|
||||||
bra S.DelEnvVar
|
jsr S.GetMemPtrA
|
||||||
S.DelEnvVarP jsr S.FindVarP
|
S.DelEnvVarYA >STYA ZPQuickPtr2 Store VAR Name
|
||||||
|
S.DelEnvVar jsr S.FindVar
|
||||||
S.DelEnvVar bcs .8 not found, quit
|
bcs .8 not found, quit
|
||||||
|
|
||||||
lda (ZPQuickPtr1) Found, Discard current NAME definition
|
lda (ZPQuickPtr1) Found, Discard current NAME definition
|
||||||
sec
|
sec
|
||||||
|
@ -346,15 +386,9 @@ S.DelEnvVar bcs .8 not found, quit
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRIVATE
|
* PRIVATE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.FindVarH
|
* S.FindVar
|
||||||
* In:
|
* In:
|
||||||
* PULLB = hENV
|
* ZPQuickPtr2 -> NAME
|
||||||
* PULLB = hMem to NAME (PSTRING)
|
|
||||||
*--------------------------------------
|
|
||||||
* S.FindVarP
|
|
||||||
* In:
|
|
||||||
* PULLB = hENV
|
|
||||||
* PULLW = PTR to NAME (PSTRING)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Out:
|
* Out:
|
||||||
* CC: Found
|
* CC: Found
|
||||||
|
@ -364,20 +398,11 @@ S.DelEnvVar bcs .8 not found, quit
|
||||||
* ZPQuickPtr1 -> PTR to Ending 0
|
* ZPQuickPtr1 -> PTR to Ending 0
|
||||||
* ZPQuickPtr2 -> NAME
|
* ZPQuickPtr2 -> NAME
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.FindVarH >PULLA get ENV
|
S.FindVar ldy #S.PS.hENV
|
||||||
|
lda (pPs),y
|
||||||
jsr S.GetMemPtrA
|
jsr S.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1 Store ENV
|
>STYA ZPQuickPtr1 Store ENV
|
||||||
>PULLA get NAME
|
|
||||||
jsr S.GetMemPtrA
|
|
||||||
>STYA ZPQuickPtr2 Store VAR Name
|
|
||||||
bra S.FindVar
|
|
||||||
|
|
||||||
S.FindVarP >PULLA get ENV
|
|
||||||
jsr S.GetMemPtrA
|
|
||||||
>STYA ZPQuickPtr1 Store ENV
|
|
||||||
>PULLW ZPQuickPtr2 get NAME
|
|
||||||
|
|
||||||
S.FindVar
|
|
||||||
.1 lda (ZPQuickPtr1)
|
.1 lda (ZPQuickPtr1)
|
||||||
beq .9
|
beq .9
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
|
@ -1,199 +0,0 @@
|
||||||
PR#3
|
|
||||||
PREFIX /A2OSX.SRC
|
|
||||||
NEW
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
.LIST OFF
|
|
||||||
.OP 65C02
|
|
||||||
*--------------------------------------
|
|
||||||
* S.ExecFileA (R)
|
|
||||||
* in :
|
|
||||||
* A = hMem of FilePath (PSTRING)
|
|
||||||
* out :
|
|
||||||
*
|
|
||||||
*--------------------------------------
|
|
||||||
S.ExecFileA jsr S.LoadFileA
|
|
||||||
bcc S.ExecFileAOK
|
|
||||||
rts
|
|
||||||
|
|
||||||
S.ExecFileAOK >STYA S.ExecFileA.DataLen
|
|
||||||
stx S.ExecFileA.hData
|
|
||||||
txa
|
|
||||||
jsr S.GetMemPtrA
|
|
||||||
>STYA S.ExecFileA.DataPtr
|
|
||||||
|
|
||||||
.1 stz TmpBuffer256
|
|
||||||
|
|
||||||
.2 >LDYA S.ExecFileA.DataPtr
|
|
||||||
>STYA ZPQuickPtr1
|
|
||||||
|
|
||||||
inc S.ExecFileA.DataPtr
|
|
||||||
bne .21
|
|
||||||
inc S.ExecFileA.DataPtr+1
|
|
||||||
|
|
||||||
.21 lda S.ExecFileA.DataLen
|
|
||||||
bne .22
|
|
||||||
dec S.ExecFileA.DataLen+1
|
|
||||||
.22 dec S.ExecFileA.DataLen
|
|
||||||
|
|
||||||
lda (ZPQuickPtr1)
|
|
||||||
cmp #$0D
|
|
||||||
beq .3
|
|
||||||
inc TmpBuffer256
|
|
||||||
ldx TmpBuffer256
|
|
||||||
sta TmpBuffer256,x
|
|
||||||
|
|
||||||
lda S.ExecFileA.DataLen
|
|
||||||
bne .2
|
|
||||||
lda S.ExecFileA.DataLen+1
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
.3 lda TmpBuffer256
|
|
||||||
beq .4
|
|
||||||
lda TmpBuffer256+1
|
|
||||||
cmp #'*'
|
|
||||||
beq .4
|
|
||||||
lda #'-'
|
|
||||||
jsr S.SysScrCOUTA
|
|
||||||
lda #'>'
|
|
||||||
jsr S.SysScrCOUTA
|
|
||||||
>LDYAI TmpBuffer256
|
|
||||||
jsr S.SysScrPPSTRYA
|
|
||||||
>LDYAI TmpBuffer256
|
|
||||||
jsr S.NewPStrYA
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
pha
|
|
||||||
jsr S.ExecCmdLineA
|
|
||||||
jsr S.SysScrPRCode
|
|
||||||
pla
|
|
||||||
jsr S.FreeMemA
|
|
||||||
|
|
||||||
.4 lda S.ExecFileA.DataLen
|
|
||||||
bne .1
|
|
||||||
lda S.ExecFileA.DataLen+1
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
jsr .99
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.99 lda S.ExecFileA.hData
|
|
||||||
jsr S.FreeMemA
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.ExecCmdLineA >PUSHA Push Cmd Line
|
|
||||||
>PUSHBI $20 Push SEP=' '
|
|
||||||
>PUSHBI 0 Push Token IDX
|
|
||||||
jsr S.PStrGetTkn
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
sta S.ExecFileA.hCMD
|
|
||||||
stx S.ExecFileA.hARGS
|
|
||||||
jsr S.GetMemPtrA
|
|
||||||
>PUSHYA
|
|
||||||
>PUSHWI EXECCMDS
|
|
||||||
jsr S.GetPStrIndex
|
|
||||||
bcs .98
|
|
||||||
|
|
||||||
asl
|
|
||||||
tax
|
|
||||||
lda S.ExecFileA.hARGS
|
|
||||||
jsr S.ExecCmdLine
|
|
||||||
bcs .98
|
|
||||||
|
|
||||||
jsr .98
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.98 pha
|
|
||||||
lda S.ExecFileA.hARGS
|
|
||||||
jsr S.FreeMemA
|
|
||||||
lda S.ExecFileA.hCMD
|
|
||||||
jsr S.FreeMemA
|
|
||||||
pla
|
|
||||||
.99 sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.ExecFileA.hData .BS 1
|
|
||||||
S.ExecFileA.DataLen .BS 2
|
|
||||||
S.ExecFileA.DataPtr .BS 2
|
|
||||||
S.ExecFileA.hCMD .BS 1
|
|
||||||
S.ExecFileA.hARGS .BS 1
|
|
||||||
*--------------------------------------
|
|
||||||
EXECCMDS .HS .03
|
|
||||||
.AS "SET"
|
|
||||||
.HS 04
|
|
||||||
.AS "LOAD"
|
|
||||||
.HS 04
|
|
||||||
.AS "EXEC"
|
|
||||||
.DA #0
|
|
||||||
*--------------------------------------
|
|
||||||
S.ExecCmdLine jmp (.1,x)
|
|
||||||
.1 .DA S.SetSysEnvA
|
|
||||||
.DA S.LoadDrvA VCPU!!!!
|
|
||||||
.DA S.CreateProcessA VCPU!!!!
|
|
||||||
*--------------------------------------
|
|
||||||
* S.GetPStrIndex
|
|
||||||
* in :
|
|
||||||
* PULLW = String Table (Array Of PSTR)
|
|
||||||
* PULLW = String To Search (PSTR)
|
|
||||||
* out :
|
|
||||||
* CC: A = String Index In Table
|
|
||||||
*--------------------------------------
|
|
||||||
S.GetPStrIndex >PULLW ZPQuickPtr1
|
|
||||||
>PULLW ZPQuickPtr2
|
|
||||||
ldx #0
|
|
||||||
.1 lda (ZPQuickPtr1)
|
|
||||||
beq .99
|
|
||||||
cmp (ZPQuickPtr2)
|
|
||||||
bne .3
|
|
||||||
tay
|
|
||||||
.2 lda (ZPQuickPtr1),y
|
|
||||||
eor (ZPQuickPtr2),y
|
|
||||||
and #$7F
|
|
||||||
bne .3
|
|
||||||
dey
|
|
||||||
bne .2
|
|
||||||
txa
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
.3 inx
|
|
||||||
lda (ZPQuickPtr1)
|
|
||||||
sec
|
|
||||||
adc ZPQuickPtr1
|
|
||||||
sta ZPQuickPtr1
|
|
||||||
bcc .1
|
|
||||||
inc ZPQuickPtr1+1
|
|
||||||
bra .1
|
|
||||||
.99 lda #SYSMGR.ERRSYN
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SetSysEnvA >PUSHA Push Cmd Line
|
|
||||||
>PUSHBI $3D Push SEP='='
|
|
||||||
>PUSHBI 0 Push Token IDX
|
|
||||||
jsr S.PStrGetTkn
|
|
||||||
bcs *
|
|
||||||
phx save X,A for discard
|
|
||||||
pha
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
>PUSHA
|
|
||||||
pla
|
|
||||||
>PUSHA
|
|
||||||
ldy #S.PS.hENV
|
|
||||||
lda TSKMGR.TABLE,y
|
|
||||||
>PUSHA
|
|
||||||
jsr S.SetEnvVarH
|
|
||||||
|
|
||||||
pla disard NAME
|
|
||||||
jsr S.FreeMemA
|
|
||||||
pla discard VALUE
|
|
||||||
jmp S.FreeMemA
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE SYS/KERNEL.S.EXE
|
|
||||||
LOAD SYS/KERNEL.S
|
|
||||||
ASM
|
|
|
@ -47,50 +47,59 @@ S.FileSearch >PULLA Get Search path
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.10 sta R.BL Store Expanded path list to search
|
.10 sta S.FileSearch.hSrch Store Expanded path list to search
|
||||||
>PULLB R.AH Store Filename
|
|
||||||
|
>PULLB S.FileSearch.hFile Store Filename
|
||||||
lda #1
|
lda #1
|
||||||
sta R.BH Start At Token 1
|
sta S.FileSearch.Idx Start At Token 1
|
||||||
|
|
||||||
.1 >PUSHB R.BL push expanded path list
|
.1 >PUSHB S.FileSearch.hSrch push expanded path list
|
||||||
>PUSHBI $3B Push SEP=';'
|
>PUSHBI $3B Push SEP=';'
|
||||||
>PUSHB R.BH Push Token IDX
|
>PUSHB S.FileSearch.Idx Push Token IDX
|
||||||
jsr S.PStrGetTkn Get R.BL token in A
|
jsr S.PStrGetTkn Get token in A
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
sta R.CL Store Token path
|
sta S.FileSearch.hPath Store Token path
|
||||||
>PUSHB R.AH push filename
|
>PUSHB S.FileSearch.hFile push filename
|
||||||
>PUSHB R.CL Push Token path
|
>PUSHB S.FileSearch.hPath Push Token path
|
||||||
jsr S.PStrCat
|
jsr S.PStrCat
|
||||||
bcs .97
|
bcs .97
|
||||||
|
|
||||||
sta R.CH Store Full path (Token Path+filename)
|
sta S.FileSearch.hFull Store Full path (Token Path+filename)
|
||||||
|
|
||||||
jsr S.MLIGetFileInfoA
|
jsr S.MLIGetFileInfoA
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
lda R.CH Discard this Full Path
|
lda S.FileSearch.hFull Discard this Full Path
|
||||||
jsr S.FreeMemA
|
jsr S.FreeMemA
|
||||||
lda R.CL Discard Token path
|
lda S.FileSearch.hPath Discard Token path
|
||||||
jsr S.FreeMemA
|
jsr S.FreeMemA
|
||||||
inc R.BH Try next Token
|
|
||||||
|
inc S.FileSearch.Idx Try next Token
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
beq .98 go to discard Expanded path list
|
beq .98 go to discard Expanded path list
|
||||||
|
|
||||||
.97 lda R.CL Discard Token path
|
.97 lda S.FileSearch.hPath Discard Token path
|
||||||
jsr S.FreeMemA
|
jsr S.FreeMemA
|
||||||
|
|
||||||
.98 lda R.BL Discard Expanded Path list
|
.98 lda S.FileSearch.hSrch Discard Expanded hSrch list
|
||||||
jsr S.FreeMemA
|
jsr S.FreeMemA
|
||||||
lda #SYSMGR.ERRFNF
|
lda #SYSMGR.ERRFNF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 jsr .97 Dicard all except Full Path
|
.8 jsr .97 Dicard all except Full Path
|
||||||
lda R.CH
|
lda S.FileSearch.hFull
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
S.FileSearch.hSrch .BS 1
|
||||||
|
S.FileSearch.hFile .BS 1
|
||||||
|
S.FileSearch.Idx .BS 1
|
||||||
|
S.FileSearch.hPath .BS 1
|
||||||
|
S.FileSearch.hFull .BS 1
|
||||||
|
*--------------------------------------
|
||||||
* S.LoadFileA
|
* S.LoadFileA
|
||||||
* in :
|
* in :
|
||||||
* A = hMem of FilePath (PSTRING)
|
* A = hMem of FilePath (PSTRING)
|
||||||
|
@ -100,7 +109,9 @@ S.FileSearch >PULLA Get Search path
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.LoadFileA jsr S.MLIOpenA
|
S.LoadFileA jsr S.MLIOpenA
|
||||||
bcc S.LoadFile
|
bcc S.LoadFile
|
||||||
S.LoadFile.RTS rts
|
|
||||||
|
S.LoadFile.RTS rts
|
||||||
|
|
||||||
S.LoadFileYA jsr S.MLIOpenYA
|
S.LoadFileYA jsr S.MLIOpenYA
|
||||||
bcs S.LoadFile.RTS
|
bcs S.LoadFile.RTS
|
||||||
|
|
||||||
|
@ -592,6 +603,6 @@ S.ListDirReadBlock
|
||||||
TmpFileName .BS 16
|
TmpFileName .BS 16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE SYS/KERNEL.S.FS
|
SAVE SYS/KERNEL.S.FIO
|
||||||
LOAD SYS/KERNEL.S
|
LOAD SYS/KERNEL.S
|
||||||
ASM
|
ASM
|
|
@ -19,13 +19,13 @@ S.LoadLibYA jsr S.NewPStrYA
|
||||||
jsr S.LoadLibA
|
jsr S.LoadLibA
|
||||||
|
|
||||||
php save error status
|
php save error status
|
||||||
|
|
||||||
pha save error code/hMem
|
pha save error code/hMem
|
||||||
lda S.LoadLibYA.hLibName
|
lda S.LoadLibYA.hLibName
|
||||||
jsr S.FreeMemA discard STR hMem
|
jsr S.FreeMemA discard STR hMem
|
||||||
pla get back error code/hMem
|
pla get back error code/hMem
|
||||||
plp ..and error status
|
plp ..and error status
|
||||||
.99 rts
|
.99 rts
|
||||||
|
*--------------------------------------
|
||||||
S.LoadLibYA.hLibName .BS 1
|
S.LoadLibYA.hLibName .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.LoadLibA
|
* S.LoadLibA
|
||||||
|
@ -34,26 +34,22 @@ S.LoadLibYA.hLibName .BS 1
|
||||||
* out :
|
* out :
|
||||||
* A = hMem of Loaded Lib
|
* A = hMem of Loaded Lib
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.LoadLibA >PUSHA push libname for S.FileSearch
|
S.LoadLibA sta S.LoadLibA.hName push libname for S.FileSearch
|
||||||
>LDYAI MSG.LOADLIB
|
>LDYAI ENV.LIB push ENVNAME=LIB
|
||||||
jsr S.SysScrPPSTRYA
|
jsr S.GetEnvVarYA get value for ENV=LIB
|
||||||
>PUSHWI ENV.LIB push ENVNAME=LIB
|
|
||||||
ldy #S.PS.hENV
|
|
||||||
lda (pPs),y
|
|
||||||
>PUSHA
|
|
||||||
jsr S.GetEnvVarP get value for ENV=LIB
|
|
||||||
bcs .99
|
bcs .99
|
||||||
pha save hMem to LIB VALUE
|
|
||||||
>PUSHA Push %LIB% VALUE
|
sta S.LoadLibA.hSrch save hMem to LIB VALUE
|
||||||
jsr S.FileSearch find libname in %LIB%
|
|
||||||
|
>PUSHB S.LoadLibA.hName
|
||||||
|
>PUSHB S.LoadLibA.hSrch
|
||||||
|
jsr S.FileSearch find libname in $LIB
|
||||||
bcs .98
|
bcs .98
|
||||||
pha save hMem to LIB full path
|
|
||||||
jsr S.SysScrPPSTRA
|
sta S.LoadLibA.hPath
|
||||||
pla
|
|
||||||
pha
|
|
||||||
jsr S.LoadBinA A = hMem of filename full path
|
jsr S.LoadBinA A = hMem of filename full path
|
||||||
bcs .97
|
bcs .97
|
||||||
phx
|
stx S.LoadLibA.hMem
|
||||||
>STYA pLib
|
>STYA pLib
|
||||||
|
|
||||||
ldx #LIBMGR.LOAD
|
ldx #LIBMGR.LOAD
|
||||||
|
@ -61,22 +57,25 @@ S.LoadLibA >PUSHA push libname for S.FileSearch
|
||||||
|
|
||||||
bcs .97
|
bcs .97
|
||||||
|
|
||||||
plx
|
jsr .97
|
||||||
pla discard LIB PATH
|
|
||||||
jsr S.FreeMemA
|
lda S.LoadLibA.hMem
|
||||||
pla discard LIB VALUE
|
|
||||||
jsr S.FreeMemA
|
|
||||||
txa
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.97 pla discard LIB PATH
|
.97 lda S.LoadLibA.hPath discard LIB PATH
|
||||||
jsr S.FreeMemA
|
jsr S.FreeMemA
|
||||||
.98 pla discard LIB VALUE
|
|
||||||
jsr S.FreeMemA
|
.98 lda S.LoadLibA.hSrch discard LIB VALUE
|
||||||
|
jsr S.FreeMemA
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
S.LoadLibA.hName .BS 1
|
||||||
|
S.LoadLibA.hSrch .BS 1
|
||||||
|
S.LoadLibA.hPath .BS 1
|
||||||
|
S.LoadLibA.hMem .BS 1
|
||||||
|
*--------------------------------------
|
||||||
* S.UnloadLibA
|
* S.UnloadLibA
|
||||||
* in :
|
* in :
|
||||||
* A = hMem To Lib
|
* A = hMem To Lib
|
||||||
|
@ -107,8 +106,6 @@ S.UnloadLibA pha
|
||||||
pla
|
pla
|
||||||
jmp S.FreeMemA
|
jmp S.FreeMemA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.LOADLIB >PSTRING "\nLoadLib:"
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE SYS/KERNEL.S.LIB
|
SAVE SYS/KERNEL.S.LIB
|
||||||
LOAD SYS/KERNEL.S
|
LOAD SYS/KERNEL.S
|
||||||
|
|
|
@ -1,304 +0,0 @@
|
||||||
PR#3
|
|
||||||
PREFIX /A2OSX.SRC
|
|
||||||
NEW
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
.LIST OFF
|
|
||||||
.OP 65C02
|
|
||||||
*--------------------------------------
|
|
||||||
* !!!!!!!! DO NOT USE VCPU16 !!!!!!!!
|
|
||||||
* !!!!!! DO NOT USE ZPQuickPTRs !!!!!
|
|
||||||
*--------------------------------------
|
|
||||||
SYSSCR.BASL .EQ ZPSysScr COUT
|
|
||||||
SYSSCR.BASLTMP .EQ ZPSysScr+2 Scrolling
|
|
||||||
SYSSCR.STRPTR .EQ ZPSysScr+4 PPSTR
|
|
||||||
*--------------------------------------
|
|
||||||
SYSSCR.BASL0 .EQ $800
|
|
||||||
*--------------------------------------
|
|
||||||
* S.SysScrInit
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrInit stz SYSSCR.CPULOADI
|
|
||||||
stz SYSSCR.CH
|
|
||||||
stz SYSSCR.CV
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
.1 lda SYSSCR.TITLE,y
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
jsr S.SysScrSetCharAtYX
|
|
||||||
iny
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
.2 lda #$20
|
|
||||||
jsr S.SysScrSetCharAtYX
|
|
||||||
iny
|
|
||||||
cpy #80
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
jsr S.SysScrHOME
|
|
||||||
|
|
||||||
lda A2osX.SCREENS
|
|
||||||
ora #A2osX.SCREENS.S
|
|
||||||
sta A2osX.SCREENS
|
|
||||||
lda #A2osX.SCREENS.S
|
|
||||||
jsr S.ScreenSelectA
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
* S.SysScrPRCode
|
|
||||||
* In:
|
|
||||||
* CC : Prints [OK]
|
|
||||||
* CS : [$$] at column 76-79
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrPRCode php save P to keep carry
|
|
||||||
bcs .1
|
|
||||||
lda #0 ensure we have ERR=0 if cc
|
|
||||||
.1 pha
|
|
||||||
ldy #76 HTAB to 76
|
|
||||||
sty SYSSCR.CH
|
|
||||||
lda #"["
|
|
||||||
jsr S.SysScrCOUTA
|
|
||||||
pla
|
|
||||||
pha
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
lda #"O"
|
|
||||||
jsr S.SysScrCOUTA
|
|
||||||
lda #"K"
|
|
||||||
jsr S.SysScrCOUTA
|
|
||||||
bra .3
|
|
||||||
|
|
||||||
.2 jsr S.SysScrPRBYTEA
|
|
||||||
.3 lda #"]"
|
|
||||||
jsr S.SysScrCOUTA
|
|
||||||
pla
|
|
||||||
plp
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.DumpEvent lda (pEvent)
|
|
||||||
jsr S.SysScrPRBYTEA
|
|
||||||
ldy #S.EVT.hDEV
|
|
||||||
lda (pEvent),y
|
|
||||||
jsr S.SysScrPRBYTEA
|
|
||||||
ldy #S.EVT.DATALO
|
|
||||||
lda (pEvent),y
|
|
||||||
jsr S.SysScrPRBYTEA
|
|
||||||
ldy #S.EVT.DATAHI
|
|
||||||
lda (pEvent),y
|
|
||||||
jsr S.SysScrPRBYTEA
|
|
||||||
|
|
||||||
lda #'.'
|
|
||||||
jsr S.SysScrCOUTA
|
|
||||||
ldy #S.EVT.DATAW1
|
|
||||||
lda (pEvent),y
|
|
||||||
jsr S.SysScrPRBYTEA
|
|
||||||
iny
|
|
||||||
lda (pEvent),y
|
|
||||||
jsr S.SysScrPRBYTEA
|
|
||||||
|
|
||||||
lda #'.'
|
|
||||||
jsr S.SysScrCOUTA
|
|
||||||
ldy #S.EVT.DATAW2
|
|
||||||
lda (pEvent),y
|
|
||||||
jsr S.SysScrPRBYTEA
|
|
||||||
iny
|
|
||||||
lda (pEvent),y
|
|
||||||
jmp S.SysScrPRBYTEA
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrPPSTRA jsr S.GetMemPtrA
|
|
||||||
S.SysScrPPSTRYA >STYA SYSSCR.STRPTR
|
|
||||||
lda (SYSSCR.STRPTR)
|
|
||||||
beq .9
|
|
||||||
ldy #0
|
|
||||||
.1 iny
|
|
||||||
lda (SYSSCR.STRPTR),y
|
|
||||||
cmp #'\'
|
|
||||||
bne .7
|
|
||||||
tya
|
|
||||||
cmp (SYSSCR.STRPTR)
|
|
||||||
beq .9
|
|
||||||
iny
|
|
||||||
lda (SYSSCR.STRPTR),y
|
|
||||||
cmp #'n'
|
|
||||||
bne .7
|
|
||||||
lda #13
|
|
||||||
.7 jsr S.SysScrCOUTA
|
|
||||||
.8 tya
|
|
||||||
cmp (SYSSCR.STRPTR)
|
|
||||||
bne .1
|
|
||||||
.9 >LDYA SYSSCR.STRPTR
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrPRBYTEA pha
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
ora #$B0
|
|
||||||
cmp #$BA
|
|
||||||
bcc .1
|
|
||||||
adc #6
|
|
||||||
.1 jsr S.SysScrCOUTA
|
|
||||||
pla
|
|
||||||
and #$0F
|
|
||||||
ora #$B0
|
|
||||||
cmp #$BA
|
|
||||||
bcc S.SysScrCOUTA
|
|
||||||
adc #6
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrCOUTA phx
|
|
||||||
phy
|
|
||||||
cmp #13
|
|
||||||
bne .1
|
|
||||||
jsr S.SysScrCROUT
|
|
||||||
ply
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 ldy SYSSCR.CH
|
|
||||||
ldx SYSSCR.CV
|
|
||||||
ora #$80
|
|
||||||
jsr S.SysScrSetCharAtYX
|
|
||||||
jsr S.SysScrFSOUT
|
|
||||||
ply
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrFSOUT lda SYSSCR.CH
|
|
||||||
cmp #79
|
|
||||||
beq S.SysScrCROUT1
|
|
||||||
inc SYSSCR.CH
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrCROUT jsr S.SysScrCLREOL
|
|
||||||
S.SysScrCROUT1 stz SYSSCR.CH
|
|
||||||
ldx SYSSCR.CV
|
|
||||||
cpx #23
|
|
||||||
beq S.SysScrScroll
|
|
||||||
inc SYSSCR.CV
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrCLREOL ldx SYSSCR.CV
|
|
||||||
lda #$A0
|
|
||||||
ldy SYSSCR.CH
|
|
||||||
.1 cpy #79
|
|
||||||
beq .2
|
|
||||||
jsr S.SysScrSetCharAtYX
|
|
||||||
iny
|
|
||||||
bne .1
|
|
||||||
.2 rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrScroll ldx #1
|
|
||||||
.1 lda SYSSCR.BASEL,x
|
|
||||||
sta SYSSCR.BASL
|
|
||||||
lda SYSSCR.BASEH,x
|
|
||||||
sta SYSSCR.BASL+1
|
|
||||||
inx
|
|
||||||
lda SYSSCR.BASEL,x
|
|
||||||
sta SYSSCR.BASLTMP
|
|
||||||
lda SYSSCR.BASEH,x
|
|
||||||
sta SYSSCR.BASLTMP+1
|
|
||||||
|
|
||||||
ldy #39
|
|
||||||
sta SETWRITEAUX
|
|
||||||
sta SETREADAUX
|
|
||||||
.2 lda (SYSSCR.BASLTMP),y
|
|
||||||
sta (SYSSCR.BASL),y
|
|
||||||
dey
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
ldy #39
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
sta CLRREADAUX
|
|
||||||
.3 lda (SYSSCR.BASLTMP),y
|
|
||||||
sta (SYSSCR.BASL),y
|
|
||||||
dey
|
|
||||||
bpl .3
|
|
||||||
|
|
||||||
cpx #23
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
ldy #39
|
|
||||||
lda #$A0
|
|
||||||
.4 sta SETWRITEAUX
|
|
||||||
sta (SYSSCR.BASLTMP),y
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
sta (SYSSCR.BASLTMP),y
|
|
||||||
dey
|
|
||||||
bpl .4
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrClrLineAtX
|
|
||||||
lda SYSSCR.BASEL,x
|
|
||||||
sta SYSSCR.BASL
|
|
||||||
lda SYSSCR.BASEH,x
|
|
||||||
sta SYSSCR.BASL+1
|
|
||||||
|
|
||||||
lda #$A0
|
|
||||||
|
|
||||||
ldy #39
|
|
||||||
sta SETWRITEAUX
|
|
||||||
.1 sta (SYSSCR.BASL),y
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
ldy #39
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
.2 sta (SYSSCR.BASL),y
|
|
||||||
dey
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrHOME ldx #23
|
|
||||||
|
|
||||||
.1 jsr S.SysScrClrLineAtX
|
|
||||||
dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
stz SYSSCR.CH
|
|
||||||
lda #1
|
|
||||||
sta SYSSCR.CV
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.SysScrSetCharAtYX
|
|
||||||
cmp #$40
|
|
||||||
bcc .1
|
|
||||||
cmp #$5F
|
|
||||||
bcs .1
|
|
||||||
and #$3F
|
|
||||||
|
|
||||||
.1 phy
|
|
||||||
pha
|
|
||||||
lda SYSSCR.BASEL,x
|
|
||||||
sta SYSSCR.BASL
|
|
||||||
lda SYSSCR.BASEH,x
|
|
||||||
sta SYSSCR.BASL+1
|
|
||||||
tya
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
bcs .2
|
|
||||||
sta SETWRITEAUX
|
|
||||||
|
|
||||||
.2 pla
|
|
||||||
sta (SYSSCR.BASL),y
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
ply
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
SYSSCR.CH .BS 1
|
|
||||||
SYSSCR.CV .BS 1
|
|
||||||
SYSSCR.CPULOADI .BS 1
|
|
||||||
SYSSCR.CPULOADC .AS -"|/-\"
|
|
||||||
*--------------------------------------
|
|
||||||
SYSSCR.TITLE >CSTRING "A2osX System Screen"
|
|
||||||
SYSSCR.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
|
|
||||||
SYSSCR.BASEH .HS 08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE SYS/KERNEL.S.SCR
|
|
||||||
LOAD SYS/KERNEL.S
|
|
||||||
ASM
|
|
|
@ -12,35 +12,31 @@ S.TskMgrInit stz TSKMGR.LASTID
|
||||||
lda #1
|
lda #1
|
||||||
sta TSKMGR.SIZE One Slot Busy (Kernel PS=0)
|
sta TSKMGR.SIZE One Slot Busy (Kernel PS=0)
|
||||||
|
|
||||||
>LDYAI TskMgr.Table Make PS #0 as current process
|
>LDYAI TskMgr.Table Clear whole process table
|
||||||
>STYA pPs
|
>STYA ZPQuickPtr1
|
||||||
|
|
||||||
ldx #K.PS.MAX
|
ldx #K.PS.MAX
|
||||||
|
|
||||||
.1 lda #0
|
.1 lda #0
|
||||||
ldy #S.PS.SIZE-1
|
ldy #S.PS.SIZE-1
|
||||||
|
|
||||||
.2 sta (pPs),y
|
.2 sta (ZPQuickPtr1),y
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
lda pPs
|
lda ZPQuickPtr1
|
||||||
clc
|
clc
|
||||||
adc #S.PS.SIZE
|
adc #S.PS.SIZE
|
||||||
sta pPs
|
sta ZPQuickPtr1
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
inc pPs+1
|
inc ZPQuickPtr1+1
|
||||||
.3 dex
|
.3 dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYAI TskMgr.Table Make PS #0 as current process
|
lda #1
|
||||||
>STYA pPs
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
ldy #S.PS.hINDEV
|
ldy #S.PS.hINDEV
|
||||||
sta TskMgr.Table,y Make In DEV = NUL
|
sta TskMgr.Table,y Make In DEV = SYS
|
||||||
inc
|
|
||||||
ldy #S.PS.hOUTDEV
|
ldy #S.PS.hOUTDEV
|
||||||
sta TskMgr.Table,y Make OUT DEV = SYS
|
sta TskMgr.Table,y Make OUT DEV = SYS
|
||||||
ldy #S.PS.hERRDEV
|
ldy #S.PS.hERRDEV
|
||||||
|
@ -62,16 +58,33 @@ S.TskMgrInit stz TSKMGR.LASTID
|
||||||
|
|
||||||
ldy #S.PS.hPREFIX
|
ldy #S.PS.hPREFIX
|
||||||
sta TskMgr.Table,y
|
sta TskMgr.Table,y
|
||||||
|
S.TskMgrInit.Env
|
||||||
>PUSHWI TmpBuffer256 push ENV value
|
>PUSHWI TmpBuffer256 push ENV value
|
||||||
>PUSHWI ENV.A2osX push ENV name
|
>PUSHWI ENV.A2osX push ENV name
|
||||||
ldy #S.PS.hENV
|
|
||||||
lda TskMgr.Table,y
|
|
||||||
>PUSHA
|
|
||||||
jsr S.SetEnvVarP
|
jsr S.SetEnvVarP
|
||||||
rts
|
bcs .9
|
||||||
|
|
||||||
|
>PUSHWI ENV.PATH.VALUE
|
||||||
|
>PUSHWI ENV.PATH
|
||||||
|
jsr S.SetEnvVarP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>PUSHWI ENV.LIB.VALUE
|
||||||
|
>PUSHWI ENV.LIB
|
||||||
|
jsr S.SetEnvVarP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>PUSHWI ENV.DRV.VALUE
|
||||||
|
>PUSHWI ENV.DRV
|
||||||
|
jsr S.SetEnvVarP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr S.SelectProcess0
|
||||||
|
|
||||||
|
ldx #DEVMGR.OPEN
|
||||||
|
jsr pDevJmp
|
||||||
|
|
||||||
.9 sec
|
.9 rts
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.TskMgrRun
|
* S.TskMgrRun
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -209,16 +222,20 @@ S.TskMgrQuit clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PUBLIC
|
* PUBLIC
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.ExecProcessA (Blocking Parent PID)
|
* S.ExecProcessNewEnvYA
|
||||||
|
* S.ExecProcessYA (Blocking Parent PID)
|
||||||
|
* S.CreateProcessNewEnvYA
|
||||||
|
* S.CreateProcessYA (Non Blocking)
|
||||||
* in :
|
* in :
|
||||||
* A = hMem To Cmd Line
|
* A = hMem To Cmd Line
|
||||||
|
* Y = hMem To Args
|
||||||
* out :
|
* out :
|
||||||
* A = Child PSID
|
* A = Child PSID
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.ExecProcessNewEnvA
|
S.ExecProcessNewEnvYA
|
||||||
ldy #S.PS.F.ENV
|
ldx #S.PS.F.ENV
|
||||||
bra S.ExecProcess
|
.HS 2C bit abs
|
||||||
S.ExecProcessA ldy #0
|
S.ExecProcessYA ldx #0
|
||||||
S.ExecProcess jsr S.CreateProcess
|
S.ExecProcess jsr S.CreateProcess
|
||||||
bcs .9 terminated, do not set PID as HOLD
|
bcs .9 terminated, do not set PID as HOLD
|
||||||
|
|
||||||
|
@ -233,31 +250,36 @@ S.ExecProcess jsr S.CreateProcess
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.CreateProcessA (Non Blocking)
|
S.CreateProcessNewEnvYA
|
||||||
* in :
|
ldx #S.PS.F.ENV
|
||||||
* A = hMem To Full Cmd Line
|
.HS 2C bit abs
|
||||||
* out :
|
S.CreateProcessYA
|
||||||
* A = Child PSID
|
ldx #0
|
||||||
*--------------------------------------
|
S.CreateProcess stx S.CreateChildProcess.Flags
|
||||||
S.CreateProcessNewEnvA
|
|
||||||
ldy #S.PS.F.ENV
|
|
||||||
bra S.CreateProcess
|
|
||||||
S.CreateProcessA
|
|
||||||
ldy #0
|
|
||||||
S.CreateProcess sty S.CreateChildProcess.Flags
|
|
||||||
sta S.CreateProcessA.Cmd
|
sta S.CreateProcessA.Cmd
|
||||||
>LDYAI MSG.NEWPS
|
sty S.CreateProcessA.Args
|
||||||
jsr S.SysScrPPSTRYA
|
|
||||||
|
* lda #'|'
|
||||||
|
* jsr S.CoutA
|
||||||
|
* lda S.CreateProcessA.Cmd
|
||||||
|
* jsr S.PSTROutA
|
||||||
|
* lda #'|'
|
||||||
|
* jsr S.CoutA
|
||||||
|
* lda S.CreateProcessA.Args
|
||||||
|
* beq .1
|
||||||
|
* jsr S.PSTROutA
|
||||||
|
*.1 lda #'|'
|
||||||
|
* jsr S.CoutA
|
||||||
|
* lda #13
|
||||||
|
* jsr S.CoutA
|
||||||
|
|
||||||
jsr S.CreateChildProcess
|
jsr S.CreateChildProcess
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
sta S.CreateProcessA.CPSID
|
sta S.CreateProcessA.CPSID
|
||||||
|
|
||||||
jsr S.SelectProcessA
|
jsr S.SelectProcessA
|
||||||
|
|
||||||
lda S.CreateProcessA.Cmd
|
jsr S.InitProcess
|
||||||
jsr S.InitProcessA
|
|
||||||
bcs .98 Init Failed or exit?
|
bcs .98 Init Failed or exit?
|
||||||
|
|
||||||
ldy #S.PS.PID switch back to Parent Process
|
ldy #S.PS.PID switch back to Parent Process
|
||||||
|
@ -284,6 +306,7 @@ S.CreateProcess sty S.CreateChildProcess.Flags
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.CreateProcessA.Cmd .BS 1
|
S.CreateProcessA.Cmd .BS 1
|
||||||
|
S.CreateProcessA.Args .BS 1
|
||||||
S.CreateProcessA.CPSID .BS 1
|
S.CreateProcessA.CPSID .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.GetPSByIDA
|
* S.GetPSByIDA
|
||||||
|
@ -469,62 +492,24 @@ S.CreateChildProcess
|
||||||
S.CreateChildProcess.Flags
|
S.CreateChildProcess.Flags
|
||||||
.BS 1
|
.BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.InitProcessA
|
* S.InitProcess
|
||||||
* In :
|
* In :
|
||||||
* A = hMem To Full Cmd Line
|
* A = hMem To Full Cmd Line
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.InitProcessA stz S.InitProcessA.hPath
|
S.InitProcess lda S.CreateProcessA.Args
|
||||||
stz S.InitProcessA.hFullPath
|
beq .1
|
||||||
>PUSHA Push Cmd Line
|
jsr S.ExpandPStrA
|
||||||
>PUSHBI $20 Push SEP=' '
|
.1 ldy #S.PS.hARGS
|
||||||
>PUSHBI 0 Push 0 for getting CMD And ARGS
|
|
||||||
jsr S.PStrGetTkn
|
|
||||||
bcc .10
|
|
||||||
.99 rts OOM error
|
|
||||||
|
|
||||||
.10 sta S.InitProcessA.hCmd
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
ldy #S.PS.hARGS
|
|
||||||
sta (pPs),y set ARGS hMem (0 if none)
|
sta (pPs),y set ARGS hMem (0 if none)
|
||||||
|
|
||||||
|
lda S.CreateProcessA.Cmd
|
||||||
|
jsr S.ExpandPStrA
|
||||||
|
|
||||||
pla
|
|
||||||
jsr S.GetMemPtrA
|
|
||||||
>STYA ZPQuickPtr1
|
|
||||||
lda (ZPQuickPtr1)
|
|
||||||
cmp #'/'
|
|
||||||
bne .20
|
|
||||||
|
|
||||||
lda S.InitProcessA.hCmd
|
|
||||||
bra .30
|
|
||||||
|
|
||||||
.20 >PUSHWI ENV.PATH push ENVNAME=PATH
|
|
||||||
ldy #S.PS.hENV
|
|
||||||
lda (pPs),y
|
|
||||||
>PUSHA
|
|
||||||
jsr S.GetEnvVarP get value for ENV=PATH
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
sta S.InitProcessA.hPath save VALUE hMem for discard
|
|
||||||
pha
|
|
||||||
lda S.InitProcessA.hCmd
|
|
||||||
>PUSHA push CMD for S.FileSearch
|
|
||||||
pla
|
|
||||||
>PUSHA A=PStr to ENV Value
|
|
||||||
jsr S.FileSearch find File in %PATH%
|
|
||||||
bcs S.InitProcessA.ClnUp
|
|
||||||
|
|
||||||
sta S.InitProcessA.hFullPath save FULLPATH hMem for discard
|
|
||||||
|
|
||||||
.30 jsr S.PStrCpyA
|
|
||||||
ldy #S.PS.hCMD
|
ldy #S.PS.hCMD
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
pha
|
|
||||||
jsr S.SysScrPPSTRA
|
|
||||||
pla
|
|
||||||
|
|
||||||
jsr S.LoadBinA A = BinPath hMem
|
jsr S.LoadBinA A = BinPath hMem
|
||||||
bcs S.InitProcessA.ClnUp
|
bcs .99
|
||||||
|
|
||||||
>STYA pCode save PTR to Code Segment
|
>STYA pCode save PTR to Code Segment
|
||||||
txa
|
txa
|
||||||
|
@ -537,48 +522,38 @@ S.InitProcessA stz S.InitProcessA.hPath
|
||||||
dey
|
dey
|
||||||
ora (pCode),y
|
ora (pCode),y
|
||||||
|
|
||||||
beq .1 DS.SIZE=0...
|
beq .2 DS.SIZE=0...
|
||||||
|
|
||||||
lda (pCode),y
|
lda (pCode),y
|
||||||
>PUSHAX Push DS.SIZE
|
>PUSHAX Push DS.SIZE
|
||||||
>PUSHBI S.MEM.F.INIT0 Clear DS
|
>PUSHBI S.MEM.F.INIT0 Clear DS
|
||||||
jsr S.GetMem
|
jsr S.GetMem
|
||||||
bcs S.InitProcessA.ClnUp
|
bcs .99
|
||||||
|
|
||||||
>STYA pData
|
>STYA pData
|
||||||
txa
|
txa
|
||||||
ldy #S.PS.hDS
|
ldy #S.PS.hDS
|
||||||
sta (pPs),y save DS hMem in TSKSLOT
|
sta (pPs),y save DS hMem in TSKSLOT
|
||||||
|
|
||||||
.1 ldx #TSKMGR.INIT
|
.2 ldx #TSKMGR.INIT
|
||||||
jsr pCodeJmp Call INIT function
|
jsr pCodeJmp Call INIT function
|
||||||
|
|
||||||
S.InitProcessA.ClnUp
|
.99 rts
|
||||||
php save Carry
|
|
||||||
pha save ERR
|
|
||||||
lda S.InitProcessA.hFullPath
|
|
||||||
beq .1
|
|
||||||
jsr S.FreeMemA
|
|
||||||
|
|
||||||
.1 lda S.InitProcessA.hPath
|
|
||||||
beq .2
|
|
||||||
jsr S.FreeMemA
|
|
||||||
|
|
||||||
.2 pla
|
|
||||||
plp
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
S.InitProcessA.hCmd .BS 1
|
|
||||||
S.InitProcessA.hPath .BS 1
|
|
||||||
S.InitProcessA.hFullPath .BS 1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.SelectProcessA
|
* S.SelectProcessA
|
||||||
* In : A=PSID
|
* In : A=PSID
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.SelectProcessA
|
S.SelectProcessA
|
||||||
|
tay
|
||||||
|
bne S.SelectProcessN
|
||||||
|
S.SelectProcess0
|
||||||
|
>LDYAI TskMgr.Table Make PS #0 as current process
|
||||||
|
>STYA pPs
|
||||||
|
bra S.SelectProcessDev
|
||||||
|
S.SelectProcessN
|
||||||
jsr S.GetPSByIDA
|
jsr S.GetPSByIDA
|
||||||
bcs *
|
bcs *
|
||||||
>STYA pPS
|
>STYA pPs
|
||||||
|
|
||||||
S.SelectProcess ldy #S.PS.hCS
|
S.SelectProcess ldy #S.PS.hCS
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
|
@ -587,12 +562,13 @@ S.SelectProcess ldy #S.PS.hCS
|
||||||
|
|
||||||
ldy #S.PS.hDS
|
ldy #S.PS.hDS
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
beq .1
|
beq S.SelectProcessDev
|
||||||
|
|
||||||
jsr S.GetMemPtrA
|
jsr S.GetMemPtrA
|
||||||
>STYA pData
|
>STYA pData
|
||||||
|
|
||||||
.1 ldy #S.PS.hOUTDEV
|
S.SelectProcessDev
|
||||||
|
ldy #S.PS.hOUTDEV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
|
@ -658,7 +634,6 @@ TSKMGR.SIZE .BS 1
|
||||||
TSKMGR.COUNT .BS 1
|
TSKMGR.COUNT .BS 1
|
||||||
TSKMGR.LASTID .BS 1
|
TSKMGR.LASTID .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.NEWPS >PSTRING "\nTskMgr:"
|
|
||||||
MAN
|
MAN
|
||||||
SAVE SYS/KERNEL.S.TSK
|
SAVE SYS/KERNEL.S.TSK
|
||||||
LOAD SYS/KERNEL.S
|
LOAD SYS/KERNEL.S
|
||||||
|
|
184
SYS/KERNEL.S.txt
184
SYS/KERNEL.S.txt
|
@ -13,6 +13,11 @@ AUTO 6
|
||||||
.INB INC/IO.I
|
.INB INC/IO.I
|
||||||
.INB INC/PRODOS.I
|
.INB INC/PRODOS.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
ZPQuickPtr1 .EQ $0 Temp Ptrs for use in very limited scope
|
||||||
|
ZPQuickPtr2 .EQ $2 (could be trashed by any JSR)
|
||||||
|
ZPQuickPtr3 .EQ $4
|
||||||
|
ZPQuickPtr4 .EQ $6
|
||||||
|
*--------------------------------------
|
||||||
* $D000-D0FF KERNEL.SYSCALL Jmp Table
|
* $D000-D0FF KERNEL.SYSCALL Jmp Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA S.GetMem $00
|
.DA S.GetMem $00
|
||||||
|
@ -47,13 +52,13 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA S.ExpandPStrA $30
|
.DA S.ExpandPStrA $30
|
||||||
.DA S.ExpandPStrYA
|
.DA S.ExpandPStrYA
|
||||||
.DA S.GetEnvVarH
|
.DA S.GetEnvVarA
|
||||||
.DA S.GetEnvVarP
|
.DA S.GetEnvVarYA
|
||||||
|
|
||||||
.DA S.SetEnvVarH
|
.DA S.SetEnvVarH
|
||||||
.DA S.SetEnvVarP
|
.DA S.SetEnvVarP
|
||||||
.DA S.DelEnvVarH
|
.DA S.DelEnvVarA
|
||||||
.DA S.DelEnvVarP
|
.DA S.DelEnvVarYA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA S.MLICreateFile $40
|
.DA S.MLICreateFile $40
|
||||||
.DA S.MLICreateDirA
|
.DA S.MLICreateDirA
|
||||||
|
@ -105,10 +110,10 @@ AUTO 6
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA S.ExecProcessNewEnvA $90
|
.DA S.ExecProcessNewEnvYA $90
|
||||||
.DA S.ExecProcessA
|
.DA S.ExecProcessYA
|
||||||
.DA S.CreateProcessNewEnvA
|
.DA S.CreateProcessNewEnvYA
|
||||||
.DA S.CreateProcessA
|
.DA S.CreateProcessYA
|
||||||
|
|
||||||
.DA S.GetPSByIDA
|
.DA S.GetPSByIDA
|
||||||
.DA 0
|
.DA 0
|
||||||
|
@ -137,22 +142,22 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA S.ScreenSelectA $C0
|
.DA S.ScreenSelectA $C0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA S.SysScrPPSTRA
|
.DA 0
|
||||||
.DA S.SysScrPPSTRYA
|
.DA 0
|
||||||
|
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA 0 $D0
|
.DA S.COutA $D0
|
||||||
.DA 0
|
.DA S.PSTROutA
|
||||||
.DA 0
|
.DA S.PSTROutYA
|
||||||
.DA 0
|
|
||||||
.DA 0
|
|
||||||
.DA 0
|
|
||||||
.DA 0
|
|
||||||
.DA 0
|
.DA 0
|
||||||
|
.DA S.HexOutA
|
||||||
|
.DA S.HexOutYA
|
||||||
|
.DA S.DecOutA
|
||||||
|
.DA S.DecOutYA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA 0 $E0
|
.DA 0 $E0
|
||||||
.DA 0
|
.DA 0
|
||||||
|
@ -185,73 +190,50 @@ Kernel.Init sei
|
||||||
stz A2osX.SCREENS
|
stz A2osX.SCREENS
|
||||||
stz A2osX.ASCREEN
|
stz A2osX.ASCREEN
|
||||||
|
|
||||||
jsr S.SysScrInit
|
jsr S.MemMgrInit
|
||||||
|
bcs *
|
||||||
|
jsr S.DevMgrInit
|
||||||
|
bcs *
|
||||||
|
jsr S.EvtMgrInit
|
||||||
|
bcs *
|
||||||
|
jsr S.TskMgrInit
|
||||||
|
bcs *
|
||||||
|
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
>LDYAI MSG.Init
|
>LDYAI MSG.Init
|
||||||
jsr S.SysScrPPSTRYA
|
jsr S.PSTROutYA
|
||||||
|
|
||||||
>LDYAI MSG.Init.MemMgr
|
|
||||||
jsr S.SysScrPPSTRYA
|
|
||||||
jsr S.MemMgrInit
|
|
||||||
jsr S.SysScrPRCode
|
|
||||||
bcs .1
|
|
||||||
|
|
||||||
>LDYAI MSG.Init.TskMgr
|
|
||||||
jsr S.SysScrPPSTRYA
|
|
||||||
jsr S.TskMgrInit
|
|
||||||
jsr S.SysScrPRCode
|
|
||||||
.1 bcs .2
|
|
||||||
|
|
||||||
>LDYAI MSG.Init.DevMgr
|
|
||||||
jsr S.SysScrPPSTRYA
|
|
||||||
jsr S.DevMgrInit
|
|
||||||
jsr S.SysScrPRCode
|
|
||||||
.2 bcs .3
|
|
||||||
|
|
||||||
>LDYAI MSG.Init.EvtMgr
|
|
||||||
jsr S.SysScrPPSTRYA
|
|
||||||
jsr S.EvtMgrInit
|
|
||||||
jsr S.SysScrPRCode
|
|
||||||
.3 bcs .99
|
|
||||||
|
|
||||||
>LDYAI MSG.Init.Startup
|
>LDYAI MSG.Init.Startup
|
||||||
jsr S.SysScrPPSTRYA
|
jsr S.PSTROutYA
|
||||||
|
|
||||||
>LDYAI STARTUP.FILE Build A2osX.STARTUP full path...
|
>LDYAI STARTUP.ARGS Get A2osX.STARTUP full path...
|
||||||
jsr S.NewPStrYA
|
jsr S.NewPStrYA
|
||||||
pha save for discard
|
pha
|
||||||
|
>LDYAI STARTUP.CMD Get A2osX.STARTUP full path...
|
||||||
>PUSHA
|
jsr S.NewPStrYA
|
||||||
>PUSHWI ENV.A2osX get KRNL root path
|
ply get back ARGS in Y
|
||||||
ldy #S.PS.hENV
|
phy
|
||||||
lda TskMgr.Table,y
|
pha A=CMH, save for discard
|
||||||
>PUSHA
|
>DEBUG
|
||||||
jsr S.GetEnvVarP
|
jsr S.CreateProcessYA
|
||||||
pha save for discard
|
|
||||||
>PUSHA
|
|
||||||
jsr S.PStrCat
|
|
||||||
pha save for discard
|
|
||||||
|
|
||||||
jsr S.ExecFileA
|
|
||||||
jsr S.SysScrPRCode
|
|
||||||
bcs *
|
bcs *
|
||||||
|
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
pla
|
pla
|
||||||
jsr S.FreeMemA
|
jsr S.FreeMemA
|
||||||
pla
|
pla
|
||||||
jsr S.FreeMemA
|
jsr S.FreeMemA
|
||||||
pla
|
|
||||||
jsr S.FreeMemA
|
|
||||||
|
|
||||||
.99 bcs *
|
|
||||||
|
|
||||||
>LDYAI MSG.Init.OK
|
>LDYAI MSG.Init.OK
|
||||||
jsr S.SysScrPPSTRYA
|
jsr S.PSTROutYA
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.KernelRun jsr S.TskMgrRun
|
S.KernelRun jsr S.TskMgrRun
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
jsr S.SysScrCPULoad
|
|
||||||
jsr S.GetEvent
|
jsr S.GetEvent
|
||||||
bcs S.KernelRun CS=no event
|
bcs S.KernelRun CS=no event
|
||||||
|
|
||||||
|
@ -264,7 +246,9 @@ S.KernelRun jsr S.TskMgrRun
|
||||||
jsr S.DestroyEvent
|
jsr S.DestroyEvent
|
||||||
bra S.KernelRun
|
bra S.KernelRun
|
||||||
|
|
||||||
.1 lda (pEvent)
|
.1 jsr S.SelectProcess0
|
||||||
|
|
||||||
|
lda (pEvent)
|
||||||
and #S.EVT.F.KEY any special key?
|
and #S.EVT.F.KEY any special key?
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
|
@ -298,16 +282,36 @@ S.KernelRun jsr S.TskMgrRun
|
||||||
.98 lda #A2osX.SCREENS.S
|
.98 lda #A2osX.SCREENS.S
|
||||||
jsr S.ScreenSelectA
|
jsr S.ScreenSelectA
|
||||||
>LDYAI MSG.KRNLPANIC
|
>LDYAI MSG.KRNLPANIC
|
||||||
jsr S.SysScrPPSTRYA
|
jsr S.PSTROutYA
|
||||||
bra *
|
bra *
|
||||||
|
|
||||||
.99 >LDYAI MSG.EVNTPANIC
|
.99 jsr S.DumpEvent
|
||||||
jsr S.SysScrPPSTRYA
|
|
||||||
jsr S.DumpEvent
|
|
||||||
|
|
||||||
jsr S.DestroyEvent
|
jsr S.DestroyEvent
|
||||||
jmp S.KernelRun
|
jmp S.KernelRun
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
S.DumpEvent ldy #S.EVT.DATAW2+1
|
||||||
|
>PUSHB (pEvent),y
|
||||||
|
dey
|
||||||
|
>PUSHB (pEvent),y
|
||||||
|
|
||||||
|
ldy #S.EVT.DATAW1+1
|
||||||
|
>PUSHB (pEvent),y
|
||||||
|
dey
|
||||||
|
>PUSHB (pEvent),y
|
||||||
|
|
||||||
|
ldy #S.EVT.DATAHI
|
||||||
|
>PUSHB (pEvent),y
|
||||||
|
ldy #S.EVT.DATALO
|
||||||
|
>PUSHB (pEvent),y
|
||||||
|
|
||||||
|
ldy #S.EVT.hDEV
|
||||||
|
>PUSHB (pEvent),y
|
||||||
|
|
||||||
|
>PUSHB (pEvent)
|
||||||
|
>LDYAI MSG.DumpEvent
|
||||||
|
jmp S.PSTROutYA
|
||||||
|
*--------------------------------------
|
||||||
* S.ScreenSelectA
|
* S.ScreenSelectA
|
||||||
* IN :
|
* IN :
|
||||||
* A = Screen to display
|
* A = Screen to display
|
||||||
|
@ -318,19 +322,19 @@ S.ScreenSelectA and A2osX.SCREENS Screen is available ?
|
||||||
cmp #A2osX.SCREENS.S
|
cmp #A2osX.SCREENS.S
|
||||||
bne .1
|
bne .1
|
||||||
sta SETTEXT
|
sta SETTEXT
|
||||||
|
sta SETALTCHAR
|
||||||
sta SET80DISP
|
sta SET80DISP
|
||||||
sta CLR80STORE
|
sta CLR80STORE
|
||||||
sta SETPAGE2
|
sta SETPAGE2
|
||||||
sta SETALTCHAR
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.1 cmp #A2osX.SCREENS.C
|
.1 cmp #A2osX.SCREENS.C
|
||||||
bne .2
|
bne .2
|
||||||
sta SETTEXT
|
sta SETTEXT
|
||||||
|
sta SETALTCHAR
|
||||||
sta SET80DISP
|
sta SET80DISP
|
||||||
sta CLR80STORE
|
sta CLR80STORE
|
||||||
sta CLRPAGE2
|
sta CLRPAGE2
|
||||||
sta SETALTCHAR
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.2 cmp #A2osX.SCREENS.G
|
.2 cmp #A2osX.SCREENS.G
|
||||||
|
@ -341,6 +345,7 @@ S.ScreenSelectA and A2osX.SCREENS Screen is available ?
|
||||||
sta SETHIRES
|
sta SETHIRES
|
||||||
sta CLR80STORE
|
sta CLR80STORE
|
||||||
sta CLRPAGE2
|
sta CLRPAGE2
|
||||||
|
sta SET80STORE
|
||||||
sta SETIOUDIS
|
sta SETIOUDIS
|
||||||
sta SETDHIRES
|
sta SETDHIRES
|
||||||
|
|
||||||
|
@ -355,46 +360,35 @@ S.ScreenSelectA and A2osX.SCREENS Screen is available ?
|
||||||
.8 sta A2osX.ASCREEN
|
.8 sta A2osX.ASCREEN
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.SysScrCPULoad ldx SYSSCR.CPULOADI
|
|
||||||
lda SYSSCR.CPULOADC,x
|
|
||||||
sta SYSSCR.BASL0+38
|
|
||||||
dec SYSSCR.CPULOADI
|
|
||||||
bpl .1
|
|
||||||
lda #3
|
|
||||||
sta SYSSCR.CPULOADI
|
|
||||||
.1 rts
|
|
||||||
*--------------------------------------
|
|
||||||
MSG.Init >PSTRING "A2osX[Stage2]:Init\n"
|
MSG.Init >PSTRING "A2osX[Stage2]:Init\n"
|
||||||
MSG.Init.MemMgr >PSTRING "->MemMgr Init"
|
|
||||||
MSG.Init.TskMgr >PSTRING "->TskMgr Init"
|
|
||||||
MSG.Init.DevMgr >PSTRING "->DevMgr Init"
|
|
||||||
MSG.Init.EvtMgr >PSTRING "->EvtMgr Init"
|
|
||||||
MSG.Init.Startup >PSTRING "EXEC A2osX.Startup...\n"
|
MSG.Init.Startup >PSTRING "EXEC A2osX.Startup...\n"
|
||||||
MSG.Init.OK >PSTRING "A2osX[Stage2]:Complete."
|
MSG.Init.OK >PSTRING "A2osX[Stage2]:Complete.\n"
|
||||||
|
MSG.DumpEvent >PSTRING "\nEVT:F=%h,hDev=%d,DATA=%H,W1=%H,W2=%H"
|
||||||
MSG.EVNTPANIC >PSTRING "\nEVT:F/hDev/DATA/W1/W2="
|
|
||||||
MSG.KRNLPANIC >PSTRING "\n\n!!!Kernel Panic!!!"
|
MSG.KRNLPANIC >PSTRING "\n\n!!!Kernel Panic!!!"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STARTUP.FILE >PSTRING "A2osX.STARTUP"
|
STARTUP.CMD >PSTRING "${A2OSX}SBIN/SHELL"
|
||||||
|
STARTUP.ARGS >PSTRING "${A2OSX}A2osX.STARTUP"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.A2osX >PSTRING "A2OSX"
|
ENV.A2osX >PSTRING "A2OSX"
|
||||||
ENV.PATH >PSTRING "PATH"
|
ENV.PATH >PSTRING "PATH"
|
||||||
|
ENV.PATH.VALUE >PSTRING "${A2OSX}SBIN/;${A2OSX}BIN/"
|
||||||
ENV.LIB >PSTRING "LIB"
|
ENV.LIB >PSTRING "LIB"
|
||||||
|
ENV.LIB.VALUE >PSTRING "${A2OSX}LIB/"
|
||||||
|
ENV.DRV >PSTRING "DRV"
|
||||||
|
ENV.DRV.VALUE >PSTRING "${A2OSX}DRV/"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB SYS/KERNEL.S.MEM
|
.INB SYS/KERNEL.S.MEM
|
||||||
.INB SYS/KERNEL.S.SCR
|
|
||||||
.INB SYS/KERNEL.S.STR
|
.INB SYS/KERNEL.S.STR
|
||||||
.INB SYS/KERNEL.S.FS
|
.INB SYS/KERNEL.S.CIO
|
||||||
|
.INB SYS/KERNEL.S.FIO
|
||||||
.INB SYS/KERNEL.S.MLI
|
.INB SYS/KERNEL.S.MLI
|
||||||
.INB SYS/KERNEL.S.BIN
|
.INB SYS/KERNEL.S.BIN
|
||||||
.INB SYS/KERNEL.S.DRV
|
.INB SYS/KERNEL.S.DRV
|
||||||
.INB SYS/KERNEL.S.LIB
|
.INB SYS/KERNEL.S.LIB
|
||||||
.INB SYS/KERNEL.S.NET
|
.INB SYS/KERNEL.S.NET
|
||||||
* .INB SYS/KERNEL.S.RDR
|
|
||||||
.INB SYS/KERNEL.S.ENV
|
.INB SYS/KERNEL.S.ENV
|
||||||
.INB SYS/KERNEL.S.TSK
|
.INB SYS/KERNEL.S.TSK
|
||||||
.INB SYS/KERNEL.S.EVT
|
.INB SYS/KERNEL.S.EVT
|
||||||
.INB SYS/KERNEL.S.EXE
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB SYS/KERNEL.S.DEV
|
.INB SYS/KERNEL.S.DEV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
PR#3
|
PR#3
|
||||||
PREFIX /A2OSX.BOOT
|
PREFIX /A2OSX.SRC
|
||||||
NEW
|
NEW
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
BLOAD A
|
PREFIX /A2OSX.BOOT
|
||||||
|
BLOAD A2OSX
|
||||||
BSAVE A2OSX.SYSTEM,TSYS,A$2000,L$1300
|
BSAVE A2OSX.SYSTEM,TSYS,A$2000,L$1300
|
||||||
-A2OSX.SYSTEM
|
-A2OSX.SYSTEM
|
||||||
MAN
|
MAN
|
||||||
|
|
Loading…
Reference in New Issue
Block a user