KERNEL: modification for CC (Slist API) updated FORTH,SH, CSH, SM....

KERNEL: modification for Softcard //e (may help...or not)
KERNEL: bugfix for VS/VE drive detetcion and report on KCONFIG
CC: some progress on STRUCT & UNION
SHARED/PrintF: removed support for /n..... (now in S-C MASM3.1 & A2osX-ASM)
This commit is contained in:
burniouf 2022-09-17 13:35:52 +02:00
parent a5ba00f1a6
commit 9e960a234e
39 changed files with 570 additions and 386 deletions

View File

@ -4,46 +4,59 @@
Multi-CPU macro assembler based on S-C MASM 3.0 dialect Multi-CPU macro assembler based on S-C MASM 3.0 dialect
Supported CPUs:
+ 6502
+ 65C02
+ 65R02
+ 65816
+ Z80
+ SWEET16
Table-driven, add your favorite CPU creating a new CPU asm.xxxx file.
## Difference with S-C MASM 3.0 ## Difference with S-C MASM 3.0
Symbols are case sensitive + Symbols are case sensitive
no .AC support + No .AC support
+ PC and global addresses are 32 bits
+ Local / Private labels are 16 bits range and from .1 to .255
## Directives ## Directives
| Code | Description | Compatibility | Status | Syntax | Comment | | Code | Description | Compatibility | Status | Syntax | Comment |
|-|-|-|-|-|-| |-|-|-|-|-|-|
| .AC | Ascii Compressed string| S-C | NOT IMPL. | | As strings are supposed to be printed with A2osX API, Printf cannot handle 'AC' compressed strings | | .AC | Ascii Compressed string| S-C | NOT IMPL. | | As strings are supposed to be printed with A2osX API, Printf cannot handle 'AC' compressed strings |
| .AS | Ascii String | S-C,A2osX | Working | `.AS dTEXTd` where d is any delimiter `.AS -"TEXT"`produce ascii code with b7=1 | | | .AS | Ascii String | S-C, A2osX | Working | `.AS dTEXTd` where d is any delimiter `.AS -"TEXT"`produce ascii code with b7=1 | |
| .AT | Ascii string Terminated | S-C,A2osX | Working | (same as above) | | | .AT | Ascii string Terminated | S-C, A2osX | Working | (same as above) | |
| .AZ | Ascii string Zero terminated | S-C,A2osX | Working | (same as above) | | | .AZ | Ascii string Zero terminated | S-C, A2osX | Working | (same as above) | |
| .BS | Block (Byte) Storage | S-C,A2osX | Working | `.BS count[,value]` | Reserves `count` bytes in output and sets them to `value` (or zero if omitted) | | .BS | Block (Byte) Storage | S-C, A2osX | Working | `.BS count[,value]` | Reserves `count` bytes in output and sets them to `value` (or zero if omitted) |
| .CS | C-string | S-C 3.1,A2osX | Working | | | | .CS | C-string | S-C 3.1, A2osX | Working | `.CS "text\a\b\e\f\n\r\n\r\t\v"` | |
| .CZ | C-String Zero terminated| S-C 3.1,A2osX | Working | | | | .CZ | C-String Zero terminated| S-C 3.1, A2osX | Working | (same as above) | ZERO-terminated |
| .DA | DAta value | S-C,A2osX | Working | `.DA value` | 2-byte address: `.DA $1234` only high byte: `.DA /$1234` only low byte: `.DA #$1234` | | .DA | DAta value | S-C, A2osX | Working | `.DA value` | 2-byte address: `.DA $1234` only high byte: `.DA /$1234` only low byte: `.DA #$1234` |
| .DO | conditional start | S-C,A2osX | Working | | | | .DO | conditional start | S-C, A2osX | Working | | |
| .DU,.DUMMY | begin DUmmy section | S-C,A2osX | Working | | | | .DU,.DUMMY | begin DUmmy section | S-C, A2osX | Working | | |
| .ED | End Dummy section | S-C,A2osX | Working | | | | .ED | End Dummy section | S-C, A2osX | Working | | |
| .ELSE | conditional ELSE | S-C,A2osX | Working | | | | .ELSE | conditional ELSE | S-C, A2osX | Working | | |
| .EM | End Macro | S-C,A2osX | Working | | | | .EM | End Macro | S-C, A2osX | Working | | |
| .EN | ENd of source code | S-C,A2osX | IGNORED | | | | .EN | ENd of source code | S-C, A2osX | IGNORED | | |
| .EP | End Phase | S-C,A2osX | Working | `.EP` | Conclude temporary addressing range started with `.PH` and resume prior assembly addressing | | .EP | End Phase | S-C, A2osX | Working | `.EP` | Conclude temporary addressing range started with `.PH` and resume prior assembly addressing |
| .EQ | EQuate | S-C,A2osX | Working | | | | .EQ | EQuate | S-C, A2osX | Working | | |
| .FIN | conditional end| S-C,A2osX | Working | | | | .FIN | conditional end| S-C, A2osX | Working | | |
| .HS | Hex String storage | S-C,A2osX | Working | `HS FE1A78` delimiter allowed : `HS 00.11,22` | | | .HS | Hex String storage | S-C, A2osX | Working | `HS FE1A78` delimiter allowed : `HS 00.11,22` | |
| .IN,.INB,.INBx | INline source | S-C,A2osX | Working | `.INB MYFILE` | `.IN` inlines full text, `.INB` inlines 1 block at a time during assembly | | .IN,.INB,.INBx | INline source | S-C, A2osX | Working | `.INB MYFILE` | `.IN` inlines full text, `.INB` inlines 1 block at a time during assembly |
| .LI,.LIST | | S-C,A2osX | Working | `.LIST ON/OFF CON/COFF MON/MOFF XON/XOFF` | | | .LI,.LIST | | S-C, A2osX | Working | `.LIST ON/OFF CON/COFF MON/MOFF XON/XOFF` | |
| .MA | MAcro deffinition | S-C,A2osX | Working | `.MA >MYMACRO` | | | .MA | MAcro deffinition | S-C, A2osX | Working | `.MA >MYMACRO` | |
| .OP | OPCode | S-C,A2osX | Working | `.OP cpu` where cpu is one of 6502,65C02,65R02,65816,Z80,SW16 | | | .OP | OPCode | S-C, A2osX | Working | `.OP cpu` where cpu is one of 6502,65C02,65R02,65816,Z80,SW16 | |
| .OR | ORigin | S-C,A2osX | Working | `.OR address` | Set initial output address (only one allowed per assembly) | | .OR | ORigin | S-C, A2osX | Working | `.OR address` | Set initial output address (only one allowed per assembly) |
| .PG | PaGe control | S-C,A2osX | IGNORED | | | | .PG | PaGe control | S-C, A2osX | IGNORED | | |
| .PH | PHase start | S-C,A2osX | Working | `.PH address` | Start a temporary addressing range | | .PH | PHase start | S-C, A2osX | Working | `.PH address` | Start a temporary addressing range |
| .CS | Pascal-string | S-C 3.1,A2osX | Working | | | | .PS | Pascal-string | S-C 3.1, A2osX | Working | | |
| .SE | | S-C,A2osX | Working | | | | .SE | | S-C, A2osX | Working | | |
| .TA | Target Address| S-C,A2osX | IGNORED | | | | .TA | Target Address| S-C, A2osX | IGNORED | | |
| .TF | Target File | S-C,A2osX | Working | `.TF TargetFile[,Txxx]` | only ,TSYS supported | | .TF | Target File | S-C, A2osX | Working | `.TF TargetFile[,Txxx]` | only ,TSYS supported |
| .TI | TItle | S-C,A2osX | IGNORED | | | | .TI | TItle | S-C, A2osX | IGNORED | | |
| .US | USer defined | S-C,A2osX | IGNORED | | | | .US | USer defined | S-C, A2osX | IGNORED | | |
## License ## License
A2osX is licensed under the GNU General Pulic License. A2osX is licensed under the GNU General Pulic License.
@ -62,4 +75,4 @@ The full A2osX license can be found **[Here](../LICENSE)**.
## Copyright ## Copyright
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors. Copyright 2015 - 2022, Remy Gibert and the A2osX contributors.

Binary file not shown.

Binary file not shown.

View File

@ -256,15 +256,15 @@ MLIREAD03 .DA #4
MLICLOSE03 .DA #1 MLICLOSE03 .DA #1
.BS 1 .BS 1
*-------------------------------------- *--------------------------------------
SYSKERNEL >PSTR "sys/kernel" SYSKERNEL .PS "sys/kernel"
*-------------------------------------- *--------------------------------------
MSG.INIT1 >PSTR "A2osX[Stage1]:Init" MSG.INIT1 .PS "A2osX[Stage1]:Init"
MSG.SETPREFIXOK >PSTR "Prefix Set: " MSG.SETPREFIXOK .PS "Prefix Set: "
MSG.SETPREFIXKO >PSTR "Insert Vol:" MSG.SETPREFIXKO .PS "Insert Vol:"
MSG.LOAD >PSTR "Loading : " MSG.LOAD .PS "Loading : "
MSG.LOAD.KO >PSTR " Error $" MSG.LOAD.KO .PS " Error $"
MSG.LOAD.OK >PSTR " OK." MSG.LOAD.OK .PS " OK."
MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete." MSG.INIT1OK .PS "A2osX[Stage1]:Complete."
*-------------------------------------- *--------------------------------------
.LIST ON .LIST ON
QC.FREE .EQ $1300-* QC.FREE .EQ $1300-*

View File

