Kernel version 0.9 : BLOCK DEVICES, extended S.DEV struct to store ROM entry point,BUS/DEV....moved the whole code to 16 Bytes S.DEV (Max 32 devices)

This commit is contained in:
Rémy GIBERT 2017-03-15 17:44:15 +01:00
parent cfac8b4821
commit 2406290d59
52 changed files with 223 additions and 357 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -16,14 +16,14 @@ INSDRV SSC.I.DRV 9600,N,8,1,X
STARTPROC GETTY COM2 ${A2OSX}SBIN/LOGIN STARTPROC GETTY COM2 ${A2OSX}SBIN/LOGIN
#INSDRV PIC.DRV #INSDRV PIC.DRV
# Network Section # Network Section
#INSDRV UTHERNET.DRV 000E3A123456 INSDRV UTHERNET.DRV 000E3A123456
#INSDRV UTHERNET2.DRV 0008DC123456 #INSDRV UTHERNET2.DRV 0008DC123456
#INSDRV UTHER2.AI.DRV 0008DC123456 #INSDRV UTHER2.AI.DRV 0008DC123456
#INSDRV LANCEGS.DRV #INSDRV LANCEGS.DRV
#STARTPROC TCPIP STARTPROC TCPIP
#STARTPROC DHCPCLNT #STARTPROC DHCPCLNT
#STARTPROC TELNETD
#STARTPROC HTTPD #STARTPROC HTTPD
#TELNETD
#NFSMOUNT 192.168.1.5:/A2OSX /MNT/A2OSX #NFSMOUNT 192.168.1.5:/A2OSX /MNT/A2OSX
#CIFSMOUNT 192.168.1.5:/MSSHARE /MNT/MSSHARE #CIFSMOUNT 192.168.1.5:/MSSHARE /MNT/MSSHARE
# End Network Section # End Network Section

View File

@ -82,13 +82,7 @@ CS.RUN >LDYA L.MSG0
CS.RUN.DUMPDEV sta DevID CS.RUN.DUMPDEV sta DevID
>SYSCALL GetDevByIDA >SYSCALL GetDevByIDA
>STYA ZPDevPtr >STYA ZPDevPtr
>STYA NetDevJmp+1
ldy #S.DEV.JMP
lda (ZPDevPtr),y
sta NetDevJmp+1
iny
lda (ZPDevPtr),y
sta NetDevJmp+2
ldx #DEVMGR.STATUS ldx #DEVMGR.STATUS
jsr NetDevJmp jsr NetDevJmp
@ -104,19 +98,14 @@ CS.RUN.DUMPDEV sta DevID
cpy #S.DEVSTAT.NET.MAC-1 cpy #S.DEVSTAT.NET.MAC-1
bne .1 bne .1
ldy #S.DEV.F lda #S.DEV.NAME
lda (ZPDevPtr),y clc
and #S.DEV.F.LEN adc ZPDevPtr
sta DevName tay
tax lda /S.DEV.NAME
adc ZPDevPtr+1
.10 iny >PUSHYA
lda (ZPDevPtr),y
sta DevName-S.DEV.NAME,y
dex
bne .10
>PUSHW L.DevName
>PUSHB DevID >PUSHB DevID

View File

@ -36,7 +36,6 @@ CS.START cld
L.MSG0 .DA MSG0 L.MSG0 .DA MSG0
L.MSG1 .DA MSG1 L.MSG1 .DA MSG1
L.MSG2 .DA MSG2 L.MSG2 .DA MSG2
L.DEV.NAME .DA DEV.NAME
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT clc CS.INIT clc
@ -53,37 +52,30 @@ CS.RUN >LDYA L.MSG0
bcc .10 bcc .10
jmp .71 jmp .71
.10 >STYA ZPPTR1 .10 >STYA pDev
>STYA ZPPTR1
ldy #S.DEV.DRV.JMP+1
>PUSHB (pDev),y
ldy #S.DEV.JMP+1
>PUSHB (ZPPTR1),y
sta GetDevStatusJmp+2
dey dey
>PUSHB (ZPPTR1),y >PUSHB (pDev),y
sta GetDevStatusJmp+1
lda #S.DEV.NAME
clc
adc pDev
tay
lda /S.DEV.NAME
adc pDev+1
>PUSHYA
ldy #S.DEV.F ldy #S.DEV.F
lda (ZPPTR1),y >PUSHB (pDev),y
and #S.DEV.F.LEN
sta DEV.NAME
tax
iny
.2 lda (ZPPTR1),y
sta DEV.NAME-S.DEV.F,y
iny
dex
bne .2
>PUSHW L.DEV.NAME
ldy #S.DEV.F
lda (ZPPTR1),y
and #$FF^S.DEV.F.LEN
>PUSHA
ldy #S.DEV.S ldy #S.DEV.S
>PUSHB (ZPPTR1),y >PUSHB (pDev),y
>PUSHB DEV.ID >PUSHB DEV.ID
@ -91,7 +83,11 @@ CS.RUN >LDYA L.MSG0
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
bcs .9 bcs .9
jsr GetDevStatus >LDYA ZPPTR1
>STYA pDev
ldx #DEVMGR.STATUS
jsr pDevJmp
bcs .7 bcs .7
>STYA ZPPTR2 >STYA ZPPTR2
@ -139,16 +135,12 @@ CS.EVENT sec
CS.QUIT clc CS.QUIT clc
rts rts
*-------------------------------------- *--------------------------------------
GetDevStatus ldx #DEVMGR.STATUS
GetDevStatusJmp jmp $ffff
*--------------------------------------
CS.END CS.END
MSG0 >CSTR "ID Status Flags Name Addr. Typ/Sub IDString Version\r\n" MSG0 >CSTR "ID Status Flags Name Addr. Typ/Sub IDString Version\r\n"
MSG1 >CSTR "%03d %b %b %4S $%H " MSG1 >CSTR "%03d %b %b %4S $%H "
MSG2 >CSTR "$%h/$%h %16S %03d.%03d" MSG2 >CSTR "$%h/$%h %16S %03d.%03d"
*-------------------------------------- *--------------------------------------
DEV.ID .BS 1 DEV.ID .BS 1
DEV.NAME .BS 5
MAN MAN
SAVE BIN/LSDEV.S SAVE BIN/LSDEV.S
ASM ASM

