mirror of
https://github.com/A2osX/A2osX.git
synced 2024-12-23 21:30:48 +00:00
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:
parent
a5ba00f1a6
commit
9e960a234e
79
.Docs/ASM.md
79
.Docs/ASM.md
@ -4,46 +4,59 @@
|
||||
|
||||
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
|
||||
|
||||
Symbols are case sensitive
|
||||
no .AC support
|
||||
+ Symbols are case sensitive
|
||||
+ No .AC support
|
||||
+ PC and global addresses are 32 bits
|
||||
+ Local / Private labels are 16 bits range and from .1 to .255
|
||||
|
||||
## Directives
|
||||
|
||||
| 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 |
|
||||
| .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) | |
|
||||
| .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) |
|
||||
| .CS | C-string | S-C 3.1,A2osX | Working | | |
|
||||
| .CZ | C-String Zero terminated| S-C 3.1,A2osX | Working | | |
|
||||
| .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 | | |
|
||||
| .DU,.DUMMY | begin DUmmy section | S-C,A2osX | Working | | |
|
||||
| .ED | End Dummy section | S-C,A2osX | Working | | |
|
||||
| .ELSE | conditional ELSE | S-C,A2osX | Working | | |
|
||||
| .EM | End Macro | S-C,A2osX | Working | | |
|
||||
| .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 |
|
||||
| .EQ | EQuate | 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` | |
|
||||
| .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` | |
|
||||
| .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 | |
|
||||
| .OR | ORigin | S-C,A2osX | Working | `.OR address` | Set initial output address (only one allowed per assembly) |
|
||||
| .PG | PaGe control | S-C,A2osX | IGNORED | | |
|
||||
| .PH | PHase start | S-C,A2osX | Working | `.PH address` | Start a temporary addressing range |
|
||||
| .CS | Pascal-string | S-C 3.1,A2osX | Working | | |
|
||||
| .SE | | S-C,A2osX | Working | | |
|
||||
| .TA | Target Address| S-C,A2osX | IGNORED | | |
|
||||
| .TF | Target File | S-C,A2osX | Working | `.TF TargetFile[,Txxx]` | only ,TSYS supported |
|
||||
| .TI | TItle | S-C,A2osX | IGNORED | | |
|
||||
| .US | USer defined | S-C,A2osX | IGNORED | | |
|
||||
| .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) | |
|
||||
| .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) |
|
||||
| .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 | (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` |
|
||||
| .DO | conditional start | S-C, A2osX | Working | | |
|
||||
| .DU,.DUMMY | begin DUmmy section | S-C, A2osX | Working | | |
|
||||
| .ED | End Dummy section | S-C, A2osX | Working | | |
|
||||
| .ELSE | conditional ELSE | S-C, A2osX | Working | | |
|
||||
| .EM | End Macro | S-C, A2osX | Working | | |
|
||||
| .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 |
|
||||
| .EQ | EQuate | 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` | |
|
||||
| .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` | |
|
||||
| .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 | |
|
||||
| .OR | ORigin | S-C, A2osX | Working | `.OR address` | Set initial output address (only one allowed per assembly) |
|
||||
| .PG | PaGe control | S-C, A2osX | IGNORED | | |
|
||||
| .PH | PHase start | S-C, A2osX | Working | `.PH address` | Start a temporary addressing range |
|
||||
| .PS | Pascal-string | S-C 3.1, A2osX | Working | | |
|
||||
| .SE | | S-C, A2osX | Working | | |
|
||||
| .TA | Target Address| S-C, A2osX | IGNORED | | |
|
||||
| .TF | Target File | S-C, A2osX | Working | `.TF TargetFile[,Txxx]` | only ,TSYS supported |
|
||||
| .TI | TItle | S-C, A2osX | IGNORED | | |
|
||||
| .US | USer defined | S-C, A2osX | IGNORED | | |
|
||||
|
||||
## 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 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.
@ -256,15 +256,15 @@ MLIREAD03 .DA #4
|
||||
MLICLOSE03 .DA #1
|
||||
.BS 1
|
||||
*--------------------------------------
|
||||
SYSKERNEL >PSTR "sys/kernel"
|
||||
SYSKERNEL .PS "sys/kernel"
|
||||
*--------------------------------------
|
||||
MSG.INIT1 >PSTR "A2osX[Stage1]:Init"
|
||||
MSG.SETPREFIXOK >PSTR "Prefix Set: "
|
||||
MSG.SETPREFIXKO >PSTR "Insert Vol:"
|
||||
MSG.LOAD >PSTR "Loading : "
|
||||
MSG.LOAD.KO >PSTR " Error $"
|
||||
MSG.LOAD.OK >PSTR " OK."
|
||||
MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete."
|
||||
MSG.INIT1 .PS "A2osX[Stage1]:Init"
|
||||
MSG.SETPREFIXOK .PS "Prefix Set: "
|
||||
MSG.SETPREFIXKO .PS "Insert Vol:"
|
||||
MSG.LOAD .PS "Loading : "
|
||||
MSG.LOAD.KO .PS " Error $"
|
||||
MSG.LOAD.OK .PS " OK."
|
||||
MSG.INIT1OK .PS "A2osX[Stage1]:Complete."
|
||||
*--------------------------------------
|
||||
.LIST ON
|
||||
QC.FREE .EQ $1300-*
|
||||
|
40
A2osX.S.txt
40
A2osX.S.txt
@ -593,27 +593,27 @@ LoadPM.Bits .HS 8040201008040201
|
||||
*--------------------------------------
|
||||
.INB usr/src/shared/x.printf.s
|
||||
*--------------------------------------
|
||||
MSG.INIT0 .AZ "A2osX[Stage0]:Init\n"
|
||||
MSG.SYSMEM .AZ "Checking System Memory..."
|
||||
MSG.SYSMEM.OK .AZ "128k Detected.\n"
|
||||
MSG.SYSMEM.KO .AZ "A2osX Requires At Least 128k Memory.\n"
|
||||
MSG.INIT0 .CZ "A2osX[Stage0]:Init\r"
|
||||
MSG.SYSMEM .CZ "Checking System Memory..."
|
||||
MSG.SYSMEM.OK .CZ "128k Detected.\r"
|
||||
MSG.SYSMEM.KO .CZ "A2osX Requires At Least 128k Memory.\r"
|
||||
|
||||
MSG.CPU .AZ "Checking CPU..."
|
||||
MSG.CPU.OK .AZ "65C02 CPU (or higher) Detected.\n"
|
||||
MSG.CPU.KO .AZ "A2osX Requires At Least A 65C02 CPU.\n"
|
||||
MSG.CPU .CZ "Checking CPU..."
|
||||
MSG.CPU.OK .CZ "65C02 CPU (or higher) Detected.\r"
|
||||
MSG.CPU.KO .CZ "A2osX Requires At Least A 65C02 CPU.\r"
|
||||
|
||||
MSG.RAMDRV .AZ "Checking ProDOS RamDrive..."
|
||||
MSG.RAMDRV.OK .AZ "Successfully Disabled.\n"
|
||||
MSG.RAMDRV.KO0 .AZ "Not Detected.\n"
|
||||
MSG.RAMDRV.KO1 .AZ "Uninstall Failed.\n"
|
||||
MSG.RAMDRV .CZ "Checking ProDOS RamDrive..."
|
||||
MSG.RAMDRV.OK .CZ "Successfully Disabled.\r"
|
||||
MSG.RAMDRV.KO0 .CZ "Not Detected.\r"
|
||||
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.PMSYSDIR .AZ "SYS dir is %S\n"
|
||||
MSG.PMSYSDIR.KO .AZ "***Error : $%h\n"
|
||||
MSG.PMLOAD .AZ "***Loading PM : %S\n"
|
||||
MSG.INIT0OK .AZ "A2osX[Stage0]:Complete.\n"
|
||||
MSG.PMENUM .CZ "Looking For ProDOS Modules...\r"
|
||||
MSG.PMSYSDIR .CZ "SYS dir is %S\r"
|
||||
MSG.PMSYSDIR.KO .CZ "***Error : $%h\r"
|
||||
MSG.PMLOAD .CZ "***Loading PM : %S\r"
|
||||
MSG.INIT0OK .CZ "A2osX[Stage0]:Complete.\r"
|
||||
*--------------------------------------
|
||||
MLIGETPREFIX01
|
||||
MLISETPREFIX01 .DA #1
|
||||
@ -669,9 +669,9 @@ MLIQUIT01 .DA #4
|
||||
.DA #0
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
A2osX.LOGO >PSTR "A2osX.logo"
|
||||
SYS >PSTR "sys/"
|
||||
PM. >PSTR "PM."
|
||||
A2osX.LOGO .PS "A2osX.logo"
|
||||
SYS .PS "sys/"
|
||||
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.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
|
||||
|
@ -7,7 +7,7 @@ CORE.Init ldy #CCS.MAX
|
||||
|
||||
>LDYAI CODESEG
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
bcs .90
|
||||
|
||||
>STYA ZPCodeBufPtr
|
||||
txa
|
||||
@ -21,11 +21,13 @@ CORE.Init ldy #CCS.MAX
|
||||
txa
|
||||
>STA.G hDataBuf
|
||||
|
||||
lda #SL..+SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
.90 bcs .9
|
||||
|
||||
>STA.G hLabels
|
||||
|
||||
lda #SL..+SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*---------------------------------------
|
||||
MAC.Init >SYSCALL SListNew
|
||||
MAC.Init lda #SL..+SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
>STA.G MAC.hList
|
||||
|
@ -15,7 +15,8 @@ NEW
|
||||
* 1 : Macro Context ID (private)
|
||||
* 2-3 : 16 bits offset (PC)
|
||||
*---------------------------------------
|
||||
SYM.Init >SYSCALL SListNew
|
||||
SYM.Init lda #SL..+SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
>STA.G SYM.hList
|
||||
@ -474,7 +475,8 @@ SYM.Dump.1 >LDYA L.MSG.SYMBOLS
|
||||
>SYSCALL PutS
|
||||
|
||||
stz ZPPtr2
|
||||
stz ZPPtr2+1
|
||||
lda #1
|
||||
sta ZPPtr2+1
|
||||
|
||||
.1 >LDYA ZPPtr2
|
||||
>STYA ZPPtr1
|
||||
|
@ -1,16 +1,19 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
CORE.Init >SYSCALL SListNew
|
||||
CORE.Init lda #SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
>STA.G CC.hDefines
|
||||
|
||||
lda #SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
>STA.G CC.hTags
|
||||
|
||||
lda #SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
|
228
BIN/CC.S.EXP.txt
228
BIN/CC.S.EXP.txt
@ -128,9 +128,9 @@ CC.EXP.Eval ldx ZPPtr1 local : returned T/Q
|
||||
|
||||
jsr CC.EXP.GetChar
|
||||
bcs .29
|
||||
|
||||
|
||||
bra .30
|
||||
|
||||
|
||||
.25 cmp #'"' String literal
|
||||
bne CC.EXP.Eval.ESYN
|
||||
|
||||
@ -246,7 +246,7 @@ CC.EXP.BOPS bit #SYM.Q.PPPOINTER
|
||||
|
||||
ldy #SYM.T.UINT
|
||||
bra .3
|
||||
|
||||
|
||||
.10 cpy #SYM.T.UINT
|
||||
bcs .3
|
||||
|
||||
@ -255,7 +255,7 @@ CC.EXP.BOPS bit #SYM.Q.PPPOINTER
|
||||
|
||||
cpy #SYM.T.SCHAR
|
||||
beq .2
|
||||
|
||||
|
||||
lda #E.TMISMATCH
|
||||
sec
|
||||
rts
|
||||
@ -354,29 +354,29 @@ CC.EXP.GetNum cpy #SYM.T.FLOAT
|
||||
*--------------------------------------
|
||||
CC.EXP.GetChar ldy ZPPtr2+1
|
||||
bne .9
|
||||
|
||||
|
||||
lda ZPPtr2
|
||||
cmp #SYM.T.UCHAR
|
||||
beq .1
|
||||
|
||||
|
||||
cmp #SYM.T.SCHAR
|
||||
bne .9
|
||||
|
||||
|
||||
.1 jsr CC.GetNextCharEsc
|
||||
bcs .9
|
||||
|
||||
|
||||
jsr CODE.PUSHI
|
||||
bcs .99
|
||||
|
||||
|
||||
jsr CC.GetNextChar
|
||||
bcs .9
|
||||
|
||||
|
||||
cmp #'''
|
||||
bne .9
|
||||
|
||||
jsr CC.GetNextCharNB skip '
|
||||
|
||||
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -417,7 +417,7 @@ CC.EXP.AddConstCharP
|
||||
|
||||
.3 jsr CC.GetNextCharNBNL Skip "
|
||||
bcs .8
|
||||
|
||||
|
||||
cmp #'"'
|
||||
beq .1
|
||||
|
||||
@ -464,7 +464,7 @@ CC.EXP.GetVar stz ExpState
|
||||
|
||||
.7 jsr CC.EXP.PushValue
|
||||
bcs .99
|
||||
|
||||
|
||||
.8 jmp CC.SYM.LookupCheckTQ
|
||||
|
||||
.99 rts
|
||||
@ -498,27 +498,27 @@ CC.EXP.postinc lda ExpState
|
||||
lda (ZPLookupSymPtr) #SYM.T
|
||||
cmp #SYM.T.FLOAT
|
||||
bcs .98
|
||||
|
||||
|
||||
tay
|
||||
|
||||
lda CC.TYPESIZE-1,y
|
||||
lsr
|
||||
bcc .2
|
||||
|
||||
|
||||
>LDYA L.PCC.Inc1
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
.2 lsr
|
||||
bcc .4
|
||||
|
||||
|
||||
>LDYA L.PCC.Inc2
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
.4 >LDYA L.PCC.Inc4
|
||||
|
||||
.4 >LDYA L.PCC.Inc4
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
|
||||
.8
|
||||
.8
|
||||
|
||||
.98 lda #E.ESYN
|
||||
sec
|
||||
@ -542,27 +542,27 @@ CC.EXP.postdec lda ExpState
|
||||
lda (ZPLookupSymPtr) #SYM.T
|
||||
cmp #SYM.T.FLOAT
|
||||
bcs .98
|
||||
|
||||
|
||||
tay
|
||||
|
||||
lda CC.TYPESIZE-1,y
|
||||
lsr
|
||||
bcc .2
|
||||
|
||||
|
||||
>LDYA L.PCC.Dec1
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
.2 lsr
|
||||
bcc .4
|
||||
|
||||
|
||||
>LDYA L.PCC.Dec2
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
.4 >LDYA L.PCC.Dec4
|
||||
|
||||
.4 >LDYA L.PCC.Dec4
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
|
||||
.8
|
||||
.8
|
||||
|
||||
.98 lda #E.ESYN
|
||||
sec
|
||||
@ -595,10 +595,10 @@ CC.EXP.Idx ldy #SYM.Q
|
||||
jsr CC.EXP.GetSymSizeOfInAXC
|
||||
cmp #1
|
||||
bne .1
|
||||
|
||||
|
||||
cpx #0
|
||||
beq .2 sizeof=1, no MUL required
|
||||
|
||||
|
||||
.1 jsr CODE.PUSHAXI ...sizeof on stack...
|
||||
bcs .99
|
||||
|
||||
@ -612,7 +612,7 @@ CC.EXP.Idx ldy #SYM.Q
|
||||
|
||||
jsr CC.GetCharNB
|
||||
bcs .97
|
||||
|
||||
|
||||
cmp #']'
|
||||
bne .97
|
||||
|
||||
@ -626,7 +626,7 @@ CC.EXP.Idx ldy #SYM.Q
|
||||
|
||||
.97 lda #E.ESYN
|
||||
sec
|
||||
rts
|
||||
rts
|
||||
|
||||
.98 lda #E.TMISMATCH
|
||||
sec
|
||||
@ -640,12 +640,12 @@ CC.EXP.array ldy #SYM.Def
|
||||
* jsr CODE.DEBUG
|
||||
jsr CC.EXP.PushAddr array[int]...
|
||||
bcc .2
|
||||
|
||||
|
||||
rts
|
||||
|
||||
|
||||
.1 jsr CC.EXP.GetAddr2 array[]...it is a *
|
||||
bcs .9
|
||||
|
||||
|
||||
>LDYA L.PCC.PushDeref2
|
||||
jsr CODE.EmitPCC
|
||||
bcs .9
|
||||
@ -667,48 +667,48 @@ CC.EXP.array ldy #SYM.Def
|
||||
|
||||
.3 jsr CC.GetNextCharNB skip ']'
|
||||
bcs .98
|
||||
|
||||
|
||||
cmp #'['
|
||||
bne .8
|
||||
|
||||
|
||||
jsr CC.GetNextCharNB skip '['
|
||||
bcs .98
|
||||
|
||||
|
||||
ldy #SYM.Q
|
||||
lda (ZPLookupSymPtr),y
|
||||
and #SYM.Q.AAARRAY
|
||||
.39 beq .99
|
||||
|
||||
|
||||
jsr CC.EXP.array.getIdx ...int16 on stack...
|
||||
bcs .9
|
||||
|
||||
|
||||
ldy #SYM.Def+3
|
||||
lda (ZPLookupSymPtr),y
|
||||
tax
|
||||
dey
|
||||
lda (ZPLookupSymPtr),y
|
||||
jsr CODE.PUSHAXI [][SIZE] on stack
|
||||
|
||||
|
||||
ldx #FPU.wMUL
|
||||
jsr CODE.FPUCALL [][SIZE] * int16 on stack
|
||||
|
||||
|
||||
jsr CC.EXP.GetSymSizeOfInAXC
|
||||
jsr CODE.PUSHAXI ...sizeof on stack...
|
||||
bcs .9
|
||||
|
||||
ldx #FPU.wMUL
|
||||
jsr CODE.FPUCALL ...sizeof*int16...
|
||||
|
||||
|
||||
ldx #FPU.wAdd
|
||||
jsr CODE.FPUCALL ...add to base address
|
||||
bcs .9
|
||||
|
||||
|
||||
jsr CC.GetNextCharNB skip ']'
|
||||
bcs .98
|
||||
|
||||
|
||||
* TODO : [][][]
|
||||
|
||||
|
||||
.8 lda #ExpState.AonStack
|
||||
sta ExpState
|
||||
|
||||
@ -741,7 +741,7 @@ CC.EXP.array.getIdx
|
||||
sec
|
||||
sbc #SYM.Q.ARRAY
|
||||
sta (ZPLookupSymPtr),y
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -749,11 +749,129 @@ CC.EXP.array.getIdx
|
||||
sec
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CC.EXP.Struct
|
||||
*--------------------------------------
|
||||
CC.EXP.pStruct lda #E.ESYN
|
||||
CC.EXP.SU lda (ZPLookupSymPtr)
|
||||
cmp #SYM.T.SU
|
||||
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
|
||||
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
|
||||
*--------------------------------------
|
||||
@ -805,7 +923,7 @@ CC.EXP.Deref ldy #SYM.Q
|
||||
>LDYA L.PCC.Deref2
|
||||
jsr CODE.EmitPCC
|
||||
bcs .99
|
||||
|
||||
|
||||
lda #ExpState.AinPTR
|
||||
sta ExpState
|
||||
|
||||
@ -893,7 +1011,7 @@ CC.EXP.PushAddr ldy #SYM.SC
|
||||
|
||||
.2 >LDYA L.PCC.PushUAddr
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CC.EXP.GetAddr1 ldy #SYM.SC
|
||||
@ -977,22 +1095,22 @@ CC.EXP.PushValue
|
||||
tay
|
||||
dey
|
||||
bne .1
|
||||
|
||||
|
||||
>LDYA L.PCC.PushValue1
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
|
||||
.1 cpy #1
|
||||
bne .2
|
||||
|
||||
bne .2
|
||||
|
||||
>LDYA L.PCC.PushValue2
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
|
||||
.2 jsr CODE.LDYI
|
||||
bcs .99
|
||||
|
||||
>LDYA L.PCC.PushValueY
|
||||
jmp CODE.EmitPCC
|
||||
|
||||
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
* out : A,X,C = size
|
||||
|
@ -597,7 +597,7 @@ CC.KW.SU.2 jsr CC.GetNextCharNB
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
CC.KW.SU.1 ldy #SYM.T.STRUCT
|
||||
CC.KW.SU.1 ldy #SYM.T.SU
|
||||
lda #0
|
||||
ldx #SYM.SC.TAG
|
||||
sec reset buffer
|
||||
@ -662,6 +662,9 @@ CC.KW.SU.1 ldy #SYM.T.STRUCT
|
||||
.38 jsr CC.GetNextCharNB skip '}'
|
||||
bcs .98
|
||||
|
||||
jsr CC.SYM.Add0000 Close F definition
|
||||
bcs .99
|
||||
|
||||
cmp #';'
|
||||
bne .40
|
||||
|
||||
@ -684,7 +687,7 @@ CC.KW.SU.1 ldy #SYM.T.STRUCT
|
||||
|
||||
.41 clc reuse buffer
|
||||
|
||||
ldy #SYM.T.STRUCT
|
||||
ldy #SYM.T.SU
|
||||
lda #0
|
||||
jsr CC.DECL.YAC
|
||||
bcs .99
|
||||
|
@ -5,7 +5,7 @@ CC.Link >LDYA L.MSG.LINKING
|
||||
>SYSCALL Puts
|
||||
|
||||
ldy #0
|
||||
lda #0
|
||||
lda #1
|
||||
|
||||
.1 >STYA ZPPtr1 SymID
|
||||
|
||||
|
@ -408,23 +408,33 @@ CC.SYM.AddWord phy
|
||||
rts
|
||||
*--------------------------------------
|
||||
CC.SYM.AddName jsr CC.GetCharNB
|
||||
|
||||
bcs .98
|
||||
|
||||
jsr CC.IsLetter
|
||||
bcs .98
|
||||
|
||||
.1 jsr CC.SYM.AddByte
|
||||
jsr CC.GetIDLen
|
||||
tax
|
||||
jsr CC.SYM.AddByte
|
||||
bcs .99
|
||||
|
||||
jsr CC.GetNextCharNB
|
||||
bcs .98
|
||||
ldy #0
|
||||
|
||||
jsr CC.IsLetterOrDigit
|
||||
bcc .1
|
||||
.1 lda (ZPLineBufPtr),y
|
||||
phy
|
||||
jsr CC.SYM.AddByte
|
||||
ply
|
||||
bcs .99
|
||||
|
||||
lda #0
|
||||
bra CC.SYM.AddByte
|
||||
iny
|
||||
dex
|
||||
bne .1
|
||||
|
||||
tya
|
||||
jsr CC.SkipA
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.98 lda #E.CSYN
|
||||
sec
|
||||
@ -562,6 +572,7 @@ CC.SYM.NewScope ldy ScopeIdx
|
||||
cpy #CC.hScopes+SCOPE.MAX
|
||||
bcs .9
|
||||
|
||||
lda #SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .99
|
||||
|
||||
|
20
BIN/CC.S.txt
20
BIN/CC.S.txt
@ -24,9 +24,8 @@ SYM.T.SINT .EQ 5
|
||||
SYM.T.ULONG .EQ 6
|
||||
SYM.T.SLONG .EQ 7
|
||||
SYM.T.FLOAT .EQ 8
|
||||
SYM.T.STRUCT .EQ 9
|
||||
SYM.T.UNION .EQ 10
|
||||
SYM.T.ENUM .EQ 11
|
||||
SYM.T.SU .EQ 9
|
||||
SYM.T.ENUM .EQ 10
|
||||
SYM.T.VARIADIC .EQ $FF
|
||||
SYM.Q .EQ 1
|
||||
SYM.Q.POINTER .EQ %01000000
|
||||
@ -54,11 +53,12 @@ SYM.Def .EQ 8 Funtions : fTQ,a1TQ,a2TQ....
|
||||
*
|
||||
SYM .EQ 10
|
||||
*--------------------------------------
|
||||
STRUCTF.T .EQ 0
|
||||
STRUCTF.Q .EQ 1
|
||||
STRUCTF.BitOfs .EQ 2
|
||||
STRUCTF.BitWidth .EQ 3
|
||||
STRUCTF.Name .EQ 4
|
||||
SU.F.T .EQ 0
|
||||
SU.F.Q .EQ 1
|
||||
SU.F.O .EQ 2
|
||||
SU.F.BitO .EQ 4
|
||||
SU.F.BitW .EQ 5
|
||||
SU.F.Name .EQ 6
|
||||
*--------------------------------------
|
||||
* Zero Page Segment, up to 32 bytes
|
||||
*--------------------------------------
|
||||
@ -147,8 +147,8 @@ L.CC.POSTOPS .DA CC.POSTOPS
|
||||
J.CC.POSTOPS .DA CC.EXP.postinc
|
||||
.DA CC.EXP.postdec
|
||||
.DA CC.EXP.idx
|
||||
.DA CC.EXP.Struct
|
||||
.DA CC.EXP.pStruct
|
||||
.DA CC.EXP.SU
|
||||
.DA CC.EXP.pSU
|
||||
L.CC.BOPS .DA CC.BOPS
|
||||
L.CC.DIRS .DA CC.DIRS
|
||||
L.CC.KW .DA CC.KW
|
||||
|
@ -2,16 +2,19 @@ NEW
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
CSH.Init >SYSCALL SListNew
|
||||
CSH.Init lda #SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .99
|
||||
|
||||
>STA.G CSH.hDefines
|
||||
|
||||
lda #SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .99
|
||||
|
||||
>STA.G CSH.hTags
|
||||
|
||||
lda #SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
|
@ -1023,7 +1023,8 @@ KW.ASSEMBLER
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.VLIST stz ZPPtr1
|
||||
stz ZPPtr1+1
|
||||
lda #1
|
||||
sta ZPPtr1+1
|
||||
|
||||
.1 >LDYA ZPPtr1
|
||||
>STYA ZPKeyID
|
||||
|
@ -374,6 +374,7 @@ CS.RUN >PUSHW L.MSG.GREETINGS
|
||||
txa
|
||||
>STA.G hCLBuf
|
||||
|
||||
lda #SL..+SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
|
@ -58,7 +58,7 @@ L.MSG.QUIT.SAVED
|
||||
L.MSG.QUIT.ERR .DA MSG.QUIT.ERR
|
||||
T.MSG.SLOT.DESC .DA MSG.SLOT.NODEV
|
||||
.DA MSG.SLOT.Z80
|
||||
.DA MSG.SLOT.VSD
|
||||
.DA MSG.SLOT.VXD
|
||||
.DA MSG.SLOT.ATK
|
||||
.DA MSG.SLOT.DII
|
||||
.DA MSG.SLOT.BLK
|
||||
@ -75,8 +75,7 @@ CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN >PUSHW L.MSG.TOPBAR
|
||||
>PUSHB #K.VER
|
||||
>PUSHB /K.VER
|
||||
>PUSHW A2osX.KVER
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
jsr CS.RUN.Load
|
||||
@ -359,7 +358,7 @@ CS.QUIT lda hFileBuf
|
||||
CS.END
|
||||
SLOTS .DA #0
|
||||
.DA #A2osX.S.Z80
|
||||
.DA #A2osX.S.VSDRIVE
|
||||
.DA #A2osX.S.VXDRIVE
|
||||
.DA #A2osX.S.ATCARD
|
||||
.DA #A2osX.S.DII
|
||||
.DA #A2osX.S.BLK
|
||||
@ -372,35 +371,35 @@ SLOTS .DA #0
|
||||
SLOTS.MAX .EQ *-SLOTS
|
||||
*--------------------------------------
|
||||
FILENAME .AZ "${ROOT}A2osX.kconfig"
|
||||
MSG.TOPBAR .AZ "\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.KO .AZ "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.KCONF .AZ "\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.HZ .AZ " Machine Timing : %d0 Hz\e[K\r\n"
|
||||
MSG.CHROOT .AZ " CHRoot to /RAMx : %10s"
|
||||
MSG.PMODE .AZ " Preemptive Mode : %s\e[K\r\n"
|
||||
MSG.TTYS .AZ " #TTYs : %d\e[K\r\n"
|
||||
MSG.ENABLED .AZ "Enabled "
|
||||
MSG.DISABLED .AZ "Disabled"
|
||||
MSG.SLOT .AZ " Slot #%d : %s\e[K\r\n"
|
||||
MSG.SLOT.NODEV .AZ "<Enabled>"
|
||||
MSG.SLOT.Z80 .AZ "Z80 CPU Board"
|
||||
MSG.SLOT.VSD .AZ "SSC Shared Driver for VSDRIVE"
|
||||
MSG.SLOT.ATK .AZ "AppleTalk Board"
|
||||
MSG.SLOT.DII .AZ "Disk ][ Controller"
|
||||
MSG.SLOT.BLK .AZ "Generic Block/SCSI Controller"
|
||||
MSG.SLOT.SP .AZ "SmartPort Controller"
|
||||
MSG.SLOT.COM .AZ "Communication Card"
|
||||
MSG.SLOT.XY .AZ "XY Pointing Device"
|
||||
MSG.SLOT.NIC .AZ "Network Interface Card"
|
||||
MSG.SLOT.CLK .AZ "Clock Card"
|
||||
MSG.SLOT.DIS .AZ "<Disabled>"
|
||||
MSG.PROMPT .AZ "\e[24;80H"
|
||||
MSG.QUIT .AZ "\ec"
|
||||
MSG.QUIT.SAVED .AZ "\ecA2osX.kconfig file saved.\r\n\r\n"
|
||||
MSG.QUIT.ERR .AZ "\ecError [$%h] while writing A2osX.kconfig file.\r\n\r\n"
|
||||
MSG.TOPBAR .CZ "\e[40;37m\e[7m\e[1;1HA2osX %d.%d Kernel Config Utility : "
|
||||
MSG.TOPBAR.OK .CZ "KCONFIG File Successfully Loaded. \e[0m"
|
||||
MSG.TOPBAR.KO .CZ "Invalid/missing KCONFIG File. \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 .CZ "\e[93;44m\e[2;1H------ Actual Kernel Configuration ------\e[K\r\n"
|
||||
MSG.FCONF .CZ "\e[93;44m\e[13;1H------ KCONFIG File Configuration -------\e[K\r\n"
|
||||
MSG.HZ .CZ " Machine Timing : %d0 Hz\e[K\r\n"
|
||||
MSG.CHROOT .CZ " CHRoot to /RAMx : %10s"
|
||||
MSG.PMODE .CZ " Preemptive Mode : %s\e[K\r\n"
|
||||
MSG.TTYS .CZ " #TTYs : %d\e[K\r\n"
|
||||
MSG.ENABLED .CZ "Enabled "
|
||||
MSG.DISABLED .CZ "Disabled"
|
||||
MSG.SLOT .CZ " Slot #%d : %s\e[K\r\n"
|
||||
MSG.SLOT.NODEV .CZ "<Enabled>"
|
||||
MSG.SLOT.Z80 .CZ "Z80 CPU Board"
|
||||
MSG.SLOT.VXD .CZ "VxDrive"
|
||||
MSG.SLOT.ATK .CZ "AppleTalk Board"
|
||||
MSG.SLOT.DII .CZ "Disk ][ Controller"
|
||||
MSG.SLOT.BLK .CZ "Generic Block/SCSI Controller"
|
||||
MSG.SLOT.SP .CZ "SmartPort Controller"
|
||||
MSG.SLOT.COM .CZ "Communication Card"
|
||||
MSG.SLOT.XY .CZ "XY Pointing Device"
|
||||
MSG.SLOT.NIC .CZ "Network Interface Card"
|
||||
MSG.SLOT.CLK .CZ "Clock Card"
|
||||
MSG.SLOT.DIS .CZ "<Disabled>"
|
||||
MSG.PROMPT .CZ "\e[24;80H"
|
||||
MSG.QUIT .CZ "\ec"
|
||||
MSG.QUIT.SAVED .CZ "\ecA2osX.kconfig file saved.\r\n\r\n"
|
||||
MSG.QUIT.ERR .CZ "\ecError [$%h] while writing A2osX.kconfig file.\r\n\r\n"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
@ -532,6 +532,7 @@ CMD.FUNCTION lda (ZPArgVBufPtr)
|
||||
>LDA.G hFuncList
|
||||
bne .1
|
||||
|
||||
lda #SL..+SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .99
|
||||
|
||||
|
@ -70,7 +70,7 @@ A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx
|
||||
A2osX.F.PMODE .EQ %01000000 Pre-emptive Mode
|
||||
A2osX.S .EQ $BEF8 $BEF9->$BEFF, 7 slots
|
||||
A2osX.S.Z80 .EQ $80
|
||||
A2osX.S.VSDRIVE .EQ $81
|
||||
A2osX.S.VXDRIVE .EQ $81
|
||||
A2osX.S.ATCARD .EQ $82
|
||||
A2osX.S.DII .EQ $C0
|
||||
A2osX.S.BLK .EQ $C1
|
||||
@ -168,6 +168,11 @@ SEEK.SET .EQ $00
|
||||
SEEK.CUR .EQ $01
|
||||
SEEK.END .EQ $02
|
||||
*--------------------------------------
|
||||
SL.. .EQ %10000000
|
||||
SL._ .EQ %01000000
|
||||
SL.NoCase .EQ %01000010
|
||||
SL.EndDollar .EQ %00000001
|
||||
*--------------------------------------
|
||||
* A2osX.SYSCALL Functions Indexes
|
||||
*--------------------------------------D1
|
||||
* STAT
|
||||
@ -674,4 +679,4 @@ S.SESSION.NAME .EQ 3
|
||||
*
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE INC/A2OSX.I
|
||||
SAVE inc/a2osx.i
|
||||
|
@ -326,24 +326,6 @@ FPU.FOUT .EQ 210 PrintF
|
||||
cpy #]1+4
|
||||
bne :1
|
||||
.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
|
||||
ldy #]1
|
||||
@ -555,23 +537,6 @@ FPU.FOUT .EQ 210 PrintF
|
||||
cpy #4
|
||||
bne :1
|
||||
.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
|
||||
>PUSHB pBase
|
||||
@ -648,13 +613,5 @@ FPU.FOUT .EQ 210 PrintF
|
||||
.FIN
|
||||
.EM
|
||||
*--------------------------------------
|
||||
* General Strings Macros
|
||||
*--------------------------------------
|
||||
.MA PSTR
|
||||
.DA #:1-*-1
|
||||
.AS "]1"
|
||||
:1 .EQ *
|
||||
.EM
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE inc/macros.i
|
||||
|
@ -58,17 +58,7 @@ PrintFYA.1 stz X.b0Flag
|
||||
tax
|
||||
jmp (PrintFYA.Tbl,x)
|
||||
|
||||
.7 cmp #'\'
|
||||
bne .8
|
||||
|
||||
jsr PrintFYA.Next
|
||||
beq PrintFYA.90
|
||||
cmp #'n'
|
||||
bne .8
|
||||
|
||||
lda #$0D
|
||||
|
||||
.8 ora #$80
|
||||
.7 ora #$80
|
||||
jsr $FDED COUT
|
||||
bra PrintFYA.1
|
||||
|
||||
|
@ -8,7 +8,9 @@ KeyID .EQ *
|
||||
iByte .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
|
||||
jsr MEM.GetMem.YAX
|
||||
bcs .9
|
||||
@ -22,13 +24,19 @@ BLISTX.New >LDYAI 128 32k Max before out of memory!!!
|
||||
bcs .9
|
||||
|
||||
>STYA DBlkPtr
|
||||
|
||||
|
||||
lda #0
|
||||
sta (DBlkPtr)
|
||||
txa
|
||||
|
||||
lda SLIST.Opt
|
||||
sta (IBlkPtr)
|
||||
|
||||
txa
|
||||
ldy #1
|
||||
sta (IBlkPtr),y
|
||||
|
||||
.8 lda #$ff SELF MODIFIED
|
||||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
BLISTX.Free pha
|
||||
@ -36,7 +44,7 @@ BLISTX.Free pha
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+1
|
||||
|
||||
ldx #0
|
||||
ldx #1
|
||||
|
||||
.1 lda $ffff,x SELF MODIFIED
|
||||
beq .8
|
||||
|
@ -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
|
||||
.DA 280
|
||||
.DA #0
|
||||
>PSTR "Disk ][ 5.25"
|
||||
.PS "Disk ][ 5.25"
|
||||
.BS 4
|
||||
.DA #S.DIB.T.DISKII
|
||||
.DA #0
|
||||
@ -55,7 +55,7 @@ DRV.RamDrive.S jsr DRV.Blk
|
||||
DRV.RamDrive.DIB
|
||||
.DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
||||
.BS 3
|
||||
>PSTR "ProDOS /RAM Disk"
|
||||
.PS "ProDOS /RAM Disk"
|
||||
.DA #S.DIB.T.RAM
|
||||
.DA #0
|
||||
.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
|
||||
.BS 3
|
||||
>PSTR "ProDOS Block Dev"
|
||||
.PS "ProDOS Block Dev"
|
||||
.DA #S.DIB.T.PRODOS
|
||||
.DA #0
|
||||
.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
|
||||
.DA #0,#0,#0
|
||||
>PSTR "NULL Device"
|
||||
.PS "NULL Device"
|
||||
.BS 5
|
||||
.DA #S.DIB.T.CHAR
|
||||
.DA #0
|
||||
|
@ -72,16 +72,17 @@ Kernel.Init2 sei
|
||||
jsr A2osX.Unpak
|
||||
|
||||
sta SETALTZP
|
||||
bit RRAMWRAMBNK2
|
||||
bit RRAMWRAMBNK2
|
||||
|
||||
lda RRAMWRAMBNK2
|
||||
lda RRAMWRAMBNK2
|
||||
|
||||
>LDYA PAKME.D2
|
||||
>STYA ZPInBufPtr
|
||||
>LDYAI $D000
|
||||
jsr A2osX.Unpak
|
||||
|
||||
bit RRAMWRAMBNK1
|
||||
bit RRAMWRAMBNK1
|
||||
lda RRAMWRAMBNK1
|
||||
lda RRAMWRAMBNK1
|
||||
|
||||
>LDYA PAKME.D1
|
||||
>STYA ZPInBufPtr
|
||||
@ -93,11 +94,13 @@ Kernel.Init2 sei
|
||||
>LDYAI $E000
|
||||
jsr A2osX.Unpak
|
||||
|
||||
bit RROMBNK1
|
||||
lda RROMBNK1
|
||||
|
||||
sta CLRALTZP
|
||||
cli
|
||||
|
||||
jsr KConfigLoad
|
||||
|
||||
lda A2osX.HZ
|
||||
pha
|
||||
>LDYAI MSG.HZ
|
||||
@ -108,8 +111,8 @@ Kernel.Init2 sei
|
||||
>DEBUGOA
|
||||
*--------------------------------------
|
||||
Kernel.Init3 sta SETALTZP
|
||||
bit RRAMWRAMBNK1
|
||||
bit RRAMWRAMBNK1
|
||||
lda RRAMWRAMBNK1
|
||||
lda RRAMWRAMBNK1
|
||||
|
||||
lda #$ff Make sure we are in Kernel Mode during setup
|
||||
sta IRQ.InKernel
|
||||
@ -127,7 +130,7 @@ Kernel.Init3 sta SETALTZP
|
||||
sta SET80STORE
|
||||
sta CLRPAGE2
|
||||
|
||||
bit RDIOUDIS
|
||||
lda RDIOUDIS
|
||||
sta SETIOUDIS
|
||||
sta SETDHIRES
|
||||
bmi .10
|
||||
@ -661,7 +664,7 @@ DetectZ80 ldx #Z80Code.Size
|
||||
DevMgrInit >LDYAI MSG.DEV
|
||||
>SYSCALL2 puts
|
||||
|
||||
jsr DevMgrInit.VSD
|
||||
jsr DevMgrInit.VXD
|
||||
|
||||
lda DEVCNT
|
||||
sta .1+1
|
||||
@ -795,14 +798,25 @@ DevMgrInit.AddBDev
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.VSD ldy #VSD.PATCH.SIZE-1
|
||||
DevMgrInit.VXD >LDYAI VSD.PATCH
|
||||
|
||||
.1 lda $BF41,y
|
||||
cmp VSD.PATCH,y
|
||||
bne .9
|
||||
jsr .10
|
||||
bcc .8
|
||||
|
||||
>LDYAI VED.PATCH
|
||||
jsr .10
|
||||
bcs .9
|
||||
|
||||
dey
|
||||
bpl .1
|
||||
.8 ldy #4
|
||||
lda (ZPPtr1),y
|
||||
sec
|
||||
sbc #1
|
||||
sta .81+1
|
||||
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
sbc #0
|
||||
sta .81+2
|
||||
|
||||
php
|
||||
sei
|
||||
@ -810,22 +824,45 @@ DevMgrInit.VSD ldy #VSD.PATCH.SIZE-1
|
||||
bit RRAMWRAMBNK2
|
||||
bit RRAMWRAMBNK2
|
||||
sta CLRALTZP
|
||||
ldx $d001
|
||||
.81 ldx $FFFF SELF MODIFIED : Slot0n
|
||||
sta SETALTZP
|
||||
bit RRAMWRAMBNK1
|
||||
bit RRAMWRAMBNK1
|
||||
|
||||
lda #A2osX.S.VSDRIVE
|
||||
lda #A2osX.S.VXDRIVE
|
||||
sta A2osX.S,x
|
||||
|
||||
plp
|
||||
|
||||
.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
|
||||
jsr $D002
|
||||
bit RRAMWRAMBNK1
|
||||
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
|
||||
* if irq not handled, jmp (S.IrqMgrOldFFFE)
|
||||
@ -1228,18 +1265,17 @@ TClock.SIG .HS 08285870
|
||||
SmartPort.OFS .HS 010305
|
||||
SmartPort.SIG .HS 200003
|
||||
*--------------------------------------
|
||||
MSG.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n"
|
||||
MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n"
|
||||
MSG.KCREAD .AZ "Reading Kernel Config File..."
|
||||
MSG.KCREAD.OK .AZ "OK\n"
|
||||
MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n"
|
||||
MSG.PRODOSFX .AZ "!!!Running under ProDOS.FX!!! Enabling lowercase mode.\n"
|
||||
MSG.Init2.OK .AZ "A2osX[Stage2]:Complete."
|
||||
MSG.Init2 .CZ "A2osX[Stage2]:Init\rRelocating Kernel...\r"
|
||||
MSG.KCREAD .CZ "Reading Kernel Config File..."
|
||||
MSG.KCREAD.OK .CZ "OK\r"
|
||||
MSG.KCREAD.KO .CZ "\rError While Reading Kernel Config File, Using Default.\r"
|
||||
MSG.HZ .CZ "Kernel SYS Timer Set For %d0 hz Machine.\r"
|
||||
MSG.PRODOSFX .CZ "!!!Running under ProDOS.FX!!! Enabling lowercase mode.\r"
|
||||
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.BLKDEV .AZ " Adding Device: /dev/%s, Addr:%H, Type: %s\r\n"
|
||||
MSG.BLKDEV .CZ " 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
|
||||
@ -1268,11 +1304,11 @@ MSG.EVT .AZ "Event Manager..."
|
||||
MSG.TSK .AZ "Task Manager..."
|
||||
MSG.PWD .AZ "Password Manager..."
|
||||
MSG.EXEC .AZ "Executing %s..."
|
||||
MSG.StartupErr .AZ "Failed : [$%h]\r\n"
|
||||
MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n"
|
||||
MSG.StartupErr .CZ "Failed : [$%h]\r\n"
|
||||
MSG.Init3.OK .CZ "OK\r\nA2osX[Stage3]:Complete.\r\n"
|
||||
*--------------------------------------
|
||||
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.CPUTYPE .DA MSG.6502
|
||||
.DA MSG.65C02
|
||||
@ -1283,9 +1319,9 @@ MSG.65C02 .AZ "65C02."
|
||||
MSG.65R02 .AZ "65R02."
|
||||
MSG.65816 .AZ "65816."
|
||||
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.OK .AZ "Detected In Slot %d.\r\n"
|
||||
MSG.Z80.OK .CZ "Detected In Slot %d.\r\n"
|
||||
MSG.Z80.KO .AZ "Not Detected."
|
||||
*--------------------------------------
|
||||
DEV.CONSOLE .AZ "/dev/console"
|
||||
@ -1306,7 +1342,7 @@ pMLIOPEN .DA #3
|
||||
.DA FNKConfig
|
||||
.DA $B000
|
||||
.BS 1
|
||||
FNKConfig >PSTR "A2osX.kconfig"
|
||||
FNKConfig .PS "A2osX.kconfig"
|
||||
*--------------------------------------
|
||||
pMLIREAD .DA #4
|
||||
.BS 1
|
||||
|
@ -349,7 +349,7 @@ K.FreeMem.ERR >PUSHWI .1
|
||||
sec
|
||||
rts
|
||||
|
||||
.1 .AZ "Free($%h),PID=%d\r\n"
|
||||
.1 .CZ "Free($%h),PID=%d\r\n"
|
||||
*--------------------------------------
|
||||
K.FreeMem tay
|
||||
beq K.FreeMem.ERR Slot=0, reserved by Kernel
|
||||
|
@ -82,6 +82,7 @@ K.SListFree
|
||||
*/--------------------------------------
|
||||
* # SListNew
|
||||
* ## ASM
|
||||
* `lda Opt`
|
||||
* `>SYSCALL SListNew`
|
||||
* ## RETURN VALUE
|
||||
* A=hSList
|
||||
|
@ -4,6 +4,7 @@ NEW
|
||||
ZPSListDataOfs .EQ ZPMEMMGR+8
|
||||
ZPSListDataLen .EQ ZPMEMMGR+10
|
||||
*--------------------------------------
|
||||
SLIST.Opt .BS 1
|
||||
SLIST.KeyLen .BS 1
|
||||
SLIST.DataLen .BS 2
|
||||
SLIST.nDataCnt .BS 2
|
||||
@ -198,6 +199,7 @@ SLISTX.SetData jsr SLIST.Select
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 lda #E.DATALEN
|
||||
sec
|
||||
rts
|
||||
@ -284,7 +286,15 @@ SLISTX.Lookup jsr SLIST.Search
|
||||
SLIST.Search jsr K.GetMemPtr
|
||||
>STYA IBlkPtr
|
||||
|
||||
lda (IBlkPtr)
|
||||
lda (IBlkPtr)
|
||||
sta SLIST.Opt
|
||||
|
||||
stz iByte
|
||||
|
||||
ldy #1
|
||||
sty iBlk
|
||||
|
||||
lda (IBlkPtr),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA DBlkPtr
|
||||
|
||||
@ -292,17 +302,14 @@ SLIST.Search jsr K.GetMemPtr
|
||||
|
||||
.1 iny
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq .11
|
||||
beq .2
|
||||
|
||||
jsr SHARED.IsIDValid
|
||||
jsr SLIST.IsIDValid
|
||||
bcc .1
|
||||
|
||||
.11 sty SLIST.KeyLen
|
||||
.2 sty SLIST.KeyLen
|
||||
|
||||
stz iByte
|
||||
stz iBlk
|
||||
|
||||
.2 >LDYA KeyID
|
||||
.3 >LDYA KeyID
|
||||
>STYA SLIST.KeyID
|
||||
|
||||
ldy iByte
|
||||
@ -310,35 +317,35 @@ SLIST.Search jsr K.GetMemPtr
|
||||
beq .9
|
||||
|
||||
cmp SLIST.KeyLen
|
||||
bne .5
|
||||
bne .6
|
||||
|
||||
jsr BLISTX.GetNByte Skip Len
|
||||
|
||||
ldy #0
|
||||
|
||||
.3 phy
|
||||
.4 phy
|
||||
jsr BLISTX.GetNByte
|
||||
sta .4+1
|
||||
sta .5+1
|
||||
ply
|
||||
|
||||
jsr SHARED.TXTPTRgY
|
||||
|
||||
.4 cmp #$ff SELF MODIFIED
|
||||
bne .5
|
||||
.5 cmp #$ff SELF MODIFIED
|
||||
bne .6
|
||||
|
||||
iny
|
||||
cpy SLIST.KeyLen
|
||||
bne .3
|
||||
bne .4
|
||||
|
||||
>LDYA SLIST.KeyID
|
||||
clc
|
||||
rts
|
||||
|
||||
.5 >LDYA SLIST.KeyID
|
||||
.6 >LDYA SLIST.KeyID
|
||||
|
||||
jsr SLIST.Select.I move back...
|
||||
jsr SLIST.Next
|
||||
bra .2
|
||||
bra .3
|
||||
|
||||
.9 lda #E.NOKEY
|
||||
sec
|
||||
@ -397,6 +404,23 @@ SLIST.GetDataLen
|
||||
sta SLIST.DataLen+1
|
||||
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
|
||||
SAVE usr/src/sys/kernel.s.slistx
|
||||
LOAD usr/src/sys/kernel.s
|
||||
|
@ -1539,7 +1539,7 @@ RESET.VALUES .DA #0 MODE
|
||||
*--------------------------------------
|
||||
TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||||
.DA #0,#0,#0
|
||||
>PSTR "A2osX VT100 term"
|
||||
.PS "A2osX VT100 term"
|
||||
.DA #S.DIB.T.CHAR
|
||||
.DA #0
|
||||
.DA K.VER
|
||||
|
@ -144,28 +144,28 @@ K.StrFTime.addDecA
|
||||
lda FOUTBuf+1
|
||||
jmp SHARED.FORPNTpn
|
||||
*--------------------------------------
|
||||
TIMEX.DAY >PSTR "???"
|
||||
>PSTR "Monday"
|
||||
>PSTR "Tuesday"
|
||||
>PSTR "Wednesday"
|
||||
>PSTR "Thursday"
|
||||
>PSTR "Friday"
|
||||
>PSTR "Saturday"
|
||||
>PSTR "Sunday"
|
||||
TIMEX.DAY .PS "???"
|
||||
.PS "Monday"
|
||||
.PS "Tuesday"
|
||||
.PS "Wednesday"
|
||||
.PS "Thursday"
|
||||
.PS "Friday"
|
||||
.PS "Saturday"
|
||||
.PS "Sunday"
|
||||
*--------------------------------------
|
||||
TIMEX.MON >PSTR "???"
|
||||
>PSTR "January"
|
||||
>PSTR "February"
|
||||
>PSTR "March"
|
||||
>PSTR "April"
|
||||
>PSTR "May"
|
||||
>PSTR "June"
|
||||
>PSTR "July"
|
||||
>PSTR "August"
|
||||
>PSTR "September"
|
||||
>PSTR "October"
|
||||
>PSTR "November"
|
||||
>PSTR "December"
|
||||
TIMEX.MON .PS "???"
|
||||
.PS "January"
|
||||
.PS "February"
|
||||
.PS "March"
|
||||
.PS "April"
|
||||
.PS "May"
|
||||
.PS "June"
|
||||
.PS "July"
|
||||
.PS "August"
|
||||
.PS "September"
|
||||
.PS "October"
|
||||
.PS "November"
|
||||
.PS "December"
|
||||
*--------------------------------------
|
||||
TIMEX.PTime2Time.BAD
|
||||
lda #E.OOB
|
||||
|
@ -136,17 +136,17 @@ GO.OLDMLI jmp $ffff SELF MODIFIED
|
||||
*--------------------------------------
|
||||
.INB usr/src/shared/x.printf.s
|
||||
*--------------------------------------
|
||||
MSG.INIT .AZ "AppleTalk Driver For A2osX\n"
|
||||
MSG.FAILED .AZ "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\n"
|
||||
MSG.NOHW .AZ "AppleTalk Workstation Card Not Found.\n"
|
||||
MSG.HWOK .AZ "AppleTalk Workstation Card Type #%d Found In Slot #%d.\n"
|
||||
MSG.ATINIT .AZ "Calling ATInit...\n"
|
||||
MSG.IRQ .AZ "Setting Up IRQ Vector...\n"
|
||||
MSG.PREFIX1 .AZ "Getting ProDOS Prefix...\n"
|
||||
MSG.PREFIX2 .AZ "Setting AppleTalk Prefix...\n"
|
||||
MSG.AFPKO .AZ "WARNING : Enabling AFP failed : EC=%h%h.\n"
|
||||
MSG.OK .AZ "AppleTalk Driver Successfully Installed.\n"
|
||||
MSG.KO .AZ "AppleTalk Driver Install Failed : EC=%h.\n"
|
||||
MSG.INIT .CZ "AppleTalk Driver For A2osX\r"
|
||||
MSG.FAILED .CZ "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\r"
|
||||
MSG.NOHW .CZ "AppleTalk Workstation Card Not Found.\r"
|
||||
MSG.HWOK .CZ "AppleTalk Workstation Card Type #%d Found In Slot #%d.\r"
|
||||
MSG.ATINIT .CZ "Calling ATInit...\r"
|
||||
MSG.IRQ .CZ "Setting Up IRQ Vector...\r"
|
||||
MSG.PREFIX1 .CZ "Getting ProDOS Prefix...\r"
|
||||
MSG.PREFIX2 .CZ "Setting AppleTalk Prefix...\r"
|
||||
MSG.AFPKO .CZ "WARNING : Enabling AFP failed : EC=%h%h.\r"
|
||||
MSG.OK .CZ "AppleTalk Driver Successfully Installed.\r"
|
||||
MSG.KO .CZ "AppleTalk Driver Install Failed : EC=%h.\r"
|
||||
*--------------------------------------
|
||||
SIG.ATLK .AS "ATLK"
|
||||
WC.Flag .BS 1
|
||||
|
@ -3,7 +3,7 @@ NEW
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF sys/pm/pm.ramworks
|
||||
.TF sys/pm.ramworks
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/io.i
|
||||
@ -490,16 +490,16 @@ RW.BLOCK2.END .EQ *
|
||||
*--------------------------------------
|
||||
.INB usr/src/shared/x.printf.s
|
||||
*--------------------------------------
|
||||
RW.MSG .AZ "SuperExpander E, RAMWorks (I,II,III,z-Ram) Driver For A2osX\n"
|
||||
RW.MSG.RAMDISOK .AZ "/RAM Device Disabled/Not Present.\n"
|
||||
RW.MSG.RAMDISKO .AZ "Problem Disabling /RAM Device.\n"
|
||||
RW.MSG.RAM3OK .AZ "/RAM3 Device Already Installed.\n"
|
||||
RW.MSG.OK1 .AZ "%D KB Detected (%d Pages), %D KB (%d Pages) Available for RamDrive.\n"
|
||||
RW.MSG.KO1 .AZ "Not Detected.\n"
|
||||
RW.MSG.OK2 .AZ "RamWorks Driver Installed.\n"
|
||||
RW.MSG.KO2 .AZ "RamWorks Driver Install Error.\n"
|
||||
RW.MSG.OK3 .AZ "RamWorks Drive Formatted as /RAM3.\n"
|
||||
RW.MSG.KO3 .AZ "RamWorks Drive Format Error.\n"
|
||||
RW.MSG .CZ "SuperExpander E, RAMWorks (I,II,III,z-Ram) Driver For A2osX\r"
|
||||
RW.MSG.RAMDISOK .CZ "/RAM Device Disabled/Not Present.\r"
|
||||
RW.MSG.RAMDISKO .CZ "Problem Disabling /RAM Device.\r"
|
||||
RW.MSG.RAM3OK .CZ "/RAM3 Device Already Installed.\r"
|
||||
RW.MSG.OK1 .CZ "%D KB Detected (%d Pages), %D KB (%d Pages) Available for RamDrive.\r"
|
||||
RW.MSG.KO1 .CZ "Not Detected.\r"
|
||||
RW.MSG.OK2 .CZ "RamWorks Driver Installed.\r"
|
||||
RW.MSG.KO2 .CZ "RamWorks Driver Install Error.\r"
|
||||
RW.MSG.OK3 .CZ "RamWorks Drive Formatted as /RAM3.\r"
|
||||
RW.MSG.KO3 .CZ "RamWorks Drive Format Error.\r"
|
||||
*--------------------------------------
|
||||
* Driver for Ramworks in main LC
|
||||
* $FF00 -> $FF9A (Inclusive)
|
||||
|
@ -22,9 +22,11 @@ DRV.UNITNUM .EQ $43
|
||||
DRV.BUFF .EQ $44
|
||||
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
|
||||
|
||||
bit DRV.UNITNUM return Status
|
||||
@ -390,7 +392,7 @@ DRV.W200.L .EQ *-DRV.W200
|
||||
*--------------------------------------
|
||||
DRV.D1TotalBlks .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.FrameSize .BS 2
|
||||
DRV.nCnt .BS 2
|
||||
|
@ -89,7 +89,6 @@ VEDRIVE.ReadConf
|
||||
*--------------------------------------
|
||||
VEDRIVE.CONF.L >LDYAI CONF.LBUF
|
||||
>STYA ZPPtr1
|
||||
jsr PrintFYA
|
||||
|
||||
lda (ZPPtr1)
|
||||
|
||||
|
@ -227,7 +227,7 @@ GS.Write php
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
GS.Name >PSTR "LanCEgs"
|
||||
GS.Name .PS "LanCEgs"
|
||||
*--------------------------------------
|
||||
DRV.GS .PH DRV.NIC.START
|
||||
|
||||
|
@ -232,7 +232,7 @@ U1.WRITE php
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
U1.Name >PSTR "Uthernet V1"
|
||||
U1.Name .PS "Uthernet V1"
|
||||
*--------------------------------------
|
||||
DRV.U1 .PH DRV.NIC.START
|
||||
|
||||
|
@ -246,7 +246,7 @@ U2.Write php
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
U2.Name >PSTR "Uthernet II"
|
||||
U2.Name .PS "Uthernet II"
|
||||
Offset .BS 2
|
||||
TotalSize .BS 2
|
||||
*--------------------------------------
|
||||
|
@ -384,6 +384,9 @@ VEDRIVE.Install ldx #PATCH.SIZE
|
||||
|
||||
lda Slotn0
|
||||
sta DRV.BLK.Slotn0
|
||||
|
||||
lda CONF.SLOT
|
||||
sta DRV.BLK.Slot0n
|
||||
|
||||
ldx CONF.NIC
|
||||
lda .10,x
|
||||
@ -466,9 +469,10 @@ VEDRIVE.Move ldy #0
|
||||
*--------------------------------------
|
||||
COPYRIGHT .AS "(C)APPLE "
|
||||
COPYRIGHT.LEN .EQ *-COPYRIGHT
|
||||
*--------------------------------------
|
||||
PATCH .PH DRV.EntryPoint
|
||||
bit RRAMWRAMBNK2
|
||||
jsr DRV.BLK.START
|
||||
jsr DRV.BLK.START+1
|
||||
bit RRAMWRAMBNK1
|
||||
rts
|
||||
.EP
|
||||
@ -483,44 +487,44 @@ PATCH.SIZE .EQ *-PATCH
|
||||
.INB usr/src/sys/pm.vedrive.s.u1
|
||||
.INB usr/src/sys/pm.vedrive.s.u2
|
||||
*--------------------------------------
|
||||
VEDRIVE.MSG0 .AZ "VEDRIVE (ADTPro Virtual Ethernet HD) Driver\n"
|
||||
VEDRIVE.DRVKO .AZ "VEDRIVE (Or other custom Driver) Already Installed.\n"
|
||||
VEDRIVE.CONF .AZ "Checking %S...\n"
|
||||
VEDRIVE.CONFKO .AZ "Error reading VEDRIVE.CONF file.\n"
|
||||
VEDRIVE.CONFSYN .AZ "Syntax error in VEDRIVE.CONF file.\n"
|
||||
VEDRIVE.CONFINV .AZ "Invalid VEDRIVE.CONF file.\n"
|
||||
VEDRIVE.NICKO .AZ "Hardware not detected.\n"
|
||||
VEDRIVE.NICOK .AZ "%S Rev. %d.%d Found At Slot %d.\n"
|
||||
VEDRIVE.DHCP .AZ "Querying DHCP...\n"
|
||||
VEDRIVE.DHCPKO .AZ "No response from DHCP.\n"
|
||||
VEDRIVE.IPKO .AZ "Unable to setup IP configuration.\n"
|
||||
VEDRIVE.IPOK .AZ "IP config : %d.%d.%d.%d/%d.%d.%d.%d GW=%d.%d.%d.%d\n"
|
||||
VEDRIVE.SRV .AZ "Contacting ADTPro Server..."
|
||||
VEDRIVE.SRVKO .AZ "No Response From ADTPro Server.\n"
|
||||
VEDRIVE.SRVOK .AZ "ADTPro Server Is Online.\n"
|
||||
VEDRIVE.NOSLOT .AZ "No ProDOS device slot available.\n"
|
||||
VEDRIVE.DEVOK .AZ "VEDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\n"
|
||||
VEDRIVE.DRVIKO .AZ "Unable to install VEDRIVE.\n"
|
||||
VEDRIVE.DRVIOK .AZ "VEDRIVE Successfully Installed.\n"
|
||||
VEDRIVE.MSG0 .CZ "VEDRIVE (ADTPro Virtual Ethernet HD) Driver\r"
|
||||
VEDRIVE.DRVKO .CZ "VEDRIVE (Or other custom Driver) Already Installed.\r"
|
||||
VEDRIVE.CONF .CZ "Checking %S...\r"
|
||||
VEDRIVE.CONFKO .CZ "Error reading VEDRIVE.CONF file.\r"
|
||||
VEDRIVE.CONFSYN .CZ "Syntax error in VEDRIVE.CONF file.\r"
|
||||
VEDRIVE.CONFINV .CZ "Invalid VEDRIVE.CONF file.\r"
|
||||
VEDRIVE.NICKO .CZ "Hardware not detected.\r"
|
||||
VEDRIVE.NICOK .CZ "%S Rev. %d.%d Found At Slot %d.\r"
|
||||
VEDRIVE.DHCP .CZ "Querying DHCP...\r"
|
||||
VEDRIVE.DHCPKO .CZ "No response from DHCP.\r"
|
||||
VEDRIVE.IPKO .CZ "Unable to setup IP configuration.\r"
|
||||
VEDRIVE.IPOK .CZ "IP config : %d.%d.%d.%d/%d.%d.%d.%d GW=%d.%d.%d.%d\r"
|
||||
VEDRIVE.SRV .CZ "Contacting ADTPro Server..."
|
||||
VEDRIVE.SRVKO .CZ "No Response From ADTPro Server.\r"
|
||||
VEDRIVE.SRVOK .CZ "ADTPro Server Is Online.\r"
|
||||
VEDRIVE.NOSLOT .CZ "No ProDOS device slot available.\r"
|
||||
VEDRIVE.DEVOK .CZ "VEDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\r"
|
||||
VEDRIVE.DRVIKO .CZ "Unable to install VEDRIVE.\r"
|
||||
VEDRIVE.DRVIOK .CZ "VEDRIVE Successfully Installed.\r"
|
||||
*--------------------------------------
|
||||
CONF.FILENAME .AS "vedrive.conf"
|
||||
CONF.FILENAME.L .EQ *-CONF.FILENAME
|
||||
*--------------------------------------
|
||||
CONF.KW >PSTR "nic"
|
||||
>PSTR "slot"
|
||||
>PSTR "mac"
|
||||
>PSTR "address"
|
||||
>PSTR "netmask"
|
||||
>PSTR "gateway"
|
||||
>PSTR "server"
|
||||
>PSTR "port"
|
||||
>PSTR "blksize1"
|
||||
>PSTR "blksize2"
|
||||
CONF.KW .PS "nic"
|
||||
.PS "slot"
|
||||
.PS "mac"
|
||||
.PS "address"
|
||||
.PS "netmask"
|
||||
.PS "gateway"
|
||||
.PS "server"
|
||||
.PS "port"
|
||||
.PS "blksize1"
|
||||
.PS "blksize2"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
CONF.KW.NIC >PSTR "lancegs"
|
||||
>PSTR "uthernet"
|
||||
>PSTR "uthernet2"
|
||||
CONF.KW.NIC .PS "lancegs"
|
||||
.PS "uthernet"
|
||||
.PS "uthernet2"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
CONF.NIC .HS FF
|
||||
|
@ -334,15 +334,15 @@ VSDRIVE.Install ldx #PATCH.LEN
|
||||
*--------------------------------------
|
||||
DEVSIG.Offset .HS 05070B0C
|
||||
DEVSIG.Value .HS 38180131
|
||||
VSDRIVE.MSG0 .AZ "VSDRIVE (ADTPro Virtual Serial HD) Driver For A2osX\n"
|
||||
VSDRIVE.DRVKO .AZ "VSDRIVE (Or other custom Driver) Already Installed.\n"
|
||||
VSDRIVE.SSCKO .AZ "SSC Not Detected.\n"
|
||||
VSDRIVE.SSCOK .AZ "SSC Found At Slot %d.\nContacting ADTPro Server..."
|
||||
VSDRIVE.SRVKO .AZ "No Response From ADTPro Server (EC=%d).\n"
|
||||
VSDRIVE.SRVOK .AZ "ADTPro Server Is Online.\n"
|
||||
VSDRIVE.NOSLOT .AZ "No ProDOS device slot available.\n"
|
||||
VSDRIVE.DEVOK .AZ "VSDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\n"
|
||||
VSDRIVE.OK .AZ "VSDRIVE Driver Successfully Installed.\n"
|
||||
VSDRIVE.MSG0 .CZ "VSDRIVE (ADTPro Virtual Serial HD) Driver For A2osX\r"
|
||||
VSDRIVE.DRVKO .CZ "VSDRIVE (Or other custom Driver) Already Installed.\r"
|
||||
VSDRIVE.SSCKO .CZ "SSC Not Detected.\r"
|
||||
VSDRIVE.SSCOK .CZ "SSC Found At Slot %d.\rContacting ADTPro Server..."
|
||||
VSDRIVE.SRVKO .CZ "No Response From ADTPro Server (EC=%d).\r"
|
||||
VSDRIVE.SRVOK .CZ "ADTPro Server Is Online.\r"
|
||||
VSDRIVE.NOSLOT .CZ "No ProDOS device slot available.\r"
|
||||
VSDRIVE.DEVOK .CZ "VSDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\r"
|
||||
VSDRIVE.OK .CZ "VSDRIVE Driver Successfully Installed.\r"
|
||||
*--------------------------------------
|
||||
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
|
||||
*--------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user