@ -593,27 +593,27 @@ LoadPM.Bits .HS 8040201008040201
*-------------------------------------- *--------------------------------------
.INB usr/src/shared/x.printf.s .INB usr/src/shared/x.printf.s
*-------------------------------------- *--------------------------------------
MSG.INIT0 .AZ "A2osX[Stage0]:Init\n" MSG.INIT0 .CZ "A2osX[Stage0]:Init\r"
MSG.SYSMEM .AZ "Checking System Memory..." MSG.SYSMEM .CZ "Checking System Memory..."
MSG.SYSMEM.OK .AZ "128k Detected.\n" MSG.SYSMEM.OK .CZ "128k Detected.\r"
MSG.SYSMEM.KO .AZ "A2osX Requires At Least 128k Memory.\n" MSG.SYSMEM.KO .CZ "A2osX Requires At Least 128k Memory.\r"
MSG.CPU .AZ "Checking CPU..." MSG.CPU .CZ "Checking CPU..."
MSG.CPU.OK .AZ "65C02 CPU (or higher) Detected.\n" MSG.CPU.OK .CZ "65C02 CPU (or higher) Detected.\r"
MSG.CPU.KO .AZ "A2osX Requires At Least A 65C02 CPU.\n" MSG.CPU.KO .CZ "A2osX Requires At Least A 65C02 CPU.\r"
MSG.RAMDRV .AZ "Checking ProDOS RamDrive..." MSG.RAMDRV .CZ "Checking ProDOS RamDrive..."
MSG.RAMDRV.OK .AZ "Successfully Disabled.\n" MSG.RAMDRV.OK .CZ "Successfully Disabled.\r"
MSG.RAMDRV.KO0 .AZ "Not Detected.\n" MSG.RAMDRV.KO0 .CZ "Not Detected.\r"
MSG.RAMDRV.KO1 .AZ "Uninstall Failed.\n" MSG.RAMDRV.KO1 .CZ "Uninstall Failed.\r"
MSG.BOOTPREFIX .AZ "Boot Prefix:%S\n" MSG.BOOTPREFIX .CZ "Boot Prefix:%S\r"
MSG.PMENUM .AZ "Looking For ProDOS Modules...\n" MSG.PMENUM .CZ "Looking For ProDOS Modules...\r"
MSG.PMSYSDIR .AZ "SYS dir is %S\n" MSG.PMSYSDIR .CZ "SYS dir is %S\r"
MSG.PMSYSDIR.KO .AZ "***Error : $%h\n" MSG.PMSYSDIR.KO .CZ "***Error : $%h\r"
MSG.PMLOAD .AZ "***Loading PM : %S\n" MSG.PMLOAD .CZ "***Loading PM : %S\r"
MSG.INIT0OK .AZ "A2osX[Stage0]:Complete.\n" MSG.INIT0OK .CZ "A2osX[Stage0]:Complete.\r"
*-------------------------------------- *--------------------------------------
MLIGETPREFIX01 MLIGETPREFIX01
MLISETPREFIX01 .DA #1 MLISETPREFIX01 .DA #1
@ -669,9 +669,9 @@ MLIQUIT01 .DA #4
.DA #0 .DA #0
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
A2osX.LOGO >PSTR "A2osX.logo" A2osX.LOGO .PS "A2osX.logo"
SYS >PSTR "sys/" SYS .PS "sys/"
PM. >PSTR "PM." PM. .PS "PM."
*-------------------------------------- *--------------------------------------
SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0 SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07 SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07

View File

@ -7,7 +7,7 @@ CORE.Init ldy #CCS.MAX
>LDYAI CODESEG >LDYAI CODESEG
>SYSCALL GetMem >SYSCALL GetMem
bcs .9 bcs .90
>STYA ZPCodeBufPtr >STYA ZPCodeBufPtr
txa txa
@ -21,11 +21,13 @@ CORE.Init ldy #CCS.MAX
txa txa
>STA.G hDataBuf >STA.G hDataBuf
lda #SL..+SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .9 .90 bcs .9
>STA.G hLabels >STA.G hLabels
lda #SL..+SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .9 bcs .9

View File

@ -1,7 +1,8 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*--------------------------------------- *---------------------------------------
MAC.Init >SYSCALL SListNew MAC.Init lda #SL..+SL._
>SYSCALL SListNew
bcs .9 bcs .9
>STA.G MAC.hList >STA.G MAC.hList

View File

@ -15,7 +15,8 @@ NEW
* 1 : Macro Context ID (private) * 1 : Macro Context ID (private)
* 2-3 : 16 bits offset (PC) * 2-3 : 16 bits offset (PC)
*--------------------------------------- *---------------------------------------
SYM.Init >SYSCALL SListNew SYM.Init lda #SL..+SL._
>SYSCALL SListNew
bcs .9 bcs .9
>STA.G SYM.hList >STA.G SYM.hList
@ -474,7 +475,8 @@ SYM.Dump.1 >LDYA L.MSG.SYMBOLS
>SYSCALL PutS >SYSCALL PutS
stz ZPPtr2 stz ZPPtr2
stz ZPPtr2+1 lda #1
sta ZPPtr2+1
.1 >LDYA ZPPtr2 .1 >LDYA ZPPtr2
>STYA ZPPtr1 >STYA ZPPtr1

View File

@ -1,16 +1,19 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
CORE.Init >SYSCALL SListNew CORE.Init lda #SL._
>SYSCALL SListNew
bcs .9 bcs .9
>STA.G CC.hDefines >STA.G CC.hDefines
lda #SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .9 bcs .9
>STA.G CC.hTags >STA.G CC.hTags
lda #SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .9 bcs .9

View File