View File

@ -47,17 +47,16 @@ MSG.DETECT >CSTR "Apple IIe/IIc 80 Col Driver.\r\n"
*-------------------------------------- *--------------------------------------
* Device Header (16 Bytes) * Device Header (16 Bytes)
*-------------------------------------- *--------------------------------------
DEV.HEADER .DA DRV.CS.START DEV.HEADER cld
jmp (DRV.CS.START,x)
.DA #S.DEV.S.WRITE+S.DEV.S.READ .DA #S.DEV.S.WRITE+S.DEV.S.READ
.DA #3 .BS 6
.AS "CON" NAME >PSTR "CON" NAME
.HS 00 NAME must Be 5 bytes long .HS 00 NAME must Be 5 bytes long
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
DRV.CS.START cld DRV.CS.START .DA STATUS
jmp (.1,x)
.1 .DA STATUS
.DA BADCALL .DA BADCALL
.DA BADCALL .DA BADCALL
.DA BADCALL .DA BADCALL

View File

@ -92,15 +92,15 @@ hArgs .BS 1
*-------------------------------------- *--------------------------------------
* Device Header (16 Bytes) * Device Header (16 Bytes)
*-------------------------------------- *--------------------------------------
DEV.HEADER .DA DRV.CS.START DEV.HEADER cld
jmp (DRV.CS.START,x)
.DA #S.DEV.S.WRITE+S.DEV.S.READ .DA #S.DEV.S.WRITE+S.DEV.S.READ
.BS 6
DEV.HEADER.NAME >PSTR "COM1" NAME DEV.HEADER.NAME >PSTR "COM1" NAME
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
DRV.CS.START cld DRV.CS.START .DA STATUS
jmp (.1,x)
.1 .DA STATUS
.DA BADCALL .DA BADCALL
.DA BADCALL .DA BADCALL
.DA BADCALL .DA BADCALL

View File

@ -95,15 +95,15 @@ hArgs .BS 1
*-------------------------------------- *--------------------------------------
* Device Header (16 Bytes) * Device Header (16 Bytes)
*-------------------------------------- *--------------------------------------
DEV.HEADER .DA DRV.CS.START DEV.HEADER cld
jmp (DRV.CS.START,x)
.DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.IRQ .DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.IRQ
.BS 6
DEV.HEADER.NAME >PSTR "COM1" NAME DEV.HEADER.NAME >PSTR "COM1" NAME
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
DRV.CS.START cld DRV.CS.START .DA STATUS
jmp (.1,x)
.1 .DA STATUS
.DA BADCALL .DA BADCALL
.DA BADCALL .DA BADCALL
.DA BADCALL .DA BADCALL
@ -167,7 +167,6 @@ READ php
beq .9 beq .9
lda INBUF,x lda INBUF,x
* jsr READ.DEBUG
inx inx
cpx #BUF.SIZE cpx #BUF.SIZE
bne .1 bne .1
@ -185,56 +184,6 @@ READ php
sec sec
rts rts
*-------------------------------------- *--------------------------------------
READ.DEBUG phx
phy
pha
lda #2
>SYSCALL GetDevByIDA
>STYA ZPTmpPtr1
lda (ZPTmpPtr1)
sta READ.DEBUG.JMP+1
ldy #1
lda (ZPTmpPtr1),y
sta READ.DEBUG.JMP+2
lda #'('
ldx #DEVMGR.WRITE
jsr READ.DEBUG.JMP
pla
pha
lsr
lsr
lsr
lsr
tax
lda READ.DEBUG.CHAR,x
ldx #DEVMGR.WRITE
jsr READ.DEBUG.JMP
pla
pha
and #$0F
tax
lda READ.DEBUG.CHAR,x
ldx #DEVMGR.WRITE
jsr READ.DEBUG.JMP
lda #')'
ldx #DEVMGR.WRITE
jsr READ.DEBUG.JMP
pla
ply
plx
rts
READ.DEBUG.JMP jmp $ffff
READ.DEBUG.CHAR .AS "0123456789ABCDEF"
*--------------------------------------
WRITE php WRITE php
sei sei
tay save char in Y tay save char in Y
@ -368,7 +317,6 @@ STAT .DA #S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ+S.DEV.S.IRQ
.DA #S.DEVSTAT.TYPE.CHAR .DA #S.DEVSTAT.TYPE.CHAR
.DA #0 .DA #0
.DA $0900 .DA $0900
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE DRV/SSC.DRV.I.S SAVE DRV/SSC.DRV.I.S

View File

@ -130,16 +130,15 @@ ARGS .BS 2
*-------------------------------------- *--------------------------------------
* Device Header (16 Bytes) * Device Header (16 Bytes)
*-------------------------------------- *--------------------------------------
DEV.HEADER .DA DRV.CS.START DEV.HEADER cld
.DA #S.DEV.S.BLOCK+S.DEV.S.WRITE+S.DEV.S.READ jmp (DRV.CS.START,x)
DEV.HEADER.NAME .DA #4 .DA #0
.AS "ETH7" NAME .BS 6
DEV.HEADER.NAME >PSTR "ETH7" NAME
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
DRV.CS.START cld DRV.CS.START .DA STATUS
jmp (.1,x)
.1 .DA STATUS
.DA READBLOCK .DA READBLOCK
.DA WRITEBLOCK .DA WRITEBLOCK
.DA BADCALL .DA BADCALL

View File

