mirror of https://github.com/A2osX/A2osX.git
Kernel 0.93++
This commit is contained in:
parent
92fe5049d4
commit
c8d16b5b6c
Binary file not shown.
|
@ -3,12 +3,16 @@ NEW
|
|||
.LIST OFF
|
||||
*--------------------------------------
|
||||
HIS.Init >LDYAI HISTORY.MAX Get a buffer for History
|
||||
>SYSCALL GetMem0
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPTR1
|
||||
txa
|
||||
>STA.G HIS.hBuf
|
||||
|
||||
lda #0
|
||||
sta (ZPPTR1)
|
||||
|
||||
>STA.G HIS.Count
|
||||
>STA.G HIS.Index
|
||||
.9 rts
|
||||
|
@ -17,6 +21,7 @@ HIS.Add >LDA.G HIS.hBuf
|
|||
beq .9
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPPTR1
|
||||
|
||||
.10 lda #$ff
|
||||
jsr HIS.GetA Y=ending 0
|
||||
phy
|
||||
|
|
|
@ -268,7 +268,7 @@ SYS.LoadTxtFile .EQ $AA
|
|||
SYS.GetMemStat .EQ $AC
|
||||
SYS.StrVDup .EQ $AE
|
||||
|
||||
SYS.Str2StrV .EQ $B0
|
||||
SYS.StrVGet .EQ $B0
|
||||
SYS.ArgV .EQ $B2
|
||||
SYS.Expand .EQ $B4
|
||||
SYS.FileSearch .EQ $B6
|
||||
|
|
|
@ -600,17 +600,14 @@ LDR.AddExtraDevs
|
|||
sta LDR.SlotIdx
|
||||
|
||||
.1 ldx LDR.SlotIdx
|
||||
ldy LDR.SlotDevType-1,x
|
||||
bne .8
|
||||
|
||||
lda LDR.SlotDevCnt-1,x
|
||||
cmp #3
|
||||
bcc .8
|
||||
|
||||
ldy LDR.SlotDevType-1,x
|
||||
bne .2
|
||||
|
||||
jsr LDR.AddExtraBlkDevs
|
||||
bra .8
|
||||
|
||||
.2 jsr LDR.AddExtraSPDevs
|
||||
jsr LDR.AddExtraSPDevs
|
||||
|
||||
.8 dec LDR.SlotIdx
|
||||
bne .1
|
||||
|
@ -680,8 +677,8 @@ LDR.AddSPDevs jsr LDR.SetDevID setup the devid byte from attributes
|
|||
.DA LDR.SPStatus.P
|
||||
bcs .7
|
||||
|
||||
lda LDR.SPStatus.Buf
|
||||
bpl .7 not a block device
|
||||
* lda LDR.SPStatus.Buf
|
||||
* bpl .7 not a block device
|
||||
|
||||
ldx LDR.SlotIdx
|
||||
inc LDR.SlotDevCnt-1,x
|
||||
|
@ -734,9 +731,6 @@ LDR.AddBlkDevs php how many drives (carry).
|
|||
LDR.AddBlkDevs.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
LDR.AddExtraBlkDevs
|
||||
rts
|
||||
*--------------------------------------
|
||||
LDR.AddExtraSPDevs
|
||||
ldy #$FF get smartport address.
|
||||
lda (idxl),y
|
||||
|
@ -768,8 +762,8 @@ LDR.AddExtraSPDevs
|
|||
.1 jsr spvect do status call
|
||||
.HS 00
|
||||
.DA LDR.SPStatus.P
|
||||
lda LDR.SPStatus.Buf is this a block device?
|
||||
bpl .2
|
||||
* lda LDR.SPStatus.Buf is this a block device?
|
||||
* bpl .2
|
||||
|
||||
jsr LDR.MountSPDevs
|
||||
bcs .8
|
||||
|
|
|
@ -127,7 +127,9 @@ DRV.BLK txa
|
|||
iny
|
||||
lda (pFD),y
|
||||
sta .3+2
|
||||
|
||||
jsr GO.ProDOS
|
||||
|
||||
ldx #5
|
||||
.2 lda DRV.BLK.PARAMS,x
|
||||
sta $42,x
|
||||
|
@ -164,6 +166,15 @@ DRV.SmartPort cld
|
|||
lda (pFD),y
|
||||
sta .1+2
|
||||
|
||||
* cmp #$D0
|
||||
* bcc .1
|
||||
* jsr GO.ProDOS Remapped SP
|
||||
|
||||
* jsr .1
|
||||
|
||||
* jsr GO.A2osX
|
||||
* rts
|
||||
|
||||
.1 jsr $ffff
|
||||
.2 .BS 1
|
||||
.3 .BS 2
|
||||
|
|
|
@ -689,24 +689,24 @@ DevMgrInit >LDYAI MSG.DEV
|
|||
|
||||
.4 ldx #SmartPort.SIG-SmartPort.OFS-1
|
||||
|
||||
.5 ldy SmartPort.OFS,x Check if there is a smartport firmware
|
||||
.5 ldy SmartPort.OFS,x Check if there is a smartport firmware
|
||||
lda (ZPPtr1),y
|
||||
cmp SmartPort.SIG,x
|
||||
bne .8 not a Disk Controller...
|
||||
bne .8 not a Disk Controller...
|
||||
|
||||
dex
|
||||
bpl .5
|
||||
|
||||
ldy #7
|
||||
lda (ZPPtr1),y
|
||||
bne .6 $Cn07=00 : SmartPort
|
||||
bne .6 $Cn07=00 : SmartPort
|
||||
|
||||
jsr DevMgrInit.SP
|
||||
lda #A2osX.S.SP
|
||||
bra .7
|
||||
|
||||
.53 jsr DevMgrInit.REMAP Remapped SP devices....
|
||||
bra .8 don't mark slot as busy
|
||||
.53 jsr DevMgrInit.RSP Remapped SP devices....
|
||||
bra .8 don't mark slot as busy
|
||||
|
||||
.6 jsr DevMgrInit.BLK
|
||||
lda #A2osX.S.BLK
|
||||
|
@ -722,23 +722,15 @@ DevMgrInit >LDYAI MSG.DEV
|
|||
rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.RAM ldx #0
|
||||
>LDYAI DRV.RamDrive
|
||||
bra DevMgrInit.AddBDev
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
DevMgrInit.DII ldx #2
|
||||
>LDYAI DRV.DiskII
|
||||
bra DevMgrInit.AddBDev
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
DevMgrInit.USR ldx #4
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
DevMgrInit.BLK ldx #6
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
DevMgrInit.REMAP
|
||||
ldx #10
|
||||
*--------------------------------------
|
||||
>LDYAI DRV.BlkDevice
|
||||
bra DevMgrInit.AddBDev
|
||||
*--------------------------------------
|
||||
DevMgrInit.SP ldy #$ff
|
||||
|
@ -746,16 +738,22 @@ DevMgrInit.SP ldy #$ff
|
|||
clc
|
||||
adc #3 Compute smartport entry point
|
||||
sta FD.BDEV+S.FD.DEV.BUSPTR
|
||||
|
||||
ldx #8
|
||||
>LDYAI DRV.SmartPort
|
||||
.HS 2C BIT ABS
|
||||
|
||||
DevMgrInit.RSP ldx #10
|
||||
*--------------------------------------
|
||||
DevMgrInit.AddBDev
|
||||
>LDYA DRV.BLKDEV,x
|
||||
>STYA FD.BDEV+S.FD.DEV.DRVPTR
|
||||
>PUSHW MSG.BLKDEV.TBL,x
|
||||
>PUSHW FD.BDEV+S.FD.DEV.BUSPTR
|
||||
>PUSHWI FD.BDEV.NAME
|
||||
>PUSHBI 4
|
||||
>PUSHBI 6
|
||||
>LDYAI MSG.BLKDEV
|
||||
>SYSCALL2 printf
|
||||
|
||||
>PUSHWI FD.BDEV.NAME
|
||||
>LDYAI FD.BDEV
|
||||
>SYSCALL2 MKDev
|
||||
|
@ -1136,7 +1134,8 @@ SYSSCREEN.TOP .AZ "A2osX 0.93 Console"
|
|||
MSG.Init3 .AS "A2osX[Stage3]:Init"
|
||||
.AZ "\r\n*** Press Ctrl-R for ROOT Mode ***\r\n"
|
||||
MSG.DEV .AZ "Device Manager..."
|
||||
MSG.BLKDEV .AZ " Adding Device: /dev/%s, Type: %s\r\n"
|
||||
*--------------------------------------
|
||||
MSG.BLKDEV .AZ " Adding Device: /dev/%s, Addr:%H, Type: %s\r\n"
|
||||
MSG.BLKDEV.TBL .DA MSG.BLKDEV.RAM
|
||||
.DA MSG.BLKDEV.DII
|
||||
.DA MSG.BLKDEV.USR
|
||||
|
@ -1146,9 +1145,16 @@ MSG.BLKDEV.TBL .DA MSG.BLKDEV.RAM
|
|||
MSG.BLKDEV.RAM .AZ "/RAM Disk"
|
||||
MSG.BLKDEV.DII .AZ "Disk ]["
|
||||
MSG.BLKDEV.USR .AZ "User"
|
||||
MSG.BLKDEV.BLK .AZ "Generic Block"
|
||||
MSG.BLKDEV.SP .AZ "Smartport"
|
||||
MSG.BLKDEV.RSP .AZ "Remapped Smartport"
|
||||
MSG.BLKDEV.BLK .AZ "Generic Block"
|
||||
MSG.BLKDEV.SP .AZ "Smart Port"
|
||||
MSG.BLKDEV.RSP .AZ "Remapped SP"
|
||||
DRV.BLKDEV .DA DRV.RamDrive
|
||||
.DA DRV.DiskII
|
||||
.DA DRV.BlkDevice
|
||||
.DA DRV.BlkDevice
|
||||
.DA DRV.SmartPort
|
||||
.DA DRV.BlkDevice
|
||||
*--------------------------------------
|
||||
MSG.IRQ .AZ "Interrupt Manager..."
|
||||
MSG.IRQ.IIGS .AZ " Apple IIgs VBL IRQ Activated."
|
||||
MSG.IRQ.VBL .AZ " Mouse Card VBL IRQ Activated."
|
||||
|
|
|
@ -106,7 +106,7 @@ K.SYSCALL .DA 0 $00
|
|||
.DA K.GetMemStat
|
||||
.DA K.StrVDup
|
||||
|
||||
.DA K.Str2StrV $B0
|
||||
.DA K.StrVGet $B0
|
||||
.DA K.ArgV
|
||||
.DA K.Expand
|
||||
.DA K.FileSearch
|
||||
|
|
|
@ -8,16 +8,61 @@ NEW
|
|||
* X = hStrV
|
||||
* Y,A = Ptr
|
||||
*\--------------------------------------
|
||||
K.NewStrV
|
||||
*K.NewStrV
|
||||
*/--------------------------------------
|
||||
* # StrVGet
|
||||
* **In:**
|
||||
* A = hStrV
|
||||
* X = index
|
||||
* ## ASM
|
||||
* `>PUSHB hSTRV`
|
||||
* `>PUSHW index`
|
||||
* `>SYSCALL StrVGet`
|
||||
* ## RETURN VALUE
|
||||
* Y,A = Ptr
|
||||
* CC: Y,A = Ptr
|
||||
* CS: Y,A = NULL
|
||||
*\--------------------------------------
|
||||
K.StrVGet
|
||||
K.StrVGet >PULLA index
|
||||
eor #$ff
|
||||
sta ZPPtr2
|
||||
|
||||
>PULLA
|
||||
eor #$ff
|
||||
sta ZPPtr2+1
|
||||
|
||||
>PULLA
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPPtr1 strV
|
||||
|
||||
.1 inc ZPPtr2
|
||||
bne .2
|
||||
|
||||
inc ZPPtr2
|
||||
beq .8
|
||||
|
||||
.2 jsr STRV.NStrPtr1
|
||||
bcc .1
|
||||
|
||||
.9 rts
|
||||
|
||||
.8 lda (ZPPtr1)
|
||||
tay
|
||||
dec
|
||||
beq .9
|
||||
|
||||
>LDYA ZPPtr1
|
||||
clc
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # StrVAdd
|
||||
* ## ASM
|
||||
* `>PUSHB hSTRV`
|
||||
* `>PUSHW str`
|
||||
* `>SYSCALL StrVAdd`
|
||||
* ## RETURN VALUE
|
||||
*
|
||||
*\--------------------------------------
|
||||
*K.StrVAdd >PULLW ZPPtr2 str
|
||||
* >PULLA
|
||||
* >SYSCALL GetMemPtr
|
||||
* >STYA ZPPtr1
|
||||
*/--------------------------------------
|
||||
* # StrVDup
|
||||
* **In:**
|
||||
|
@ -92,7 +137,7 @@ K.StrVDup >STYA ZPPtr1
|
|||
.9 rts
|
||||
*/--------------------------------------
|
||||
* # Str2StrV
|
||||
* Expand String and convert to ArgV List
|
||||
* Expand String and convert to StrV List
|
||||
* ## C
|
||||
* short int str2strv(char* args, char* argv[])
|
||||
* ## ASM
|
||||
|
@ -102,8 +147,6 @@ K.StrVDup >STYA ZPPtr1
|
|||
* ## RETURN VALUE
|
||||
* A = Arg count
|
||||
*\--------------------------------------
|
||||
ARG.bInQuote .EQ ZPPtr3
|
||||
*--------------------------------------
|
||||
K.Str2StrV jsr K.Expand
|
||||
|
||||
bcs .9
|
||||
|
@ -112,21 +155,25 @@ K.Str2StrV jsr K.Expand
|
|||
|
||||
>PULLW ZPPtr2 Get target buffer
|
||||
ldx #0 Arg Count
|
||||
stz ARG.bInQuote
|
||||
ldy #0 bInQuote
|
||||
|
||||
.1 jsr SHARED.GetCharPtr1
|
||||
beq .8
|
||||
|
||||
cmp #C.SPACE
|
||||
beq .1 skip leading spaces
|
||||
|
||||
.2 cmp #'"' found a quote ?
|
||||
bne .3
|
||||
lda ARG.bInQuote
|
||||
|
||||
tya
|
||||
eor #$ff
|
||||
sta ARG.bInQuote
|
||||
tay
|
||||
bra .7 skip quote and check next char
|
||||
|
||||
.3 cmp #C.SPACE
|
||||
bne .6 regular char ...store...
|
||||
bit ARG.bInQuote
|
||||
tya
|
||||
bmi .6 between quotes... store space...
|
||||
|
||||
inx Found one arg !!!
|
||||
|
@ -150,6 +197,31 @@ K.Str2StrV jsr K.Expand
|
|||
rts
|
||||
.9 >RET 2 Discard target buffer
|
||||
*--------------------------------------
|
||||
STRV.NStrPtr1 ldy #$ff
|
||||
|
||||
.1 iny
|
||||
|
||||
lda (ZPPtr1)
|
||||
beq .2
|
||||
|
||||
inc ZPPtr1
|
||||
bne .1
|
||||
inc ZPPtr1+1
|
||||
bra .1
|
||||
|
||||
.2 tya
|
||||
beq .9
|
||||
|
||||
inc ZPPtr1
|
||||
bne .8
|
||||
inc ZPPtr1+1 skip \0
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.STRV
|
||||
LOAD USR/SRC/SYS/KERNEL.S
|
||||
|
|
Loading…
Reference in New Issue