@ -128,9 +128,9 @@ CC.EXP.Eval ldx ZPPtr1 local : returned T/Q
jsr CC.EXP.GetChar jsr CC.EXP.GetChar
bcs .29 bcs .29
bra .30 bra .30
.25 cmp #'"' String literal .25 cmp #'"' String literal
bne CC.EXP.Eval.ESYN bne CC.EXP.Eval.ESYN
@ -246,7 +246,7 @@ CC.EXP.BOPS bit #SYM.Q.PPPOINTER
ldy #SYM.T.UINT ldy #SYM.T.UINT
bra .3 bra .3
.10 cpy #SYM.T.UINT .10 cpy #SYM.T.UINT
bcs .3 bcs .3
@ -255,7 +255,7 @@ CC.EXP.BOPS bit #SYM.Q.PPPOINTER
cpy #SYM.T.SCHAR cpy #SYM.T.SCHAR
beq .2 beq .2
lda #E.TMISMATCH lda #E.TMISMATCH
sec sec
rts rts
@ -354,29 +354,29 @@ CC.EXP.GetNum cpy #SYM.T.FLOAT
*-------------------------------------- *--------------------------------------
CC.EXP.GetChar ldy ZPPtr2+1 CC.EXP.GetChar ldy ZPPtr2+1
bne .9 bne .9
lda ZPPtr2 lda ZPPtr2
cmp #SYM.T.UCHAR cmp #SYM.T.UCHAR
beq .1 beq .1
cmp #SYM.T.SCHAR cmp #SYM.T.SCHAR
bne .9 bne .9
.1 jsr CC.GetNextCharEsc .1 jsr CC.GetNextCharEsc
bcs .9 bcs .9
jsr CODE.PUSHI jsr CODE.PUSHI
bcs .99 bcs .99
jsr CC.GetNextChar jsr CC.GetNextChar
bcs .9 bcs .9
cmp #''' cmp #'''
bne .9 bne .9
jsr CC.GetNextCharNB skip ' jsr CC.GetNextCharNB skip '
clc clc
rts rts
@ -417,7 +417,7 @@ CC.EXP.AddConstCharP
.3 jsr CC.GetNextCharNBNL Skip " .3 jsr CC.GetNextCharNBNL Skip "
bcs .8 bcs .8
cmp #'"' cmp #'"'
beq .1 beq .1
@ -464,7 +464,7 @@ CC.EXP.GetVar stz ExpState
.7 jsr CC.EXP.PushValue .7 jsr CC.EXP.PushValue
bcs .99 bcs .99
.8 jmp CC.SYM.LookupCheckTQ .8 jmp CC.SYM.LookupCheckTQ
.99 rts .99 rts
@ -498,27 +498,27 @@ CC.EXP.postinc lda ExpState
lda (ZPLookupSymPtr) #SYM.T lda (ZPLookupSymPtr) #SYM.T
cmp #SYM.T.FLOAT cmp #SYM.T.FLOAT
bcs .98 bcs .98
tay tay
lda CC.TYPESIZE-1,y lda CC.TYPESIZE-1,y
lsr lsr
bcc .2 bcc .2
>LDYA L.PCC.Inc1 >LDYA L.PCC.Inc1
jmp CODE.EmitPCC jmp CODE.EmitPCC
.2 lsr .2 lsr
bcc .4 bcc .4
>LDYA L.PCC.Inc2 >LDYA L.PCC.Inc2
jmp CODE.EmitPCC jmp CODE.EmitPCC
.4 >LDYA L.PCC.Inc4 .4 >LDYA L.PCC.Inc4
jmp CODE.EmitPCC jmp CODE.EmitPCC
.8 .8
.98 lda #E.ESYN .98 lda #E.ESYN
sec sec
@ -542,27 +542,27 @@ CC.EXP.postdec lda ExpState
lda (ZPLookupSymPtr) #SYM.T lda (ZPLookupSymPtr) #SYM.T
cmp #SYM.T.FLOAT cmp #SYM.T.FLOAT
bcs .98 bcs .98
tay tay
lda CC.TYPESIZE-1,y lda CC.TYPESIZE-1,y
lsr lsr
bcc .2 bcc .2
>LDYA L.PCC.Dec1 >LDYA L.PCC.Dec1
jmp CODE.EmitPCC jmp CODE.EmitPCC
.2 lsr .2 lsr
bcc .4 bcc .4
>LDYA L.PCC.Dec2 >LDYA L.PCC.Dec2
jmp CODE.EmitPCC jmp CODE.EmitPCC
.4 >LDYA L.PCC.Dec4 .4 >LDYA L.PCC.Dec4
jmp CODE.EmitPCC jmp CODE.EmitPCC
.8 .8
.98 lda #E.ESYN .98 lda #E.ESYN
sec sec
@ -595,10 +595,10 @@ CC.EXP.Idx ldy #SYM.Q
jsr CC.EXP.GetSymSizeOfInAXC jsr CC.EXP.GetSymSizeOfInAXC
cmp #1 cmp #1
bne .1 bne .1
cpx #0 cpx #0
beq .2 sizeof=1, no MUL required beq .2 sizeof=1, no MUL required
.1 jsr CODE.PUSHAXI ...sizeof on stack... .1 jsr CODE.PUSHAXI ...sizeof on stack...
bcs .99 bcs .99
@ -612,7 +612,7 @@ CC.EXP.Idx ldy #SYM.Q
jsr CC.GetCharNB jsr CC.GetCharNB
bcs .97 bcs .97
cmp #']' cmp #']'
bne .97 bne .97
@ -626,7 +626,7 @@ CC.EXP.Idx ldy #SYM.Q
.97 lda #E.ESYN .97 lda #E.ESYN
sec sec
rts rts
.98 lda #E.TMISMATCH .98 lda #E.TMISMATCH
sec sec
@ -640,12 +640,12 @@ CC.EXP.array ldy #SYM.Def
* jsr CODE.DEBUG * jsr CODE.DEBUG
jsr CC.EXP.PushAddr array[int]... jsr CC.EXP.PushAddr array[int]...
bcc .2 bcc .2
rts rts
.1 jsr CC.EXP.GetAddr2 array[]...it is a * .1 jsr CC.EXP.GetAddr2 array[]...it is a *
bcs .9 bcs .9
>LDYA L.PCC.PushDeref2 >LDYA L.PCC.PushDeref2
jsr CODE.EmitPCC jsr CODE.EmitPCC
bcs .9 bcs .9
@ -667,48 +667,48 @@ CC.EXP.array ldy #SYM.Def
.3 jsr CC.GetNextCharNB skip ']' .3 jsr CC.GetNextCharNB skip ']'
bcs .98 bcs .98
cmp #'[' cmp #'['
bne .8 bne .8
jsr CC.GetNextCharNB skip '[' jsr CC.GetNextCharNB skip '['
bcs .98 bcs .98
ldy #SYM.Q ldy #SYM.Q
lda (ZPLookupSymPtr),y lda (ZPLookupSymPtr),y
and #SYM.Q.AAARRAY and #SYM.Q.AAARRAY
.39 beq .99 .39 beq .99
jsr CC.EXP.array.getIdx ...int16 on stack... jsr CC.EXP.array.getIdx ...int16 on stack...
bcs .9 bcs .9
ldy #SYM.Def+3 ldy #SYM.Def+3
lda (ZPLookupSymPtr),y lda (ZPLookupSymPtr),y
tax tax
dey dey
lda (ZPLookupSymPtr),y lda (ZPLookupSymPtr),y
jsr CODE.PUSHAXI [][SIZE] on stack jsr CODE.PUSHAXI [][SIZE] on stack
ldx #FPU.wMUL ldx #FPU.wMUL
jsr CODE.FPUCALL [][SIZE] * int16 on stack jsr CODE.FPUCALL [][SIZE] * int16 on stack
jsr CC.EXP.GetSymSizeOfInAXC jsr CC.EXP.GetSymSizeOfInAXC
jsr CODE.PUSHAXI ...sizeof on stack... jsr CODE.PUSHAXI ...sizeof on stack...
bcs .9 bcs .9
ldx #FPU.wMUL ldx #FPU.wMUL
jsr CODE.FPUCALL ...sizeof*int16... jsr CODE.FPUCALL ...sizeof*int16...
ldx #FPU.wAdd ldx #FPU.wAdd
jsr CODE.FPUCALL ...add to base address jsr CODE.FPUCALL ...add to base address
bcs .9 bcs .9
jsr CC.GetNextCharNB skip ']' jsr CC.GetNextCharNB skip ']'
bcs .98 bcs .98
* TODO : [][][] * TODO : [][][]
.8 lda #ExpState.AonStack .8 lda #ExpState.AonStack
sta ExpState sta ExpState
@ -741,7 +741,7 @@ CC.EXP.array.getIdx
sec sec
sbc #SYM.Q.ARRAY sbc #SYM.Q.ARRAY
sta (ZPLookupSymPtr),y sta (ZPLookupSymPtr),y
clc clc
rts rts
@ -749,11 +749,129 @@ CC.EXP.array.getIdx
sec sec
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CC.EXP.Struct CC.EXP.SU lda (ZPLookupSymPtr)
*-------------------------------------- cmp #SYM.T.SU
CC.EXP.pStruct lda #E.ESYN bne .97
ldy #SYM.Q
lda (ZPLookupSymPtr),y
and #SYM.Q.PPPOINTER
bne .97
jsr CC.GetCharNB
bcs .98
jsr CC.IsLetter
bcs .98
jsr CC.EXP.SU.GetF
bcs .98
jsr CC.SkipX
lda (ZPLookupSymPtr),y SU.F.T
sta (ZPLookupSymPtr) SYM.T
iny
lda (ZPLookupSymPtr),y SU.F.Q
phy
ldy #SYM.Q
sta (ZPLookupSymPtr),y
ply
iny
lda (ZPLookupSymPtr),y SU.F.O
phy
ldy #SYM.Addr
clc
adc (ZPLookupSymPtr),y
sta (ZPLookupSymPtr),y
ply
iny
lda (ZPLookupSymPtr),y SU.F.O
ldy #SYM.Addr+1
adc (ZPLookupSymPtr),y
sta (ZPLookupSymPtr),y
clc
rts
.97 lda #E.TMISMATCH
sec sec
rts rts
.98 lda #E.ESYN
sec
.99 rts
*--------------------------------------
CC.EXP.pSU lda #E.ESYN
sec
rts
*--------------------------------------
CC.EXP.SU.GetF jsr CC.GetIDLen
tya
tax
ldy #SYM.Def
.1 lda (ZPLookupSymPtr),y
beq .98
phy SU.F.T
tya
clc
adc #SU.F.Name
tay
txa
cmp (ZPLookupSymPtr),y
bne .7
phy SU.F.Name
phx SU.F.NameLen
tya
clc
adc ZPLookupSymPtr
sta ZPLookupPtr
lda #0
adc ZPLookupSymPtr+1
sta ZPLookupPtr+1
ldy #0
.2 lda (ZPLineBufPtr),y
iny
cmp (ZPLookupPtr),y
bne .6
dex
bne .2
plx NameLen
pla SU.F.Name
ply SU.F.T
clc
rts
.6 plx
ply
.7 pla
sec
adc (ZPLookupSymPtr),y
adc #SU.F.Name
tay
bra .1
.98 lda #E.NOKEY
sec
.99 rts
*-------------------------------------- *--------------------------------------
* PREOPS * PREOPS
*-------------------------------------- *--------------------------------------
@ -805,7 +923,7 @@ CC.EXP.Deref ldy #SYM.Q
>LDYA L.PCC.Deref2 >LDYA L.PCC.Deref2
jsr CODE.EmitPCC jsr CODE.EmitPCC
bcs .99 bcs .99
lda #ExpState.AinPTR lda #ExpState.AinPTR
sta ExpState sta ExpState
@ -893,7 +1011,7 @@ CC.EXP.PushAddr ldy #SYM.SC
.2 >LDYA L.PCC.PushUAddr .2 >LDYA L.PCC.PushUAddr
jmp CODE.EmitPCC jmp CODE.EmitPCC
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CC.EXP.GetAddr1 ldy #SYM.SC CC.EXP.GetAddr1 ldy #SYM.SC
@ -977,22 +1095,22 @@ CC.EXP.PushValue
tay tay
dey dey
bne .1 bne .1
>LDYA L.PCC.PushValue1 >LDYA L.PCC.PushValue1
jmp CODE.EmitPCC jmp CODE.EmitPCC
.1 cpy #1 .1 cpy #1
bne .2 bne .2
>LDYA L.PCC.PushValue2 >LDYA L.PCC.PushValue2
jmp CODE.EmitPCC jmp CODE.EmitPCC
.2 jsr CODE.LDYI .2 jsr CODE.LDYI
bcs .99 bcs .99
>LDYA L.PCC.PushValueY >LDYA L.PCC.PushValueY
jmp CODE.EmitPCC jmp CODE.EmitPCC
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
* out : A,X,C = size * out : A,X,C = size

View File

@ -597,7 +597,7 @@ CC.KW.SU.2 jsr CC.GetNextCharNB
sec sec
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
CC.KW.SU.1 ldy #SYM.T.STRUCT CC.KW.SU.1 ldy #SYM.T.SU
lda #0 lda #0
ldx #SYM.SC.TAG ldx #SYM.SC.TAG
sec reset buffer sec reset buffer
@ -662,6 +662,9 @@ CC.KW.SU.1 ldy #SYM.T.STRUCT
.38 jsr CC.GetNextCharNB skip '}' .38 jsr CC.GetNextCharNB skip '}'
bcs .98 bcs .98
jsr CC.SYM.Add0000 Close F definition
bcs .99
cmp #';' cmp #';'
bne .40 bne .40
@ -684,7 +687,7 @@ CC.KW.SU.1 ldy #SYM.T.STRUCT
.41 clc reuse buffer .41 clc reuse buffer
ldy #SYM.T.STRUCT ldy #SYM.T.SU
lda #0 lda #0
jsr CC.DECL.YAC jsr CC.DECL.YAC
bcs .99 bcs .99

View File

@ -5,7 +5,7 @@ CC.Link >LDYA L.MSG.LINKING
>SYSCALL Puts >SYSCALL Puts
ldy #0 ldy #0
lda #0 lda #1
.1 >STYA ZPPtr1 SymID .1 >STYA ZPPtr1 SymID

View File

@ -408,23 +408,33 @@ CC.SYM.AddWord phy
rts rts
*-------------------------------------- *--------------------------------------
CC.SYM.AddName jsr CC.GetCharNB CC.SYM.AddName jsr CC.GetCharNB
bcs .98 bcs .98
jsr CC.IsLetter jsr CC.IsLetter
bcs .98 bcs .98
.1 jsr CC.SYM.AddByte jsr CC.GetIDLen
tax
jsr CC.SYM.AddByte
bcs .99 bcs .99
jsr CC.GetNextCharNB ldy #0
bcs .98
jsr CC.IsLetterOrDigit .1 lda (ZPLineBufPtr),y
bcc .1 phy
jsr CC.SYM.AddByte
ply
bcs .99
lda #0 iny
bra CC.SYM.AddByte dex
bne .1
tya
jsr CC.SkipA
clc
rts
.98 lda #E.CSYN .98 lda #E.CSYN
sec sec
@ -562,6 +572,7 @@ CC.SYM.NewScope ldy ScopeIdx
cpy #CC.hScopes+SCOPE.MAX cpy #CC.hScopes+SCOPE.MAX
bcs .9 bcs .9
lda #SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .99 bcs .99