@ -144,15 +144,15 @@ Args .BS 2
*-------------------------------------- *--------------------------------------
* Device Header (16 Bytes) * Device Header (16 Bytes)
*-------------------------------------- *--------------------------------------
DEV.HEADER .DA DRV.CS.START DEV.HEADER cld
.DA #S.DEV.S.BLOCK+S.DEV.S.WRITE+S.DEV.S.READ jmp (DRV.CS.START,x)
.DA #0
.BS 6
DEV.HEADER.NAME >PSTR "ETH7" NAME DEV.HEADER.NAME >PSTR "ETH7" NAME
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
DRV.CS.START cld DRV.CS.START .DA STATUS
jmp (.1,x)
.1 .DA STATUS
.DA READBLOCK .DA READBLOCK
.DA WRITEBLOCK .DA WRITEBLOCK
.DA BADCALL .DA BADCALL

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -8,9 +8,9 @@ AUTO 6
* KERNEL CONSTANTS DEFINITON * KERNEL CONSTANTS DEFINITON
*-------------------------------------- *--------------------------------------
K.ENV.SIZE .EQ 256 K.ENV.SIZE .EQ 256
K.EVT.MAX .EQ 16 K.FLT.MAX .EQ 4
K.DEV.MAX .EQ 16 K.EVT.MAX .EQ 8
K.FLT.MAX .EQ 8 K.DEV.MAX .EQ 32
K.PS.MAX .EQ 64 K.PS.MAX .EQ 64
*-------------------------------------- *--------------------------------------
* Kernel ZP Aux * Kernel ZP Aux
@ -63,10 +63,9 @@ D.STACK.TOP .EQ $03F0 ...Down to $0300
KrnBuf256 .EQ $0C00 Main KrnBuf256 .EQ $0C00 Main
*-------------------------------------- *--------------------------------------
MLICALL.PARAMS .EQ $0D00 Main, $12 bytes min !!!! MLICALL.PARAMS .EQ $0D00 Main, $12 bytes min !!!!
MLICALL.TMPBUF .EQ $0D12 Small buffer (14 bytes) for MLI calls
BLKCALL.PARAMS .EQ $0D20 Max 6 Bytes copied to/from $42->$47 before Firmware call BLKCALL.PARAMS .EQ $0D20 Max 6 Bytes copied to/from $42->$47 before Firmware call
PRTCALL.PARAMS .EQ $D030 Max 8 bytes for smartport cmdnum $0->$9 PRTCALL.PARAMS .EQ $D030 Max 8 bytes for smartport cmdnum $0->$9
KrnSTAT .EQ $0D40 S.STAT KrnSTAT .EQ $0D40 S.STAT = 64b
*-------------------------------------- *--------------------------------------
KrnOut256 .EQ $0E00 Used to return Values to User Space KrnOut256 .EQ $0E00 Used to return Values to User Space
*-------------------------------------- *--------------------------------------
@ -75,11 +74,11 @@ KrnOut256 .EQ $0E00 Used to return Values to User Space
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F00 Z80STACK .EQ $0FFF (0FFFFh) Down to $0F00
Z80JMP .EQ $1000 (00000h) Up To $10FF Z80JMP .EQ $1000 (00000h) Up To $10FF
*-------------------------------------- *--------------------------------------
EvtMgr.Table .EQ $1100 K.EVT.MAX*S.EVT.SIZE=32*8=256b FltMgr.Table .EQ $1100 K.FLT.MAX*S.FLT.SIZE=8*32=128b
*-------------------------------------- *--------------------------------------
DevMgr.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*8=256b EvtMgr.Table .EQ $1180 K.EVT.MAX*S.EVT.SIZE=16*8=128b
*-------------------------------------- *--------------------------------------
FltMgr.Table .EQ $1300 K.FLT.MAX*S.FLT.SIZE=8*32=256b 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
*-------------------------------------- *--------------------------------------
@ -146,11 +145,11 @@ H.BIN.HEADER .EQ 0
H.BIN.HEADER.DRV65 .EQ $4CD8 6502:cld,jmp abs H.BIN.HEADER.DRV65 .EQ $4CD8 6502:cld,jmp abs
H.BIN.HEADER.LIB65 .EQ $7CD8 6502:cld,jmp (abs,x) H.BIN.HEADER.LIB65 .EQ $7CD8 6502:cld,jmp (abs,x)
H.BIN.HEADER.BIN65 .EQ $7CD8 6502:cld,jmp (abs,x) H.BIN.HEADER.BIN65 .EQ $7CD8 6502:cld,jmp (abs,x)
H.BIN.HEADER.LIB80 .EQ $A28D Z80: *H.BIN.HEADER.LIB80 .EQ $A28D Z80:
H.BIN.HEADER.BIN80 .EQ $A28D Z80: *H.BIN.HEADER.BIN80 .EQ $A28D Z80:
H.BIN.JMP .EQ 2 H.BIN.JMP .EQ 2
H.BIN.CODE.TYPE .EQ 4 *H.BIN.CODE.TYPE .EQ 4
H.BIN.VERSION .EQ 5 *H.BIN.VERSION .EQ 5
H.BIN.CODE.LEN .EQ 8 H.BIN.CODE.LEN .EQ 8
* *
H.BIN.EXE.DS.SIZE .EQ 10 H.BIN.EXE.DS.SIZE .EQ 10
@ -159,7 +158,7 @@ H.BIN.EXE.REL.TABLE .EQ 16
H.BIN.DRV.HEADER.O .EQ 10 H.BIN.DRV.HEADER.O .EQ 10
H.BIN.DRV.CODE.O .EQ 12 H.BIN.DRV.CODE.O .EQ 12
H.BIN.DRV.CODE.LEN .EQ 14 H.BIN.DRV.CODE.LEN .EQ 14
H.BIN.DRV.REL.TABLE .EQ 2 H.BIN.DRV.REL.TABLE .EQ 0
*-------------------------------------- *--------------------------------------
* A2osX.SYSCALL Functions Indexes * A2osX.SYSCALL Functions Indexes
*-------------------------------------- *--------------------------------------
@ -344,15 +343,9 @@ S.MEMSTAT .EQ 24
* DRV : AUXLC entry point * DRV : AUXLC entry point
* BLK : ROM Entry point Cn($Cnff) * BLK : ROM Entry point Cn($Cnff)
* PRT : ROM Entry point Cn($Cnff)+3 * PRT : ROM Entry point Cn($Cnff)+3
* ID :
* 00->0F : NUL,SYS & loadable drivers
* X0 : X=Slot (Controller board)
* XY : X=Slot, Y=Device
* NAME:
*
*-------------------------------------- *--------------------------------------
S.DEV.JMP .EQ 0 S.DEV.DRV.JMP .EQ 2
S.DEV.S .EQ 2 S.DEV.S .EQ 4
S.DEV.S.BLOCK .EQ %10000000 S.DEV.S.BLOCK .EQ %10000000
S.DEV.S.WRITE .EQ %01000000 S.DEV.S.WRITE .EQ %01000000
S.DEV.S.READ .EQ %00100000 S.DEV.S.READ .EQ %00100000
@ -361,13 +354,17 @@ S.DEV.S.NOFMT .EQ %00001000
S.DEV.S.WENABL .EQ %00000100 S.DEV.S.WENABL .EQ %00000100
S.DEV.S.IRQ .EQ %00000010 S.DEV.S.IRQ .EQ %00000010
S.DEV.S.OPENED .EQ %00000001 S.DEV.S.OPENED .EQ %00000001
S.DEV.F .EQ 3 S.DEV.F .EQ 5
*S.DEV.F.IRQ .EQ %10000000 Device is irq driven *S.DEV.F.PRT .EQ %10000000
*S.DEV.F.EVENT .EQ %01000000 Device is event driven *S.DEV.F.BLK .EQ %01000000
S.DEV.F.LEN .EQ %00000111 Len *S.DEV.F.DII .EQ %00100000
S.DEV.NAME .EQ 4 4 MAX S.DEV.BUSID .EQ 6
S.DEV.DEVID .EQ 7
S.DEV.ROM.JMP .EQ 8 word
* *
S.DEV .EQ 8 S.DEV.NAME .EQ 11 L+4 MAX
*
S.DEV .EQ 16
*----------- Smartport ---------------- *----------- Smartport ----------------
DEVMGR.STATUS .EQ 0 DEVMGR.STATUS .EQ 0
DEVMGR.READBLOCK .EQ 2 DEVMGR.READBLOCK .EQ 2

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -36,12 +36,7 @@ SET.IPCFG >PULLW ZPTmpPtr1
>SYSCALL GetDevByIDA >SYSCALL GetDevByIDA
>STYA ZPTmpPtr2 >STYA ZPTmpPtr2
>STYA NetDevJmp+1
lda (ZPTmpPtr2)
sta NetDevJmp+1
ldy #1
lda (ZPTmpPtr2),y
sta NetDevJmp+2
ldx #DEVMGR.STATUS ldx #DEVMGR.STATUS
jsr NetDevJmp jsr NetDevJmp

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -65,7 +65,9 @@ CS.INIT >SYSCALL GetArgC
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
CS.RUN CS.RUN
CS.DOEVENT CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT clc CS.QUIT clc
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -110,15 +110,10 @@ CS.INIT.DEV >LDYA L.DEVNAME
rts rts
.1 >STYA ZPIPDevPtr .1 >STYA ZPIPDevPtr
>STYA NetDevJmp+1
stx hNetDev stx hNetDev
stx IPCFG+S.IPCFG.HDEV stx IPCFG+S.IPCFG.HDEV
lda (ZPIPDevPtr)
sta NetDevJmp+1
ldy #1
lda (ZPIPDevPtr),y
sta NetDevJmp+2
>PUSHW L.DEVNAME >PUSHW L.DEVNAME
>LDYA L.MSG.DEV.OK >LDYA L.MSG.DEV.OK
>SYSCALL CPrintFYA >SYSCALL CPrintFYA

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #GetArgC * #GetArgC
* Returns argument count in the process command line. * Returns argument count in the process command line.

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* BIN.LoadExeYA * BIN.LoadExeYA
* in : * in :
@ -177,6 +176,7 @@ BIN.InstallDRV ldy #H.BIN.DRV.CODE.O
rts rts
.10 inc DevMgr.Count .10 inc DevMgr.Count
>SYSCALL GetDevByIDA >SYSCALL GetDevByIDA
>STYA ZPPtr2 setup Ptr2 to dest HEADER >STYA ZPPtr2 setup Ptr2 to dest HEADER
@ -197,12 +197,12 @@ BIN.InstallDRV ldy #H.BIN.DRV.CODE.O
dey dey
bpl .1 bpl .1
ldy #S.DEV.JMP+1 Setup Main JMP ldy #S.DEV.DRV.JMP+1 Setup Main JMP
lda DevMgr.Free+1 lda DevMgr.Free+1
sta (ZPPtr2),y sta (ZPPtr2),y
tax tax
dey #S.DEV.JMP dey
lda DevMgr.Free lda DevMgr.Free
sta (ZPPtr2),y sta (ZPPtr2),y

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #FPutCAY * #FPutCAY
* Print A (char) to File * Print A (char) to File

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #SScanF * #SScanF
* Scan a PStr (in progress) * Scan a PStr (in progress)