View File

@ -24,9 +24,8 @@ SYM.T.SINT .EQ 5
SYM.T.ULONG .EQ 6 SYM.T.ULONG .EQ 6
SYM.T.SLONG .EQ 7 SYM.T.SLONG .EQ 7
SYM.T.FLOAT .EQ 8 SYM.T.FLOAT .EQ 8
SYM.T.STRUCT .EQ 9 SYM.T.SU .EQ 9
SYM.T.UNION .EQ 10 SYM.T.ENUM .EQ 10
SYM.T.ENUM .EQ 11
SYM.T.VARIADIC .EQ $FF SYM.T.VARIADIC .EQ $FF
SYM.Q .EQ 1 SYM.Q .EQ 1
SYM.Q.POINTER .EQ %01000000 SYM.Q.POINTER .EQ %01000000
@ -54,11 +53,12 @@ SYM.Def .EQ 8 Funtions : fTQ,a1TQ,a2TQ....
* *
SYM .EQ 10 SYM .EQ 10
*-------------------------------------- *--------------------------------------
STRUCTF.T .EQ 0 SU.F.T .EQ 0
STRUCTF.Q .EQ 1 SU.F.Q .EQ 1
STRUCTF.BitOfs .EQ 2 SU.F.O .EQ 2
STRUCTF.BitWidth .EQ 3 SU.F.BitO .EQ 4
STRUCTF.Name .EQ 4 SU.F.BitW .EQ 5
SU.F.Name .EQ 6
*-------------------------------------- *--------------------------------------
* Zero Page Segment, up to 32 bytes * Zero Page Segment, up to 32 bytes
*-------------------------------------- *--------------------------------------
@ -147,8 +147,8 @@ L.CC.POSTOPS .DA CC.POSTOPS
J.CC.POSTOPS .DA CC.EXP.postinc J.CC.POSTOPS .DA CC.EXP.postinc
.DA CC.EXP.postdec .DA CC.EXP.postdec
.DA CC.EXP.idx .DA CC.EXP.idx
.DA CC.EXP.Struct .DA CC.EXP.SU
.DA CC.EXP.pStruct .DA CC.EXP.pSU
L.CC.BOPS .DA CC.BOPS L.CC.BOPS .DA CC.BOPS
L.CC.DIRS .DA CC.DIRS L.CC.DIRS .DA CC.DIRS
L.CC.KW .DA CC.KW L.CC.KW .DA CC.KW

View File

@ -2,16 +2,19 @@ NEW
AUTO 3,1 AUTO 3,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
CSH.Init >SYSCALL SListNew CSH.Init lda #SL._
>SYSCALL SListNew
bcs .99 bcs .99
>STA.G CSH.hDefines >STA.G CSH.hDefines
lda #SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .99 bcs .99
>STA.G CSH.hTags >STA.G CSH.hTags
lda #SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .9 bcs .9

View File

@ -1023,7 +1023,8 @@ KW.ASSEMBLER
rts rts
*-------------------------------------- *--------------------------------------
KW.VLIST stz ZPPtr1 KW.VLIST stz ZPPtr1
stz ZPPtr1+1 lda #1
sta ZPPtr1+1
.1 >LDYA ZPPtr1 .1 >LDYA ZPPtr1
>STYA ZPKeyID >STYA ZPKeyID

View File

@ -374,6 +374,7 @@ CS.RUN >PUSHW L.MSG.GREETINGS
txa txa
>STA.G hCLBuf >STA.G hCLBuf
lda #SL..+SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .9 bcs .9

View File

@ -58,7 +58,7 @@ L.MSG.QUIT.SAVED
L.MSG.QUIT.ERR .DA MSG.QUIT.ERR L.MSG.QUIT.ERR .DA MSG.QUIT.ERR
T.MSG.SLOT.DESC .DA MSG.SLOT.NODEV T.MSG.SLOT.DESC .DA MSG.SLOT.NODEV
.DA MSG.SLOT.Z80 .DA MSG.SLOT.Z80
.DA MSG.SLOT.VSD .DA MSG.SLOT.VXD
.DA MSG.SLOT.ATK .DA MSG.SLOT.ATK
.DA MSG.SLOT.DII .DA MSG.SLOT.DII
.DA MSG.SLOT.BLK .DA MSG.SLOT.BLK
@ -75,8 +75,7 @@ CS.INIT clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN >PUSHW L.MSG.TOPBAR CS.RUN >PUSHW L.MSG.TOPBAR
>PUSHB #K.VER >PUSHW A2osX.KVER
>PUSHB /K.VER
>PUSHBI 2 >PUSHBI 2
>SYSCALL PrintF >SYSCALL PrintF
jsr CS.RUN.Load jsr CS.RUN.Load
@ -359,7 +358,7 @@ CS.QUIT lda hFileBuf
CS.END CS.END
SLOTS .DA #0 SLOTS .DA #0
.DA #A2osX.S.Z80 .DA #A2osX.S.Z80
.DA #A2osX.S.VSDRIVE .DA #A2osX.S.VXDRIVE
.DA #A2osX.S.ATCARD .DA #A2osX.S.ATCARD
.DA #A2osX.S.DII .DA #A2osX.S.DII
.DA #A2osX.S.BLK .DA #A2osX.S.BLK
@ -372,35 +371,35 @@ SLOTS .DA #0
SLOTS.MAX .EQ *-SLOTS SLOTS.MAX .EQ *-SLOTS
*-------------------------------------- *--------------------------------------
FILENAME .AZ "${ROOT}A2osX.kconfig" FILENAME .AZ "${ROOT}A2osX.kconfig"
MSG.TOPBAR .AZ "\e[40;37m\e[7m\e[1;1HA2osX %d.%d Kernel Config Utility : " MSG.TOPBAR .CZ "\e[40;37m\e[7m\e[1;1HA2osX %d.%d Kernel Config Utility : "
MSG.TOPBAR.OK .AZ "KCONFIG File Successfully Loaded. \e[0m" MSG.TOPBAR.OK .CZ "KCONFIG File Successfully Loaded. \e[0m"
MSG.TOPBAR.KO .AZ "Invalid/missing KCONFIG File. \e[0m" MSG.TOPBAR.KO .CZ "Invalid/missing KCONFIG File. \e[0m"
MSG.STATUSBAR .AZ "\e[40;37m\e[7m\e[24;1H(1-7):En/Dis Slot, Ctrl:(Q)uit,(S)ave,(T)iming,(C)HRoot,(P)reemptive,TT(Y)s \e[0m" MSG.STATUSBAR .CZ "\e[40;37m\e[7m\e[24;1H(1-7):En/Dis Slot, Ctrl:(Q)uit,(S)ave,(T)iming,(C)HRoot,(P)reemptive,TT(Y)s \e[0m"
MSG.KCONF .AZ "\e[93;44m\e[2;1H------ Actual Kernel Configuration ------\e[K\r\n" MSG.KCONF .CZ "\e[93;44m\e[2;1H------ Actual Kernel Configuration ------\e[K\r\n"
MSG.FCONF .AZ "\e[93;44m\e[13;1H------ KCONFIG File Configuration -------\e[K\r\n" MSG.FCONF .CZ "\e[93;44m\e[13;1H------ KCONFIG File Configuration -------\e[K\r\n"
MSG.HZ .AZ " Machine Timing : %d0 Hz\e[K\r\n" MSG.HZ .CZ " Machine Timing : %d0 Hz\e[K\r\n"
MSG.CHROOT .AZ " CHRoot to /RAMx : %10s" MSG.CHROOT .CZ " CHRoot to /RAMx : %10s"
MSG.PMODE .AZ " Preemptive Mode : %s\e[K\r\n" MSG.PMODE .CZ " Preemptive Mode : %s\e[K\r\n"
MSG.TTYS .AZ " #TTYs : %d\e[K\r\n" MSG.TTYS .CZ " #TTYs : %d\e[K\r\n"
MSG.ENABLED .AZ "Enabled " MSG.ENABLED .CZ "Enabled "
MSG.DISABLED .AZ "Disabled" MSG.DISABLED .CZ "Disabled"
MSG.SLOT .AZ " Slot #%d : %s\e[K\r\n" MSG.SLOT .CZ " Slot #%d : %s\e[K\r\n"
MSG.SLOT.NODEV .AZ "<Enabled>" MSG.SLOT.NODEV .CZ "<Enabled>"
MSG.SLOT.Z80 .AZ "Z80 CPU Board" MSG.SLOT.Z80 .CZ "Z80 CPU Board"
MSG.SLOT.VSD .AZ "SSC Shared Driver for VSDRIVE" MSG.SLOT.VXD .CZ "VxDrive"
MSG.SLOT.ATK .AZ "AppleTalk Board" MSG.SLOT.ATK .CZ "AppleTalk Board"
MSG.SLOT.DII .AZ "Disk ][ Controller" MSG.SLOT.DII .CZ "Disk ][ Controller"
MSG.SLOT.BLK .AZ "Generic Block/SCSI Controller" MSG.SLOT.BLK .CZ "Generic Block/SCSI Controller"
MSG.SLOT.SP .AZ "SmartPort Controller" MSG.SLOT.SP .CZ "SmartPort Controller"
MSG.SLOT.COM .AZ "Communication Card" MSG.SLOT.COM .CZ "Communication Card"
MSG.SLOT.XY .AZ "XY Pointing Device" MSG.SLOT.XY .CZ "XY Pointing Device"
MSG.SLOT.NIC .AZ "Network Interface Card" MSG.SLOT.NIC .CZ "Network Interface Card"
MSG.SLOT.CLK .AZ "Clock Card" MSG.SLOT.CLK .CZ "Clock Card"
MSG.SLOT.DIS .AZ "<Disabled>" MSG.SLOT.DIS .CZ "<Disabled>"
MSG.PROMPT .AZ "\e[24;80H" MSG.PROMPT .CZ "\e[24;80H"
MSG.QUIT .AZ "\ec" MSG.QUIT .CZ "\ec"
MSG.QUIT.SAVED .AZ "\ecA2osX.kconfig file saved.\r\n\r\n" MSG.QUIT.SAVED .CZ "\ecA2osX.kconfig file saved.\r\n\r\n"
MSG.QUIT.ERR .AZ "\ecError [$%h] while writing A2osX.kconfig file.\r\n\r\n" MSG.QUIT.ERR .CZ "\ecError [$%h] while writing A2osX.kconfig file.\r\n\r\n"
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0

View File

@ -532,6 +532,7 @@ CMD.FUNCTION lda (ZPArgVBufPtr)
>LDA.G hFuncList >LDA.G hFuncList
bne .1 bne .1
lda #SL..+SL._
>SYSCALL SListNew >SYSCALL SListNew
bcs .99 bcs .99

View File

@ -70,7 +70,7 @@ A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx
A2osX.F.PMODE .EQ %01000000 Pre-emptive Mode A2osX.F.PMODE .EQ %01000000 Pre-emptive Mode
A2osX.S .EQ $BEF8 $BEF9->$BEFF, 7 slots A2osX.S .EQ $BEF8 $BEF9->$BEFF, 7 slots
A2osX.S.Z80 .EQ $80 A2osX.S.Z80 .EQ $80
A2osX.S.VSDRIVE .EQ $81 A2osX.S.VXDRIVE .EQ $81
A2osX.S.ATCARD .EQ $82 A2osX.S.ATCARD .EQ $82
A2osX.S.DII .EQ $C0 A2osX.S.DII .EQ $C0
A2osX.S.BLK .EQ $C1 A2osX.S.BLK .EQ $C1
@ -168,6 +168,11 @@ SEEK.SET .EQ $00
SEEK.CUR .EQ $01 SEEK.CUR .EQ $01
SEEK.END .EQ $02 SEEK.END .EQ $02
*-------------------------------------- *--------------------------------------
SL.. .EQ %10000000
SL._ .EQ %01000000
SL.NoCase .EQ %01000010
SL.EndDollar .EQ %00000001
*--------------------------------------
* A2osX.SYSCALL Functions Indexes * A2osX.SYSCALL Functions Indexes
*--------------------------------------D1 *--------------------------------------D1
* STAT * STAT
@ -674,4 +679,4 @@ S.SESSION.NAME .EQ 3
* *
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE INC/A2OSX.I SAVE inc/a2osx.i

View File

@ -326,24 +326,6 @@ FPU.FOUT .EQ 210 PrintF
cpy #]1+4 cpy #]1+4
bne :1 bne :1
.EM .EM
*--------------------------------------
.MA PUSHF.G
ldy #]1+5
:1 dey
lda (pData),y
>PUSHA
cpy #]1
bne :1
.EM
*--------------------------------------
.MA PULLF.G
ldy #]1
:1 >PULLA
sta (pData),y
iny
cpy #]1+5
bne :1
.EM
*-------------------------------------- *--------------------------------------
.MA LDA.G .MA LDA.G
ldy #]1 ldy #]1
@ -555,23 +537,6 @@ FPU.FOUT .EQ 210 PrintF
cpy #4 cpy #4
bne :1 bne :1
.EM .EM
*--------------------------------------
.MA PUSHF
ldy #4
:1 lda ]1,y
>PUSHA
dey
bpl :1
.EM
*--------------------------------------
.MA PULLF
ldy #0
:1 >PULLA
sta ]1,y
iny
cpy #5
bne :1
.EM
*-------------------------------------- *--------------------------------------
.MA ENTER .MA ENTER
>PUSHB pBase >PUSHB pBase
@ -648,13 +613,5 @@ FPU.FOUT .EQ 210 PrintF
.FIN .FIN
.EM .EM
*-------------------------------------- *--------------------------------------
* General Strings Macros
*--------------------------------------
.MA PSTR
.DA #:1-*-1
.AS "]1"
:1 .EQ *
.EM
*--------------------------------------
MAN MAN
SAVE inc/macros.i SAVE inc/macros.i

View File

@ -58,17 +58,7 @@ PrintFYA.1 stz X.b0Flag
tax tax
jmp (PrintFYA.Tbl,x) jmp (PrintFYA.Tbl,x)
.7 cmp #'\' .7 ora #$80
bne .8
jsr PrintFYA.Next
beq PrintFYA.90
cmp #'n'
bne .8
lda #$0D
.8 ora #$80
jsr $FDED COUT jsr $FDED COUT
bra PrintFYA.1 bra PrintFYA.1

View File

@ -8,7 +8,9 @@ KeyID .EQ *
iByte .BS 1 iByte .BS 1
iBlk .BS 1 iBlk .BS 1
*-------------------------------------- *--------------------------------------
BLISTX.New >LDYAI 128 32k Max before out of memory!!! BLISTX.New sta SLIST.Opt
>LDYAI 128 32k Max before out of memory!!!
ldx #S.MEM.F.INIT0+8 index ldx #S.MEM.F.INIT0+8 index
jsr MEM.GetMem.YAX jsr MEM.GetMem.YAX
bcs .9 bcs .9
@ -22,13 +24,19 @@ BLISTX.New >LDYAI 128 32k Max before out of memory!!!
bcs .9 bcs .9
>STYA DBlkPtr >STYA DBlkPtr
lda #0 lda #0
sta (DBlkPtr) sta (DBlkPtr)
txa
lda SLIST.Opt
sta (IBlkPtr) sta (IBlkPtr)
txa
ldy #1
sta (IBlkPtr),y
.8 lda #$ff SELF MODIFIED .8 lda #$ff SELF MODIFIED
* clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
BLISTX.Free pha BLISTX.Free pha
@ -36,7 +44,7 @@ BLISTX.Free pha
jsr K.GetMemPtr jsr K.GetMemPtr
>STYA .1+1 >STYA .1+1
ldx #0 ldx #1
.1 lda $ffff,x SELF MODIFIED .1 lda $ffff,x SELF MODIFIED
beq .8 beq .8

View File

@ -21,7 +21,7 @@ DRV.DiskII.S >LDYAI DRV.DiskII.DIB
DRV.DiskII.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ DRV.DiskII.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
.DA 280 .DA 280
.DA #0 .DA #0
>PSTR "Disk ][ 5.25" .PS "Disk ][ 5.25"
.BS 4 .BS 4
.DA #S.DIB.T.DISKII .DA #S.DIB.T.DISKII
.DA #0 .DA #0
@ -55,7 +55,7 @@ DRV.RamDrive.S jsr DRV.Blk
DRV.RamDrive.DIB DRV.RamDrive.DIB
.DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
.BS 3 .BS 3
>PSTR "ProDOS /RAM Disk" .PS "ProDOS /RAM Disk"
.DA #S.DIB.T.RAM .DA #S.DIB.T.RAM
.DA #0 .DA #0
.DA K.VER .DA K.VER
@ -86,7 +86,7 @@ DRV.BlkDev.S jsr DRV.Blk
*-------------------------------------- *--------------------------------------
DRV.BlkDev.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ DRV.BlkDev.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
.BS 3 .BS 3
>PSTR "ProDOS Block Dev" .PS "ProDOS Block Dev"
.DA #S.DIB.T.PRODOS .DA #S.DIB.T.PRODOS
.DA #0 .DA #0
.DA K.VER .DA K.VER
@ -206,7 +206,7 @@ DRV.NULL cld
*-------------------------------------- *--------------------------------------
DRV.NULL.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.OPENED DRV.NULL.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.OPENED
.DA #0,#0,#0 .DA #0,#0,#0
>PSTR "NULL Device" .PS "NULL Device"
.BS 5 .BS 5
.DA #S.DIB.T.CHAR .DA #S.DIB.T.CHAR
.DA #0 .DA #0

View File