View File

@ -1,9 +1,18 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF *--------------------------------------
PullPtr1Ptr2Ptr3
sec
.HS 90 bcc
PullPtr1Ptr2 clc
>PULLW ZPPtr1
>PULLW ZPPtr2
bcc .9
>PULLW ZPPtr3
.9 rts
*-------------------------------------- *--------------------------------------
* Convert HEXBUF to ASCBUF decimal padded with 0 * Convert HEXBUF to ASCBUF decimal padded with 0
*-------------------------------------- *--------------------------------------

View File

@ -1,15 +1,10 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
DevMgr.LoMem .EQ * DevMgr.NUL.Code .DA .1 STATUS
*--------------------------------------
DevMgr.NUL.Code cld
jmp (.1,x)
.1 .DA DevMgr.NUL.Status
.DA DevMgr.BADCALL READBLOCK .DA DevMgr.BADCALL READBLOCK
.DA DevMgr.BADCALL WRITEBLOCK .DA DevMgr.BADCALL WRITEBLOCK
.DA DevMgr.BADCALL FORMAT .DA DevMgr.BADCALL FORMAT
@ -22,21 +17,18 @@ DevMgr.NUL.Code cld
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
DevMgr.NUL.Status .1 >LDYAI .2
>LDYAI DevMgr.NUL.Stat
clc clc
rts rts
*-------------------------------------- *--------------------------------------
DevMgr.NUL.Stat .DA #S.DEV.S.WRITE+S.DEV.S.READ .2 .DA #S.DEV.S.WRITE+S.DEV.S.READ
.DA #0,#0,#0 .DA #0,#0,#0
>PSTR "NULL DEVICE " >PSTR "NULL DEVICE "
.DA #S.DEVSTAT.TYPE.CHAR .DA #S.DEVSTAT.TYPE.CHAR
.DA #0 .DA #0
.DA $0900 .DA $0900
*-------------------------------------- *--------------------------------------
DevMgr.SYS.Code cld DevMgr.SYS.Code .DA .1 STATUS
jmp (.1,x)
.1 .DA DevMgr.SYS.Status
.DA DevMgr.BADCALL READBLOCK .DA DevMgr.BADCALL READBLOCK
.DA DevMgr.BADCALL WRITEBLOCK .DA DevMgr.BADCALL WRITEBLOCK
.DA DevMgr.BADCALL FORMAT .DA DevMgr.BADCALL FORMAT
@ -47,16 +39,11 @@ DevMgr.SYS.Code cld
.DA DevMgr.SYS.Read .DA DevMgr.SYS.Read
.DA DevMgr.SYS.Write .DA DevMgr.SYS.Write
*-------------------------------------- *--------------------------------------
DevMgr.BADCALL lda #MLI.ERR.BADCALL .1 >LDYAI .2
sec
rts
*--------------------------------------
DevMgr.SYS.Status
>LDYAI DevMgr.SYS.Stat
clc clc
rts rts
*-------------------------------------- *--------------------------------------
DevMgr.SYS.Stat .DA #S.DEV.S.WRITE+S.DEV.S.READ .2 .DA #S.DEV.S.WRITE+S.DEV.S.READ
.DA #0,#0,#0 .DA #0,#0,#0
>PSTR "A2osX SYS Screen" >PSTR "A2osX SYS Screen"
.DA #S.DEVSTAT.TYPE.CHAR .DA #S.DEVSTAT.TYPE.CHAR
@ -288,6 +275,10 @@ DevMgr.SYS.TITLE >CSTR "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.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.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.BADCALL lda #MLI.ERR.BADCALL
sec
rts
*--------------------------------------
DevMgr.FreeMem .EQ * DevMgr.FreeMem .EQ *
MAN MAN
SAVE SYS/KERNEL.S.D01 SAVE SYS/KERNEL.S.D01