@ -72,16 +72,17 @@ Kernel.Init2 sei
jsr A2osX.Unpak jsr A2osX.Unpak
sta SETALTZP sta SETALTZP
bit RRAMWRAMBNK2
bit RRAMWRAMBNK2 lda RRAMWRAMBNK2
lda RRAMWRAMBNK2
>LDYA PAKME.D2 >LDYA PAKME.D2
>STYA ZPInBufPtr >STYA ZPInBufPtr
>LDYAI $D000 >LDYAI $D000
jsr A2osX.Unpak jsr A2osX.Unpak
bit RRAMWRAMBNK1 lda RRAMWRAMBNK1
bit RRAMWRAMBNK1 lda RRAMWRAMBNK1
>LDYA PAKME.D1 >LDYA PAKME.D1
>STYA ZPInBufPtr >STYA ZPInBufPtr
@ -93,11 +94,13 @@ Kernel.Init2 sei
>LDYAI $E000 >LDYAI $E000
jsr A2osX.Unpak jsr A2osX.Unpak
bit RROMBNK1 lda RROMBNK1
sta CLRALTZP sta CLRALTZP
cli cli
jsr KConfigLoad jsr KConfigLoad
lda A2osX.HZ lda A2osX.HZ
pha pha
>LDYAI MSG.HZ >LDYAI MSG.HZ
@ -108,8 +111,8 @@ Kernel.Init2 sei
>DEBUGOA >DEBUGOA
*-------------------------------------- *--------------------------------------
Kernel.Init3 sta SETALTZP Kernel.Init3 sta SETALTZP
bit RRAMWRAMBNK1 lda RRAMWRAMBNK1
bit RRAMWRAMBNK1 lda RRAMWRAMBNK1
lda #$ff Make sure we are in Kernel Mode during setup lda #$ff Make sure we are in Kernel Mode during setup
sta IRQ.InKernel sta IRQ.InKernel
@ -127,7 +130,7 @@ Kernel.Init3 sta SETALTZP
sta SET80STORE sta SET80STORE
sta CLRPAGE2 sta CLRPAGE2
bit RDIOUDIS lda RDIOUDIS
sta SETIOUDIS sta SETIOUDIS
sta SETDHIRES sta SETDHIRES
bmi .10 bmi .10
@ -661,7 +664,7 @@ DetectZ80 ldx #Z80Code.Size
DevMgrInit >LDYAI MSG.DEV DevMgrInit >LDYAI MSG.DEV
>SYSCALL2 puts >SYSCALL2 puts
jsr DevMgrInit.VSD jsr DevMgrInit.VXD
lda DEVCNT lda DEVCNT
sta .1+1 sta .1+1
@ -795,14 +798,25 @@ DevMgrInit.AddBDev
rts rts
*-------------------------------------- *--------------------------------------
DevMgrInit.VSD ldy #VSD.PATCH.SIZE-1 DevMgrInit.VXD >LDYAI VSD.PATCH
.1 lda $BF41,y jsr .10
cmp VSD.PATCH,y bcc .8
bne .9
>LDYAI VED.PATCH
jsr .10
bcs .9
dey .8 ldy #4
bpl .1 lda (ZPPtr1),y
sec
sbc #1
sta .81+1
iny
lda (ZPPtr1),y
sbc #0
sta .81+2
php php
sei sei
@ -810,22 +824,45 @@ DevMgrInit.VSD ldy #VSD.PATCH.SIZE-1
bit RRAMWRAMBNK2 bit RRAMWRAMBNK2
bit RRAMWRAMBNK2 bit RRAMWRAMBNK2
sta CLRALTZP sta CLRALTZP
ldx $d001 .81 ldx $FFFF SELF MODIFIED : Slot0n
sta SETALTZP sta SETALTZP
bit RRAMWRAMBNK1 bit RRAMWRAMBNK1
bit RRAMWRAMBNK1 bit RRAMWRAMBNK1
lda #A2osX.S.VSDRIVE lda #A2osX.S.VXDRIVE
sta A2osX.S,x sta A2osX.S,x
plp plp
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
.10 >STYA ZPPtr1
ldy #VXD.PATCH.SIZE-1
.11 lda $BF41,y
cmp (ZPPtr1),y
bne .19
dey
bpl .11
clc
rts
.19 sec
rts
*--------------------------------------
VSD.PATCH bit RRAMWRAMBNK2 VSD.PATCH bit RRAMWRAMBNK2
jsr $D002 jsr $D002
bit RRAMWRAMBNK1 bit RRAMWRAMBNK1
rts rts
VSD.PATCH.SIZE .EQ *-VSD.PATCH *--------------------------------------
VED.PATCH bit RRAMWRAMBNK2
jsr $D401
bit RRAMWRAMBNK1
rts
VXD.PATCH.SIZE .EQ 10
*-------------------------------------- *--------------------------------------
* Setup AuxLC $FFFE->Kernel IRQ Handler * Setup AuxLC $FFFE->Kernel IRQ Handler
* if irq not handled, jmp (S.IrqMgrOldFFFE) * if irq not handled, jmp (S.IrqMgrOldFFFE)
@ -1228,18 +1265,17 @@ TClock.SIG .HS 08285870
SmartPort.OFS .HS 010305 SmartPort.OFS .HS 010305
SmartPort.SIG .HS 200003 SmartPort.SIG .HS 200003
*-------------------------------------- *--------------------------------------
MSG.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n" MSG.Init2 .CZ "A2osX[Stage2]:Init\rRelocating Kernel...\r"
MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n" MSG.KCREAD .CZ "Reading Kernel Config File..."
MSG.KCREAD .AZ "Reading Kernel Config File..." MSG.KCREAD.OK .CZ "OK\r"
MSG.KCREAD.OK .AZ "OK\n" MSG.KCREAD.KO .CZ "\rError While Reading Kernel Config File, Using Default.\r"
MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n" MSG.HZ .CZ "Kernel SYS Timer Set For %d0 hz Machine.\r"
MSG.PRODOSFX .AZ "!!!Running under ProDOS.FX!!! Enabling lowercase mode.\n" MSG.PRODOSFX .CZ "!!!Running under ProDOS.FX!!! Enabling lowercase mode.\r"
MSG.Init2.OK .AZ "A2osX[Stage2]:Complete." MSG.Init2.OK .CZ "A2osX[Stage2]:Complete."
*-------------------------------------- *--------------------------------------
MSG.Init3 .AZ "A2osX[Stage3]:Init *** Press Ctrl-R for entering ROOT Mode ***\r\n" MSG.Init3 .CZ "A2osX[Stage3]:Init *** Press Ctrl-R for entering ROOT Mode ***\r\n"
MSG.DEV .AZ "Device Manager..." MSG.DEV .AZ "Device Manager..."
*-------------------------------------- MSG.BLKDEV .CZ " Adding Device: /dev/%s, Addr:%H, Type: %s\r\n"
MSG.BLKDEV .AZ " Adding Device: /dev/%s, Addr:%H, Type: %s\r\n"
MSG.BLKDEV.TBL .DA MSG.BLKDEV.RAM MSG.BLKDEV.TBL .DA MSG.BLKDEV.RAM
.DA MSG.BLKDEV.DII .DA MSG.BLKDEV.DII
.DA MSG.BLKDEV.USR .DA MSG.BLKDEV.USR
@ -1268,11 +1304,11 @@ MSG.EVT .AZ "Event Manager..."
MSG.TSK .AZ "Task Manager..." MSG.TSK .AZ "Task Manager..."
MSG.PWD .AZ "Password Manager..." MSG.PWD .AZ "Password Manager..."
MSG.EXEC .AZ "Executing %s..." MSG.EXEC .AZ "Executing %s..."
MSG.StartupErr .AZ "Failed : [$%h]\r\n" MSG.StartupErr .CZ "Failed : [$%h]\r\n"
MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n" MSG.Init3.OK .CZ "OK\r\nA2osX[Stage3]:Complete.\r\n"
*-------------------------------------- *--------------------------------------
MSG.HW .AZ "Checking Hardware..." MSG.HW .AZ "Checking Hardware..."
MSG.HW.TypeSubT .AZ "Type=%h,SubT=%h\r\n" MSG.HW.TypeSubT .CZ "Type=%h,SubT=%h\r\n"
MSG.CPU .AZ "Checking CPU..." MSG.CPU .AZ "Checking CPU..."
MSG.CPUTYPE .DA MSG.6502 MSG.CPUTYPE .DA MSG.6502
.DA MSG.65C02 .DA MSG.65C02
@ -1283,9 +1319,9 @@ MSG.65C02 .AZ "65C02."
MSG.65R02 .AZ "65R02." MSG.65R02 .AZ "65R02."
MSG.65816 .AZ "65816." MSG.65816 .AZ "65816."
MSG.CPU.SPEED .AZ "Checking CPU Speed (%d0Hz)..." MSG.CPU.SPEED .AZ "Checking CPU Speed (%d0Hz)..."
MSG.CPU.SPEEDOK .AZ "%d.%02d Mhz.\r\n" MSG.CPU.SPEEDOK .CZ "%d.%02d Mhz.\r\n"
MSG.Z80 .AZ "Checking Z80 CPU..." MSG.Z80 .AZ "Checking Z80 CPU..."
MSG.Z80.OK .AZ "Detected In Slot %d.\r\n" MSG.Z80.OK .CZ "Detected In Slot %d.\r\n"
MSG.Z80.KO .AZ "Not Detected." MSG.Z80.KO .AZ "Not Detected."
*-------------------------------------- *--------------------------------------
DEV.CONSOLE .AZ "/dev/console" DEV.CONSOLE .AZ "/dev/console"
@ -1306,7 +1342,7 @@ pMLIOPEN .DA #3
.DA FNKConfig .DA FNKConfig
.DA $B000 .DA $B000
.BS 1 .BS 1
FNKConfig >PSTR "A2osX.kconfig" FNKConfig .PS "A2osX.kconfig"
*-------------------------------------- *--------------------------------------
pMLIREAD .DA #4 pMLIREAD .DA #4
.BS 1 .BS 1

View File

@ -349,7 +349,7 @@ K.FreeMem.ERR >PUSHWI .1
sec sec
rts rts
.1 .AZ "Free($%h),PID=%d\r\n" .1 .CZ "Free($%h),PID=%d\r\n"
*-------------------------------------- *--------------------------------------
K.FreeMem tay K.FreeMem tay
beq K.FreeMem.ERR Slot=0, reserved by Kernel beq K.FreeMem.ERR Slot=0, reserved by Kernel

View File

@ -82,6 +82,7 @@ K.SListFree
*/-------------------------------------- */--------------------------------------
* # SListNew * # SListNew
* ## ASM * ## ASM
* `lda Opt`
* `>SYSCALL SListNew` * `>SYSCALL SListNew`
* ## RETURN VALUE * ## RETURN VALUE
* A=hSList * A=hSList

View File