View File

@ -1,11 +1,10 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
DevMgr.Stat .DA DevMgr.LoMem DevMgr.Stat .DA DevMgr.NUL.Code
DevMgr.Free .DA DevMgr.FreeMem DevMgr.Free .DA DevMgr.FreeMem
.DA DevMgr.HiMem .DA DevMgr.HiMem
DevMgr.Count .DA #2 NUL,SYS DevMgr.Count .DA #2 NUL,SYS

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #GetDevByIDA * #GetDevByIDA
* ##IN: * ##IN:
@ -16,20 +15,17 @@ AUTO 6
K.GetDevByIDA cmp DevMgr.Count K.GetDevByIDA cmp DevMgr.Count
bcs K.GetDevDNF bcs K.GetDevDNF
pha save ID
asl asl
asl asl
asl asl
asl
php
clc
adc #DevMgr.Table adc #DevMgr.Table
tay tay
pla
php
lsr
lsr
lsr
plp plp
lda #0
adc /DevMgr.Table adc /DevMgr.Table
rts CC rts CC
*/-------------------------------------- */--------------------------------------
@ -43,13 +39,12 @@ K.GetDevByIDA cmp DevMgr.Count
*\-------------------------------------- *\--------------------------------------
K.GetDevByNameYA K.GetDevByNameYA
>STYA ZPPtr1 >STYA ZPPtr1
>LDYAI DevMgr.Table+S.DEV.F >LDYAI DevMgr.Table+S.DEV.NAME
>STYA ZPPtr2 >STYA ZPPtr2
ldx #0 ldx #0
.1 lda (ZPPtr2) .1 lda (ZPPtr2)
and #S.DEV.F.LEN
cmp (ZPPtr1) cmp (ZPPtr1)
bne .3 bne .3
@ -64,10 +59,10 @@ K.GetDevByNameYA
lda ZPPtr2 lda ZPPtr2
sec sec
sbc #S.DEV.F sbc #S.DEV.NAME
tay tay
lda ZPPtr2+1 lda ZPPtr2+1
sbc /S.DEV.F sbc /S.DEV.NAME
clc clc
rts rts
@ -116,19 +111,10 @@ K.MkNodYA jsr K.GetDevByNameYA Ptr1=NAME
lda (pDev),y lda (pDev),y
bit #S.DEV.S.BLOCK bit #S.DEV.S.BLOCK
bne .99 bne .99
lda (pDev)
sta .2+1
sta .4+1
ldy #1
lda (pDev),y
sta .3+1
sta .4+2
txa Pass DEV.ID to OPEN txa Pass DEV.ID to OPEN
ldx #DEVMGR.OPEN ldx #DEVMGR.OPEN
jsr .4 jsr pDevJmp
bcs .9 bcs .9
>PUSHWI S.NODE.DEV >PUSHWI S.NODE.DEV
@ -142,17 +128,17 @@ K.MkNodYA jsr K.GetDevByNameYA Ptr1=NAME
lda #S.NODE.T.CDEV lda #S.NODE.T.CDEV
sta (ZPPtr3),y sta (ZPPtr3),y
iny #S.NODE.DEV.ID ldy #S.NODE.DEV.ID
.1 lda #$ff Self Modified .1 lda #$ff Self Modified
sta (ZPPtr3),y sta (ZPPtr3),y
iny #S.NODE.DEV.JMP ldy #S.NODE.DEV.JMP
.2 lda #$ff lda pDev
sta (ZPPtr3),y sta (ZPPtr3),y
iny ##S.NODE.DEV.JMP+1 iny
.3 lda #$ff lda pDev+1
sta (ZPPtr3),y sta (ZPPtr3),y
txa txa
clc clc
@ -160,8 +146,7 @@ K.MkNodYA jsr K.GetDevByNameYA Ptr1=NAME
.99 lda #MLI.ERR.IO .99 lda #MLI.ERR.IO
sec sec
rts rts
.4 jmp $ffff
*/-------------------------------------- */--------------------------------------
* #MkNodA * #MkNodA
* return a hFile for a given Socket * return a hFile for a given Socket

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #OpenDirYA * #OpenDirYA
* ##In: * ##In:

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* K.LoadDrvYA * K.LoadDrvYA
* in : * in :

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #ExpandPStrYA * #ExpandPStrYA
* ##In: * ##In:

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* EVT.GetEvents : * EVT.GetEvents :
* IN : * IN :
@ -12,7 +11,9 @@ AUTO 6
* CC * event in YA * CC * event in YA
* (pEvent) * (pEvent)
*-------------------------------------- *--------------------------------------
EVT.GetEvents stz pEvent point to start of event list EVT.GetEvents lda #EvtMgr.Table
sta pEvent point to start of event list
stz EvtMgr.Count reset Size stz EvtMgr.Count reset Size
lda K.IrkMgr.VBL do we have IRQ enabled for VBL ? lda K.IrkMgr.VBL do we have IRQ enabled for VBL ?

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* For All SYS.xxxx calls, X = #SYSCall * For All SYS.xxxx calls, X = #SYSCall
* Must be kept in X before calling * Must be kept in X before calling
@ -169,10 +168,10 @@ K.FReadA jsr PFT.CheckNodeA
* Y,A = Bytes Written * Y,A = Bytes Written
*\-------------------------------------- *\--------------------------------------
K.FWriteAY jsr PFT.CheckNodeA K.FWriteAY jsr PFT.CheckNodeA
sty MLICALL.TMPBUF sty K.FWriteAY.Buf
ldx #MLIWRITE ldx #MLIWRITE
K.FReadWrite.0 jsr FILE.SetupPrt1A K.FReadWrite.0 jsr FILE.SetupPrt1A
>LDYAI MLICALL.TMPBUF >LDYAI K.FWriteAY.Buf
>STYA MLICALL.PARAMS+2 >STYA MLICALL.PARAMS+2
lda #1 lda #1
sta MLICALL.PARAMS+4 sta MLICALL.PARAMS+4
@ -180,8 +179,9 @@ K.FReadWrite.0 jsr FILE.SetupPrt1A
lda #4 Param Count = 4 for MLIREAD & MLIWRITE lda #4 Param Count = 4 for MLIREAD & MLIWRITE
jsr A2osX.MLICALL jsr A2osX.MLICALL
bcs .9 bcs .9
lda MLICALL.TMPBUF lda K.FWriteAY.Buf
.9 rts .9 rts
K.FWriteAY.Buf .BS 1
*/-------------------------------------- */--------------------------------------
* #FRead * #FRead
* Read bytes from file * Read bytes from file

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #FileSearch * #FileSearch
* Search a file in the provided PATH list * Search a file in the provided PATH list

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* SYSCALL (AUXLC to AUXLC) * SYSCALL (AUXLC to AUXLC)
* Used by user & kernel for inter bank Calls * Used by user & kernel for inter bank Calls

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
Kernel.Init2 sei Kernel.Init2 sei