@ -4,6 +4,7 @@ NEW
ZPSListDataOfs .EQ ZPMEMMGR+8 ZPSListDataOfs .EQ ZPMEMMGR+8
ZPSListDataLen .EQ ZPMEMMGR+10 ZPSListDataLen .EQ ZPMEMMGR+10
*-------------------------------------- *--------------------------------------
SLIST.Opt .BS 1
SLIST.KeyLen .BS 1 SLIST.KeyLen .BS 1
SLIST.DataLen .BS 2 SLIST.DataLen .BS 2
SLIST.nDataCnt .BS 2 SLIST.nDataCnt .BS 2
@ -198,6 +199,7 @@ SLISTX.SetData jsr SLIST.Select
.8 clc .8 clc
rts rts
.9 lda #E.DATALEN .9 lda #E.DATALEN
sec sec
rts rts
@ -284,7 +286,15 @@ SLISTX.Lookup jsr SLIST.Search
SLIST.Search jsr K.GetMemPtr SLIST.Search jsr K.GetMemPtr
>STYA IBlkPtr >STYA IBlkPtr
lda (IBlkPtr) lda (IBlkPtr)
sta SLIST.Opt
stz iByte
ldy #1
sty iBlk
lda (IBlkPtr),y
jsr K.GetMemPtr jsr K.GetMemPtr
>STYA DBlkPtr >STYA DBlkPtr
@ -292,17 +302,14 @@ SLIST.Search jsr K.GetMemPtr
.1 iny .1 iny
jsr SHARED.TXTPTRgY jsr SHARED.TXTPTRgY
beq .11 beq .2
jsr SHARED.IsIDValid jsr SLIST.IsIDValid
bcc .1 bcc .1
.11 sty SLIST.KeyLen .2 sty SLIST.KeyLen
stz iByte .3 >LDYA KeyID
stz iBlk
.2 >LDYA KeyID
>STYA SLIST.KeyID >STYA SLIST.KeyID
ldy iByte ldy iByte
@ -310,35 +317,35 @@ SLIST.Search jsr K.GetMemPtr
beq .9 beq .9
cmp SLIST.KeyLen cmp SLIST.KeyLen
bne .5 bne .6
jsr BLISTX.GetNByte Skip Len jsr BLISTX.GetNByte Skip Len
ldy #0 ldy #0
.3 phy .4 phy
jsr BLISTX.GetNByte jsr BLISTX.GetNByte
sta .4+1 sta .5+1
ply ply
jsr SHARED.TXTPTRgY jsr SHARED.TXTPTRgY
.4 cmp #$ff SELF MODIFIED .5 cmp #$ff SELF MODIFIED
bne .5 bne .6
iny iny
cpy SLIST.KeyLen cpy SLIST.KeyLen
bne .3 bne .4
>LDYA SLIST.KeyID >LDYA SLIST.KeyID
clc clc
rts rts
.5 >LDYA SLIST.KeyID .6 >LDYA SLIST.KeyID
jsr SLIST.Select.I move back... jsr SLIST.Select.I move back...
jsr SLIST.Next jsr SLIST.Next
bra .2 bra .3
.9 lda #E.NOKEY .9 lda #E.NOKEY
sec sec
@ -397,6 +404,23 @@ SLIST.GetDataLen
sta SLIST.DataLen+1 sta SLIST.DataLen+1
rts rts
*-------------------------------------- *--------------------------------------
SLIST.IsIDValid bit SLIST.Opt
bpl .2
cmp #'.'
beq .8
.1 bit SLIST.Opt
.2 bvc .3
cmp #'_'
beq .8
.3 jmp SHARED.IsDigitOrL
.8 clc
rts
*--------------------------------------
MAN MAN
SAVE usr/src/sys/kernel.s.slistx SAVE usr/src/sys/kernel.s.slistx
LOAD usr/src/sys/kernel.s LOAD usr/src/sys/kernel.s

View File

@ -1539,7 +1539,7 @@ RESET.VALUES .DA #0 MODE
*-------------------------------------- *--------------------------------------
TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
.DA #0,#0,#0 .DA #0,#0,#0
>PSTR "A2osX VT100 term" .PS "A2osX VT100 term"
.DA #S.DIB.T.CHAR .DA #S.DIB.T.CHAR
.DA #0 .DA #0
.DA K.VER .DA K.VER

View File

@ -144,28 +144,28 @@ K.StrFTime.addDecA
lda FOUTBuf+1 lda FOUTBuf+1
jmp SHARED.FORPNTpn jmp SHARED.FORPNTpn
*-------------------------------------- *--------------------------------------
TIMEX.DAY >PSTR "???" TIMEX.DAY .PS "???"
>PSTR "Monday" .PS "Monday"
>PSTR "Tuesday" .PS "Tuesday"
>PSTR "Wednesday" .PS "Wednesday"
>PSTR "Thursday" .PS "Thursday"
>PSTR "Friday" .PS "Friday"
>PSTR "Saturday" .PS "Saturday"
>PSTR "Sunday" .PS "Sunday"
*-------------------------------------- *--------------------------------------
TIMEX.MON >PSTR "???" TIMEX.MON .PS "???"
>PSTR "January" .PS "January"
>PSTR "February" .PS "February"
>PSTR "March" .PS "March"
>PSTR "April" .PS "April"
>PSTR "May" .PS "May"
>PSTR "June" .PS "June"
>PSTR "July" .PS "July"
>PSTR "August" .PS "August"
>PSTR "September" .PS "September"
>PSTR "October" .PS "October"
>PSTR "November" .PS "November"
>PSTR "December" .PS "December"
*-------------------------------------- *--------------------------------------
TIMEX.PTime2Time.BAD TIMEX.PTime2Time.BAD
lda #E.OOB lda #E.OOB

View File

@ -136,17 +136,17 @@ GO.OLDMLI jmp $ffff SELF MODIFIED
*-------------------------------------- *--------------------------------------
.INB usr/src/shared/x.printf.s .INB usr/src/shared/x.printf.s
*-------------------------------------- *--------------------------------------
MSG.INIT .AZ "AppleTalk Driver For A2osX\n" MSG.INIT .CZ "AppleTalk Driver For A2osX\r"
MSG.FAILED .AZ "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\n" MSG.FAILED .CZ "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\r"
MSG.NOHW .AZ "AppleTalk Workstation Card Not Found.\n" MSG.NOHW .CZ "AppleTalk Workstation Card Not Found.\r"
MSG.HWOK .AZ "AppleTalk Workstation Card Type #%d Found In Slot #%d.\n" MSG.HWOK .CZ "AppleTalk Workstation Card Type #%d Found In Slot #%d.\r"
MSG.ATINIT .AZ "Calling ATInit...\n" MSG.ATINIT .CZ "Calling ATInit...\r"
MSG.IRQ .AZ "Setting Up IRQ Vector...\n" MSG.IRQ .CZ "Setting Up IRQ Vector...\r"
MSG.PREFIX1 .AZ "Getting ProDOS Prefix...\n" MSG.PREFIX1 .CZ "Getting ProDOS Prefix...\r"
MSG.PREFIX2 .AZ "Setting AppleTalk Prefix...\n" MSG.PREFIX2 .CZ "Setting AppleTalk Prefix...\r"
MSG.AFPKO .AZ "WARNING : Enabling AFP failed : EC=%h%h.\n" MSG.AFPKO .CZ "WARNING : Enabling AFP failed : EC=%h%h.\r"
MSG.OK .AZ "AppleTalk Driver Successfully Installed.\n" MSG.OK .CZ "AppleTalk Driver Successfully Installed.\r"
MSG.KO .AZ "AppleTalk Driver Install Failed : EC=%h.\n" MSG.KO .CZ "AppleTalk Driver Install Failed : EC=%h.\r"
*-------------------------------------- *--------------------------------------
SIG.ATLK .AS "ATLK" SIG.ATLK .AS "ATLK"
WC.Flag .BS 1 WC.Flag .BS 1

View File

@ -3,7 +3,7 @@ NEW
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF sys/pm/pm.ramworks .TF sys/pm.ramworks
*-------------------------------------- *--------------------------------------
.INB inc/macros.i .INB inc/macros.i
.INB inc/io.i .INB inc/io.i
@ -490,16 +490,16 @@ RW.BLOCK2.END .EQ *
*-------------------------------------- *--------------------------------------
.INB usr/src/shared/x.printf.s .INB usr/src/shared/x.printf.s
*-------------------------------------- *--------------------------------------
RW.MSG .AZ "SuperExpander E, RAMWorks (I,II,III,z-Ram) Driver For A2osX\n" RW.MSG .CZ "SuperExpander E, RAMWorks (I,II,III,z-Ram) Driver For A2osX\r"
RW.MSG.RAMDISOK .AZ "/RAM Device Disabled/Not Present.\n" RW.MSG.RAMDISOK .CZ "/RAM Device Disabled/Not Present.\r"
RW.MSG.RAMDISKO .AZ "Problem Disabling /RAM Device.\n" RW.MSG.RAMDISKO .CZ "Problem Disabling /RAM Device.\r"
RW.MSG.RAM3OK .AZ "/RAM3 Device Already Installed.\n" RW.MSG.RAM3OK .CZ "/RAM3 Device Already Installed.\r"
RW.MSG.OK1 .AZ "%D KB Detected (%d Pages), %D KB (%d Pages) Available for RamDrive.\n" RW.MSG.OK1 .CZ "%D KB Detected (%d Pages), %D KB (%d Pages) Available for RamDrive.\r"
RW.MSG.KO1 .AZ "Not Detected.\n" RW.MSG.KO1 .CZ "Not Detected.\r"
RW.MSG.OK2 .AZ "RamWorks Driver Installed.\n" RW.MSG.OK2 .CZ "RamWorks Driver Installed.\r"
RW.MSG.KO2 .AZ "RamWorks Driver Install Error.\n" RW.MSG.KO2 .CZ "RamWorks Driver Install Error.\r"
RW.MSG.OK3 .AZ "RamWorks Drive Formatted as /RAM3.\n" RW.MSG.OK3 .CZ "RamWorks Drive Formatted as /RAM3.\r"
RW.MSG.KO3 .AZ "RamWorks Drive Format Error.\n" RW.MSG.KO3 .CZ "RamWorks Drive Format Error.\r"
*-------------------------------------- *--------------------------------------
* Driver for Ramworks in main LC * Driver for Ramworks in main LC
* $FF00 -> $FF9A (Inclusive) * $FF00 -> $FF9A (Inclusive)

View File

@ -22,9 +22,11 @@ DRV.UNITNUM .EQ $43
DRV.BUFF .EQ $44 DRV.BUFF .EQ $44
DRV.BLKNUM .EQ $46 DRV.BLKNUM .EQ $46
*-------------------------------------- *--------------------------------------
DRV.BLK .PH DRV.BLK.START Main LC Bnk 2 $D001->$DFFF DRV.BLK .PH DRV.BLK.START Main LC Bnk 2 $D400->$DFFF
DRV.BLK.1 lda DRV.COMMAND S=0,R=1,W=2,F=3 DRV.BLK.Slot0n .BS 1
lda DRV.COMMAND S=0,R=1,W=2,F=3
bne .1 bne .1
bit DRV.UNITNUM return Status bit DRV.UNITNUM return Status
@ -390,7 +392,7 @@ DRV.W200.L .EQ *-DRV.W200
*-------------------------------------- *--------------------------------------
DRV.D1TotalBlks .BS 2 DRV.D1TotalBlks .BS 2
DRV.D2TotalBlks .BS 2 DRV.D2TotalBlks .BS 2
DRV.BLK.Slotn0 .BS 1 SELF MODIFIED slot 0n DRV.BLK.Slotn0 .BS 1 SELF MODIFIED slot n0
DRV.TimeOut .BS 1 DRV.TimeOut .BS 1
DRV.FrameSize .BS 2 DRV.FrameSize .BS 2
DRV.nCnt .BS 2 DRV.nCnt .BS 2

View File

@ -89,7 +89,6 @@ VEDRIVE.ReadConf
*-------------------------------------- *--------------------------------------
VEDRIVE.CONF.L >LDYAI CONF.LBUF VEDRIVE.CONF.L >LDYAI CONF.LBUF
>STYA ZPPtr1 >STYA ZPPtr1
jsr PrintFYA
lda (ZPPtr1) lda (ZPPtr1)

View File

@ -227,7 +227,7 @@ GS.Write php
clc clc
rts rts
*-------------------------------------- *--------------------------------------
GS.Name >PSTR "LanCEgs" GS.Name .PS "LanCEgs"
*-------------------------------------- *--------------------------------------
DRV.GS .PH DRV.NIC.START DRV.GS .PH DRV.NIC.START

View File

@ -232,7 +232,7 @@ U1.WRITE php
clc clc
rts rts
*-------------------------------------- *--------------------------------------
U1.Name >PSTR "Uthernet V1" U1.Name .PS "Uthernet V1"
*-------------------------------------- *--------------------------------------
DRV.U1 .PH DRV.NIC.START DRV.U1 .PH DRV.NIC.START

View File

@ -246,7 +246,7 @@ U2.Write php
clc clc
rts rts
*-------------------------------------- *--------------------------------------
U2.Name >PSTR "Uthernet II" U2.Name .PS "Uthernet II"
Offset .BS 2 Offset .BS 2
TotalSize .BS 2 TotalSize .BS 2
*-------------------------------------- *--------------------------------------

View File

@ -384,6 +384,9 @@ VEDRIVE.Install ldx #PATCH.SIZE
lda Slotn0 lda Slotn0
sta DRV.BLK.Slotn0 sta DRV.BLK.Slotn0
lda CONF.SLOT
sta DRV.BLK.Slot0n
ldx CONF.NIC ldx CONF.NIC
lda .10,x lda .10,x
@ -466,9 +469,10 @@ VEDRIVE.Move ldy #0
*-------------------------------------- *--------------------------------------
COPYRIGHT .AS "(C)APPLE " COPYRIGHT .AS "(C)APPLE "
COPYRIGHT.LEN .EQ *-COPYRIGHT COPYRIGHT.LEN .EQ *-COPYRIGHT
*--------------------------------------
PATCH .PH DRV.EntryPoint PATCH .PH DRV.EntryPoint
bit RRAMWRAMBNK2 bit RRAMWRAMBNK2
jsr DRV.BLK.START jsr DRV.BLK.START+1
bit RRAMWRAMBNK1 bit RRAMWRAMBNK1
rts rts
.EP .EP
@ -483,44 +487,44 @@ PATCH.SIZE .EQ *-PATCH
.INB usr/src/sys/pm.vedrive.s.u1 .INB usr/src/sys/pm.vedrive.s.u1
.INB usr/src/sys/pm.vedrive.s.u2 .INB usr/src/sys/pm.vedrive.s.u2
*-------------------------------------- *--------------------------------------
VEDRIVE.MSG0 .AZ "VEDRIVE (ADTPro Virtual Ethernet HD) Driver\n" VEDRIVE.MSG0 .CZ "VEDRIVE (ADTPro Virtual Ethernet HD) Driver\r"
VEDRIVE.DRVKO .AZ "VEDRIVE (Or other custom Driver) Already Installed.\n" VEDRIVE.DRVKO .CZ "VEDRIVE (Or other custom Driver) Already Installed.\r"
VEDRIVE.CONF .AZ "Checking %S...\n" VEDRIVE.CONF .CZ "Checking %S...\r"
VEDRIVE.CONFKO .AZ "Error reading VEDRIVE.CONF file.\n" VEDRIVE.CONFKO .CZ "Error reading VEDRIVE.CONF file.\r"
VEDRIVE.CONFSYN .AZ "Syntax error in VEDRIVE.CONF file.\n" VEDRIVE.CONFSYN .CZ "Syntax error in VEDRIVE.CONF file.\r"
VEDRIVE.CONFINV .AZ "Invalid VEDRIVE.CONF file.\n" VEDRIVE.CONFINV .CZ "Invalid VEDRIVE.CONF file.\r"
VEDRIVE.NICKO .AZ "Hardware not detected.\n" VEDRIVE.NICKO .CZ "Hardware not detected.\r"
VEDRIVE.NICOK .AZ "%S Rev. %d.%d Found At Slot %d.\n" VEDRIVE.NICOK .CZ "%S Rev. %d.%d Found At Slot %d.\r"
VEDRIVE.DHCP .AZ "Querying DHCP...\n" VEDRIVE.DHCP .CZ "Querying DHCP...\r"
VEDRIVE.DHCPKO .AZ "No response from DHCP.\n" VEDRIVE.DHCPKO .CZ "No response from DHCP.\r"
VEDRIVE.IPKO .AZ "Unable to setup IP configuration.\n" VEDRIVE.IPKO .CZ "Unable to setup IP configuration.\r"
VEDRIVE.IPOK .AZ "IP config : %d.%d.%d.%d/%d.%d.%d.%d GW=%d.%d.%d.%d\n" VEDRIVE.IPOK .CZ "IP config : %d.%d.%d.%d/%d.%d.%d.%d GW=%d.%d.%d.%d\r"
VEDRIVE.SRV .AZ "Contacting ADTPro Server..." VEDRIVE.SRV .CZ "Contacting ADTPro Server..."
VEDRIVE.SRVKO .AZ "No Response From ADTPro Server.\n" VEDRIVE.SRVKO .CZ "No Response From ADTPro Server.\r"
VEDRIVE.SRVOK .AZ "ADTPro Server Is Online.\n" VEDRIVE.SRVOK .CZ "ADTPro Server Is Online.\r"
VEDRIVE.NOSLOT .AZ "No ProDOS device slot available.\n" VEDRIVE.NOSLOT .CZ "No ProDOS device slot available.\r"
VEDRIVE.DEVOK .AZ "VEDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\n" VEDRIVE.DEVOK .CZ "VEDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\r"
VEDRIVE.DRVIKO .AZ "Unable to install VEDRIVE.\n" VEDRIVE.DRVIKO .CZ "Unable to install VEDRIVE.\r"
VEDRIVE.DRVIOK .AZ "VEDRIVE Successfully Installed.\n" VEDRIVE.DRVIOK .CZ "VEDRIVE Successfully Installed.\r"
*-------------------------------------- *--------------------------------------
CONF.FILENAME .AS "vedrive.conf" CONF.FILENAME .AS "vedrive.conf"
CONF.FILENAME.L .EQ *-CONF.FILENAME CONF.FILENAME.L .EQ *-CONF.FILENAME
*-------------------------------------- *--------------------------------------
CONF.KW >PSTR "nic" CONF.KW .PS "nic"
>PSTR "slot" .PS "slot"
>PSTR "mac" .PS "mac"
>PSTR "address" .PS "address"
>PSTR "netmask" .PS "netmask"
>PSTR "gateway" .PS "gateway"
>PSTR "server" .PS "server"
>PSTR "port" .PS "port"
>PSTR "blksize1" .PS "blksize1"
>PSTR "blksize2" .PS "blksize2"
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------
CONF.KW.NIC >PSTR "lancegs" CONF.KW.NIC .PS "lancegs"
>PSTR "uthernet" .PS "uthernet"
>PSTR "uthernet2" .PS "uthernet2"
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------
CONF.NIC .HS FF CONF.NIC .HS FF

View File

@ -334,15 +334,15 @@ VSDRIVE.Install ldx #PATCH.LEN
*-------------------------------------- *--------------------------------------
DEVSIG.Offset .HS 05070B0C DEVSIG.Offset .HS 05070B0C
DEVSIG.Value .HS 38180131 DEVSIG.Value .HS 38180131
VSDRIVE.MSG0 .AZ "VSDRIVE (ADTPro Virtual Serial HD) Driver For A2osX\n" VSDRIVE.MSG0 .CZ "VSDRIVE (ADTPro Virtual Serial HD) Driver For A2osX\r"
VSDRIVE.DRVKO .AZ "VSDRIVE (Or other custom Driver) Already Installed.\n" VSDRIVE.DRVKO .CZ "VSDRIVE (Or other custom Driver) Already Installed.\r"
VSDRIVE.SSCKO .AZ "SSC Not Detected.\n" VSDRIVE.SSCKO .CZ "SSC Not Detected.\r"
VSDRIVE.SSCOK .AZ "SSC Found At Slot %d.\nContacting ADTPro Server..." VSDRIVE.SSCOK .CZ "SSC Found At Slot %d.\rContacting ADTPro Server..."
VSDRIVE.SRVKO .AZ "No Response From ADTPro Server (EC=%d).\n" VSDRIVE.SRVKO .CZ "No Response From ADTPro Server (EC=%d).\r"
VSDRIVE.SRVOK .AZ "ADTPro Server Is Online.\n" VSDRIVE.SRVOK .CZ "ADTPro Server Is Online.\r"
VSDRIVE.NOSLOT .AZ "No ProDOS device slot available.\n" VSDRIVE.NOSLOT .CZ "No ProDOS device slot available.\r"
VSDRIVE.DEVOK .AZ "VSDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\n" VSDRIVE.DEVOK .CZ "VSDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\r"
VSDRIVE.OK .AZ "VSDRIVE Driver Successfully Installed.\n" VSDRIVE.OK .CZ "VSDRIVE Driver Successfully Installed.\r"
*-------------------------------------- *--------------------------------------
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes) * ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
*-------------------------------------- *--------------------------------------