View File

@ -1,14 +1,16 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
Kernel.Init3 jsr MemMgrInit Kernel.Init3 sta SETALTZP
bit RRAMWRAMBNK1
bit RRAMWRAMBNK1
jsr MemMgrInit
jsr PS0Init jsr PS0Init
bcs * bcs *
>LDYAI MSG.Init3 >LDYAI MSG.Init3
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
@ -128,14 +130,18 @@ PS0Init ldx #S.DEV*2 NUL,SYS
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
DevMgr.NUL .DA DevMgr.NUL.Code DevMgr.NUL cld
jmp (DevMgr.NUL.Code,x)
.DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.OPENED .DA #S.DEV.S.WRITE+S.DEV.S.READ+S.DEV.S.OPENED
.BS 6
.DA #3 .DA #3
.AS "NUL" NAME .AS "NUL" NAME
.HS 00 NAME must Be 4 bytes long .HS 00 NAME must Be 4 bytes long
*-------------------------------------- *--------------------------------------
DevMgr.SYS .DA DevMgr.SYS.Code DevMgr.SYS cld
jmp (DevMgr.SYS.Code,x)
.DA #S.DEV.S.WRITE+S.DEV.S.READ .DA #S.DEV.S.WRITE+S.DEV.S.READ
.BS 6
.DA #3 .DA #3
.AS "SYS" NAME .AS "SYS" NAME
.HS 00 NAME must Be 4 bytes long .HS 00 NAME must Be 4 bytes long
@ -247,7 +253,7 @@ DevMgrInit stz ZPPtr1
lda #$C1 lda #$C1
sta ZPPtr1+1 sta ZPPtr1+1
lda #'1' lda #'1'
sta DEV.HEADER+5 S1Dy sta DEV.HEADER+S.DEV.NAME+4 S1Dy
.1 ldx #SmartPort.SIG-SmartPort.OFS-1 .1 ldx #SmartPort.SIG-SmartPort.OFS-1
@ -301,11 +307,11 @@ DevMgrInit.SP ldy #$ff
adc #3 Compute smartport entry point adc #3 Compute smartport entry point
sta .1+1 sta .1+1
sta .3+1 sta .3+1
sta DEV.HEADER+S.DEV.JMP sta DEV.HEADER+S.DEV.ROM.JMP
lda ZPPtr1+1 lda ZPPtr1+1
sta .1+2 sta .1+2
sta .3+2 sta .3+2
sta DEV.HEADER+S.DEV.JMP+1 sta DEV.HEADER+S.DEV.ROM.JMP+1
.1 jsr $ffff Self Modified .1 jsr $ffff Self Modified
.DA #0 Status .DA #0 Status
@ -314,14 +320,12 @@ DevMgrInit.SP ldy #$ff
lda SP.STATUS1 lda SP.STATUS1
beq .9 no device beq .9 no device
.2 lda #1 .2 lda #'1'
sta DEV.HEADER.STATUS+1 sta DEV.HEADER+S.DEV.NAME+2 SxD1
lda #'1'
sta DEV.HEADER+7 SxD1
.3 jsr $ffff Self Modified .3 jsr $ffff Self Modified
.DA #0 Status .DA #0 Status
.DA DEV.HEADER.STATUS .DA DEV.HEADER+S.DEV.S
bcs .7 bcs .7
lda SP.STATUS2+S.DEVSTAT.S lda SP.STATUS2+S.DEVSTAT.S
sta DEV.HEADER+S.DEV.S sta DEV.HEADER+S.DEV.S
@ -337,7 +341,8 @@ DevMgrInit.SP ldy #$ff
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
DevMgrInit.DII DevMgrInit.DII >LDYAI A2osX.DIIDrv
>STYA DEV.HEADER+S.DEV.ROM.JMP
rts rts
*-------------------------------------- *--------------------------------------
DevMgrInit.BLK DevMgrInit.BLK
@ -365,8 +370,14 @@ DevMgrInit.AddDev
sec sec
rts rts
*-------------------------------------- *--------------------------------------
DEV.HEADER .BS 2 JMP DEV.HEADER clc
DEV.HEADER.STATUS .DA #S.DEV.S.BLOCK S jmp ($ffff,x)
.DA #S.DEV.S.BLOCK S
.BS 1 F
.BS 1 BUS.ID
.BS 1 DEV.ID
.BS 2 ROM.JMP
.BS 1
>PSTR "S1D1" 5 bytes >PSTR "S1D1" 5 bytes
*-------------------------------------- *--------------------------------------
SmartPort.OFS .HS 07010305 SmartPort.OFS .HS 07010305

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* called directly by IRQ Vector $FFFE in AuxLC * called directly by IRQ Vector $FFFE in AuxLC
* Must keep: * Must keep:
@ -115,13 +114,8 @@ K.IrqMgrVBL.0n .BS 1
K.IrqMgrVBL.MSM jmp $0000 K.IrqMgrVBL.MSM jmp $0000
K.IrqMgrVBL.MRM jmp $0000 K.IrqMgrVBL.MRM jmp $0000
*-------------------------------------- *--------------------------------------
K.IrqHandlerJMP lda ($fe) K.IrqHandlerJMP ldx #DEVMGR.IRQ
sta .1+1 jmp ($fe)
ldy #1
lda ($fe),y
sta .1+2
ldx #DEVMGR.IRQ
.1 jmp $ffff
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE SYS/KERNEL.S.IRQ SAVE SYS/KERNEL.S.IRQ

View File

@ -3,7 +3,6 @@ PREFIX /A2OSX.SRC
NEW NEW
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* $D000-D0FF KERNEL.SYSCALL Jmp Table * $D000-D0FF KERNEL.SYSCALL Jmp Table
*-------------------------------------- *--------------------------------------

View File

@ -3,7 +3,6 @@ PREFIX /A2OSX.SRC
NEW NEW
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* K.LoadLibYA * K.LoadLibYA
* in : * in :

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* !!!!!! DO NOT USE ZPPtrs !!!!! * !!!!!! DO NOT USE ZPPtrs !!!!!
*-------------------------------------- *--------------------------------------

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* K.PFTAdd * K.PFTAdd
* In : * In :

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #ExecProcessNewEnvYA * #ExecProcessNewEnvYA
* #ExecProcessYA (Blocking Parent PID) * #ExecProcessYA (Blocking Parent PID)

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
SYS.BASL0 .EQ $800 SYS.BASL0 .EQ $800
*-------------------------------------- *--------------------------------------
@ -20,7 +19,8 @@ K.KernelRun jsr TSK.TskMgrRun
jsr PS.Select0 jsr PS.Select0
stz pEvent lda #EvtMgr.Table
sta pEvent
.1 lda (pEvent) .1 lda (pEvent)
beq .3 beq .3
@ -71,8 +71,9 @@ K.KernelRun jsr TSK.TskMgrRun
beq K.KernelRun beq K.KernelRun
tax tax
lda A2osX.SCRNDEVS-1,x No device claimed this screen
beq K.KernelRun lda A2osX.SCRNDEVS-1,x
beq K.KernelRun No device claimed this screen
jsr K.GetDevByIDA x unmodified..... jsr K.GetDevByIDA x unmodified.....
bcs K.KernelRun ??? bcs K.KernelRun ???
@ -80,15 +81,10 @@ K.KernelRun jsr TSK.TskMgrRun
stx A2osX.ASCREEN stx A2osX.ASCREEN
>STYA pDev >STYA pDev
lda (pDev)
sta .5+1
ldy #1
lda (pDev),y
sta .5+2
ldx #DEVMGR.CONTROL ldx #DEVMGR.CONTROL
jsr .5 jsr pDevJmp
jmp K.KernelRun jmp K.KernelRun
.5 jmp $ffff
*-------------------------------------- *--------------------------------------
RUN.DumpEvent ldy #S.EVT-1 RUN.DumpEvent ldy #S.EVT-1

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*/-------------------------------------- */--------------------------------------
* #NewPStrYA * #NewPStrYA
* Create a new copy of PSTR * Create a new copy of PSTR

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* https://www.cise.ufl.edu/~cop4600/cgi-bin/lxr/http/source.cgi/lib/ansi/gmtime.c * https://www.cise.ufl.edu/~cop4600/cgi-bin/lxr/http/source.cgi/lib/ansi/gmtime.c
*-------------------------------------- *--------------------------------------

View File

@ -1,9 +1,8 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF
*-------------------------------------- *--------------------------------------
* TSK.TskMgrRun * TSK.TskMgrRun
*-------------------------------------- *--------------------------------------
@ -135,7 +134,8 @@ TSK.DispatchEvents
jsr PS.Select jsr PS.Select
stz pEvent Select first event in list lda #EvtMgr.Table
sta pEvent Select first event in list
lda EVTMGR.COUNT lda EVTMGR.COUNT
sta TSKMGR.EVENTCNT sta TSKMGR.EVENTCNT

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $900 LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -20,8 +20,6 @@ ZPPtr2 .EQ ZPKERNEL+2 (could be trashed by any JSR)
ZPPtr3 .EQ ZPKERNEL+4 ZPPtr3 .EQ ZPKERNEL+4
ZPPtr4 .EQ ZPKERNEL+6 ZPPtr4 .EQ ZPKERNEL+6
* Kernel Init Stage 2
sei sei
ldx #$FF init 6502 stack to highest ldx #$FF init 6502 stack to highest
txs txs
@ -36,25 +34,19 @@ ZPPtr4 .EQ ZPKERNEL+6
jsr Kernel.Init2 jsr Kernel.Init2
>DEBUGOA >DEBUGOA
* Kernel Init Stage 3
sta SETALTZP
bit RRAMWRAMBNK1
bit RRAMWRAMBNK1
jmp Kernel.Init3 jmp Kernel.Init3
*--------------------------------------
.INB X.PRINTF.S .INB X.PRINTF.S
.INB SYS/KERNEL.S.INIT2 .INB SYS/KERNEL.S.INIT2
.INB SYS/KERNEL.S.INIT3 .INB SYS/KERNEL.S.INIT3
*--------------------------------------
* Global Page * Global Page
A2osX.GP .EQ * A2osX.GP .EQ *
.PH $BD00 .PH $BD00
.INB SYS/KERNEL.S.GP .INB SYS/KERNEL.S.GP
.EP .EP
A2osX.GP.END .EQ * A2osX.GP.SIZE .EQ *-A2osX.GP
* LC AUX $D000 BANK1 API Calls $00-$3E * LC AUX $D000 BANK1 API Calls $00-$3E
@ -71,7 +63,8 @@ A2osX.D001 .EQ *
.INB SYS/KERNEL.S.PFT .INB SYS/KERNEL.S.PFT
.INB SYS/KERNEL.S.BIN .INB SYS/KERNEL.S.BIN
.EP .EP
A2osX.D001.END .EQ * A2osX.D001.SIZE .EQ *-A2osX.D001
* LC AUX $D000 BANK2 API Calls $40-$8E * LC AUX $D000 BANK2 API Calls $40-$8E
@ -89,7 +82,7 @@ A2osX.D002 .EQ *
.INB SYS/KERNEL.S.EVT .INB SYS/KERNEL.S.EVT
.INB SYS/KERNEL.S.TSK .INB SYS/KERNEL.S.TSK
.EP .EP
A2osX.D002.END .EQ * A2osX.D002.SIZE .EQ *-A2osX.D002
* LC AUX $E000 API Calls $80-$FE * LC AUX $E000 API Calls $80-$FE
@ -101,31 +94,19 @@ A2osX.E000 .EQ *
.INB SYS/KERNEL.S.MEM .INB SYS/KERNEL.S.MEM
.INB SYS/KERNEL.S.CNV .INB SYS/KERNEL.S.CNV
.INB SYS/KERNEL.S.CHR .INB SYS/KERNEL.S.CHR
*--------------------------------------
PullPtr1Ptr2Ptr3
sec
.HS 90 bcc
PullPtr1Ptr2 clc
>PULLW ZPPtr1
>PULLW ZPPtr2
bcc .9
>PULLW ZPPtr3
.9 rts
* Make sure KERNEL.S.D01 is the last one * Make sure KERNEL.S.D01 is the last one
.INB SYS/KERNEL.S.D01 .INB SYS/KERNEL.S.D01
.EP .EP
A2osX.E000.END .EQ * A2osX.E000.SIZE .EQ *-A2osX.E000
*--------------------------------------
* CONTROL SECTION : * CONTROL SECTION :
.LIST ON .LIST ON
A2osX.GP.SIZE .EQ A2osX.GP.END-A2osX.GP Check.GP .EQ A2osX.GP.SIZE
A2osX.D001.SIZE .EQ A2osX.D001.END-A2osX.D001 Check.D001 .EQ A2osX.D001.SIZE
A2osX.D002.SIZE .EQ A2osX.D002.END-A2osX.D002 Check.D002 .EQ A2osX.D002.SIZE
A2osX.E000.SIZE .EQ A2osX.E000.END-A2osX.E000 Check.E000 .EQ A2osX.E000.SIZE
.LIST OFF .LIST OFF
.DO A2osX.GP.SIZE>$1E0 .DO A2osX.GP.SIZE>$1E0
.LIST ON .LIST ON
* !!!!!!!!! ERROR:GP too big !!!!!!!!!! * !!!!!!!!! ERROR:GP too big !!!!!!!!!!
@ -140,8 +121,7 @@ A2osX.E000.SIZE .EQ A2osX.E000.END-A2osX.E000
.LIST ON .LIST ON
* !!!!!!!!! ERROR:BNK2 too big !!!!!!!! * !!!!!!!!! ERROR:BNK2 too big !!!!!!!!
.LIST OFF .LIST OFF
.FIN .FIN
MAN MAN
SAVE SYS/KERNEL.S SAVE SYS/KERNEL.S
ASM ASM