mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94++
This commit is contained in:
parent
70ec292f4a
commit
a4f22f87d3
|
@ -147,7 +147,7 @@ The definitions are listed in ASCII alphabetical order in several groups con
|
||||||
| EXIT | | C | | When compiled within a colon-definition, terminate execution of that definition, at that point. May not be used within a DO...LOOP. | |
|
| EXIT | | C | | When compiled within a colon-definition, terminate execution of that definition, at that point. May not be used within a DO...LOOP. | |
|
||||||
| EXPECT | addr n -- | | | Transfer characters from the terminal beginning at addr, upward, until a "return" or the count of n has been received. Take no action for n less than or equal to zero. One or two nulls are added at the end of text. | |
|
| EXPECT | addr n -- | | | Transfer characters from the terminal beginning at addr, upward, until a "return" or the count of n has been received. Take no action for n less than or equal to zero. One or two nulls are added at the end of text. | |
|
||||||
| FILL | addr n byte -- | I,C | Working | Fill memory starting at addr with n copies of byte | |
|
| FILL | addr n byte -- | I,C | Working | Fill memory starting at addr with n copies of byte | |
|
||||||
| FIND | -- addr ||| Leave the compilation address of the next word name, which is accepted from the input stream. If that word cannot be found in the dictionary after a search of CONTEXT and FORTH leave zero. | |
|
| FIND | -- addr | | | Leave the compilation address of the next word name, which is accepted from the input stream. If that word cannot be found in the dictionary after a search of CONTEXT and FORTH leave zero. | |
|
||||||
| FORGET | -- | | | Execute in the form: <br>FORGET **name** <br>Delete from the dictionary **name** (which is in the CURRENT vocabulary) and all words added to the dictionary after **name**, regardless of their vocabulary. Failure to find **name** in CURRENT or FORTH is an error condition. | |
|
| FORGET | -- | | | Execute in the form: <br>FORGET **name** <br>Delete from the dictionary **name** (which is in the CURRENT vocabulary) and all words added to the dictionary after **name**, regardless of their vocabulary. Failure to find **name** in CURRENT or FORTH is an error condition. | |
|
||||||
| FORTH | -- | I | | The name of the primary vocabulary. Execution makes FORTH the CONTEXT vocabulary. New definitions become a part of the FORTH until a differing CURRENT vocabulary is established. User vocabularies conclude by 'chaining' to FORTH, so it should be considered that FORTH is 'contained' within each user's vocabulary.y | |
|
| FORTH | -- | I | | The name of the primary vocabulary. Execution makes FORTH the CONTEXT vocabulary. New definitions become a part of the FORTH until a differing CURRENT vocabulary is established. User vocabularies conclude by 'chaining' to FORTH, so it should be considered that FORTH is 'contained' within each user's vocabulary.y | |
|
||||||
| HERE | -- addr | | Working | Return address of next available dictionary location.| |
|
| HERE | -- addr | | Working | Return address of next available dictionary location.| |
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,6 +1,11 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CL.PrintPrompt >PUSHW L.MSG.PROMPT
|
||||||
|
>PUSHBI 0
|
||||||
|
>SYSCALL PrintF
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CL.READN0A tax
|
CL.READN0A tax
|
||||||
CL.READN0X >PUSHW ZPCLBuf
|
CL.READN0X >PUSHW ZPCLBuf
|
||||||
>PUSHW L.FMT.Byte
|
>PUSHW L.FMT.Byte
|
||||||
|
@ -120,7 +125,12 @@ CL.CHARIN.CTRL cpx #C.CR
|
||||||
cpx #3 Ctrl-C
|
cpx #3 Ctrl-C
|
||||||
beq CL.CLR
|
beq CL.CLR
|
||||||
|
|
||||||
cpx #26 Ctrl-Z
|
cpx #C.TAB
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
jmp HIS.Select
|
||||||
|
|
||||||
|
.1 cpx #26 Ctrl-Z
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
jmp CL.SUPPR
|
jmp CL.SUPPR
|
||||||
|
@ -156,7 +166,7 @@ CL.CLR lda (ZPCLBuf)
|
||||||
lda (ZPCLBuf),y
|
lda (ZPCLBuf),y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jsr CL.PrintCLBuf
|
jsr CL.Print
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.Reset lda #0
|
CL.Reset lda #0
|
||||||
sta (ZPCLBuf)
|
sta (ZPCLBuf)
|
||||||
|
@ -249,7 +259,7 @@ CL.PrintEOL lda CL.Ptr
|
||||||
CL.PrintEOL.8 clc
|
CL.PrintEOL.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.PrintCLBuf ldy #S.PS.hStdOut
|
CL.Print ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW ZPCLBuf
|
>PUSHW ZPCLBuf
|
||||||
|
|
|
@ -8,17 +8,7 @@ GFX.Open >PUSHW L.DEV.GFX
|
||||||
|
|
||||||
>STA.G hDevGFX
|
>STA.G hDevGFX
|
||||||
|
|
||||||
rts
|
bra GFX.TEXT
|
||||||
|
|
||||||
ldy #S.PS.hStdIn
|
|
||||||
lda (pPS),y
|
|
||||||
bit #1
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
>PUSHA
|
|
||||||
>PUSHBI IOCTL.CONTROL
|
|
||||||
>PUSHWI 0
|
|
||||||
>SYSCALL IOCTL
|
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -29,6 +19,29 @@ GFX.Close >LDA.G hDevGFX
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
GFX.TEXT ldy #S.PS.hStdIn
|
||||||
|
lda (pPS),y
|
||||||
|
|
||||||
|
bit #1
|
||||||
|
bne GFX.IOCTL
|
||||||
|
|
||||||
|
GFX.TEXT.RTS clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
GFX.GR ldy #S.PS.hStdIn
|
||||||
|
lda (pPS),y
|
||||||
|
bit #1
|
||||||
|
beq GFX.TEXT.RTS
|
||||||
|
|
||||||
|
>LDA.G hDevGFX
|
||||||
|
beq GFX.TEXT.RTS
|
||||||
|
|
||||||
|
GFX.IOCTL >PUSHA
|
||||||
|
>PUSHBI IOCTL.CONTROL
|
||||||
|
>PUSHWI 0
|
||||||
|
>SYSCALL IOCTL
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
* (Y X C)
|
* (Y X C)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GFX.PLOT ldx #S.CB.CMD.SETPIXEL
|
GFX.PLOT ldx #S.CB.CMD.SETPIXEL
|
||||||
|
|
|
@ -2,77 +2,138 @@ NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.Init clc
|
HIS.Init >LDYAI HISTORY.MAX Get a buffer for History
|
||||||
rts
|
|
||||||
|
|
||||||
>LDYAI HISTORY.MAX Get a buffer for History
|
|
||||||
>SYSCALL StrVNew
|
>SYSCALL StrVNew
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
txa
|
|
||||||
>STA.G HIS.hBuf
|
>STA.G HIS.hBuf
|
||||||
|
|
||||||
>STZ.G HIS.Count
|
* >STZ.G HIS.Count
|
||||||
>STA.G HIS.Index
|
* >STA.G HIS.Index
|
||||||
|
* >STA.G HIS.LRU
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.Add >LDA.G HIS.hBuf
|
HIS.Add >LDA.G HIS.hBuf
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
|
>LDA.G HIS.Count
|
||||||
|
cmp #HIS.MAX
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
>LDA.G HIS.LRU
|
||||||
|
cmp #HIS.MAX
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
.1 inc
|
||||||
|
>STA.G HIS.LRU
|
||||||
|
bra .7
|
||||||
|
|
||||||
|
.2 inc
|
||||||
|
>STA.G HIS.Count
|
||||||
|
|
||||||
|
.7 tax
|
||||||
|
>PUSHB.G HIS.hBuf
|
||||||
|
>PUSHBI 0
|
||||||
|
txa
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW ZPCLBuf
|
>PUSHW ZPCLBuf
|
||||||
>SYSCALL StrVSet
|
>SYSCALL StrVSet
|
||||||
bcc .1
|
|
||||||
|
|
||||||
>PUSHB.G HIS.hBuf
|
|
||||||
>PUSHWZ
|
|
||||||
>SYSCALL StrVSet
|
|
||||||
>DEC.G HIS.Count
|
|
||||||
bra HIS.Add
|
|
||||||
|
|
||||||
.1 >STZ.G HIS.Index Reset Index
|
|
||||||
>INC.G HIS.Count
|
|
||||||
.9
|
|
||||||
HIS.Add.RTS rts
|
|
||||||
*--------------------------------------
|
|
||||||
HIS.GetPrev >LDA.G HIS.hBuf
|
|
||||||
beq HIS.Add.RTS
|
|
||||||
|
|
||||||
>LDA.G HIS.Count
|
>STZ.G HIS.Index Reset Index
|
||||||
beq HIS.Add.RTS empty history,nothing to do
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
HIS.Select >LDA.G HIS.Count
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
clc
|
||||||
|
.99 rts
|
||||||
|
|
||||||
|
.10 jsr CL.Reset
|
||||||
|
|
||||||
|
>STZ.G HIS.Index
|
||||||
|
|
||||||
|
.1 >INC.G HIS.Index
|
||||||
|
jsr HIS.GetIndex
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
>PUSHW L.MSG.HIS
|
||||||
|
>LDA.G HIS.Index
|
||||||
|
dec
|
||||||
|
>PUSHA
|
||||||
|
>PUSHW ZPCLBuf
|
||||||
|
>PUSHBI 3
|
||||||
|
>SYSCALL PrintF
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDA.G HIS.Index
|
||||||
|
>CMP.G HIS.Count
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
>PUSHW L.MSG.HISPROMPT
|
||||||
|
>PUSHBI 0
|
||||||
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
>STZ.G HIS.Index
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (ZPCLBuf)
|
||||||
|
|
||||||
|
>SYSCALL GetChar
|
||||||
|
bcs HIS.Select.RTS
|
||||||
|
|
||||||
|
cmp #'0'
|
||||||
|
bcc .7
|
||||||
|
|
||||||
|
cmp #'9'+1
|
||||||
|
bcs .7
|
||||||
|
|
||||||
|
and #$f
|
||||||
|
inc
|
||||||
|
|
||||||
|
>STA.G HIS.Index
|
||||||
|
|
||||||
|
.7 >PUSHW L.MSG.HISROMPTCLR
|
||||||
|
>PUSHBI 0
|
||||||
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
jsr CL.PrintPrompt
|
||||||
|
bcc HIS.GetToCL1
|
||||||
|
.9
|
||||||
|
HIS.Select.RTS rts
|
||||||
|
*--------------------------------------
|
||||||
|
HIS.GetPrev >LDA.G HIS.Count
|
||||||
|
beq HIS.Select.RTS empty history,nothing to do
|
||||||
|
|
||||||
>LDA.G HIS.Index
|
>LDA.G HIS.Index
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDA.G HIS.Count
|
>LDA.G HIS.Count
|
||||||
|
bra HIS.GetToCL
|
||||||
|
|
||||||
.1 dec
|
.1 dec
|
||||||
bra HIS.GetToCl
|
bra HIS.GetToCl
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.GetNext >LDA.G HIS.hBuf
|
HIS.GetNext >LDA.G HIS.Count
|
||||||
beq HIS.Add.RTS
|
beq HIS.Select.RTS empty history,nothing to do
|
||||||
|
|
||||||
>LDA.G HIS.Count
|
>EOR.G HIS.Index
|
||||||
beq HIS.Add.RTS empty history,nothing to do
|
beq HIS.GetToCL
|
||||||
|
|
||||||
>LDA.G HIS.Index
|
>LDA.G HIS.Index
|
||||||
inc
|
inc
|
||||||
>CMP.G HIS.Count
|
|
||||||
bne HIS.GetToCl
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
>STA.G HIS.Index
|
|
||||||
jmp CL.CLR
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HIS.GetToCl >STA.G HIS.Index
|
HIS.GetToCl >STA.G HIS.Index
|
||||||
|
|
||||||
jsr CL.CLR
|
jsr CL.CLR
|
||||||
|
|
||||||
>PUSHB.G HIS.hBuf
|
HIS.GetToCL1 >LDA.G HIS.Index
|
||||||
>PUSHBI 0
|
beq .9
|
||||||
>PUSHB.G HIS.Index
|
|
||||||
>PUSHW ZPCLBuf
|
|
||||||
|
|
||||||
>SYSCALL StrVGet
|
jsr HIS.GetIndex
|
||||||
|
bcs .9
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
|
@ -84,7 +145,16 @@ HIS.GetToCl >STA.G HIS.Index
|
||||||
|
|
||||||
sta CL.Ptr
|
sta CL.Ptr
|
||||||
sta CL.Len
|
sta CL.Len
|
||||||
jmp CL.PrintCLBuf
|
jmp CL.Print
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
HIS.GetIndex >PUSHB.G HIS.hBuf
|
||||||
|
>PUSHBI 0
|
||||||
|
>PUSHB.G HIS.Index
|
||||||
|
>PUSHW ZPCLBuf
|
||||||
|
>SYSCALL StrVGet
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/forth.s.his
|
SAVE usr/src/bin/forth.s.his
|
||||||
|
|
|
@ -463,7 +463,7 @@ KW.AND jsr CheckStackPop4
|
||||||
sta (pStack),y
|
sta (pStack),y
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
clc
|
* clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -481,7 +481,7 @@ KW.OR jsr CheckStackPop4
|
||||||
sta (pStack),y
|
sta (pStack),y
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
clc
|
* clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -499,7 +499,7 @@ KW.XOR jsr CheckStackPop4
|
||||||
sta (pStack),y
|
sta (pStack),y
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
clc
|
* clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -519,9 +519,11 @@ KW.LWR jsr CheckStackPop4
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
ror
|
ror
|
||||||
|
eor #$80
|
||||||
|
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
|
||||||
clc
|
* clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -541,10 +543,10 @@ KW.GTR jsr CheckStackPop4
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
ror
|
ror
|
||||||
eor #$80
|
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
|
||||||
clc
|
* clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -558,27 +560,26 @@ KW.EQ jsr CheckStackPop4
|
||||||
ldy #2
|
ldy #2
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
eor (pStack)
|
eor (pStack)
|
||||||
tax
|
|
||||||
|
|
||||||
inc pStack
|
inc pStack
|
||||||
|
tax
|
||||||
|
bne .1
|
||||||
|
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
eor (pStack)
|
eor (pStack)
|
||||||
|
|
||||||
inc pStack
|
|
||||||
|
|
||||||
tay
|
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
txa
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.1 inc pStack
|
.1 lda #0
|
||||||
|
ror
|
||||||
|
|
||||||
|
inc pStack
|
||||||
|
inc pStack
|
||||||
|
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
|
||||||
clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.NEGATIVE inc pStack
|
KW.NEGATIVE inc pStack
|
||||||
|
|
|
@ -5,7 +5,8 @@ NEW
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF bin/forth
|
.TF bin/forth
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HISTORY.MAX .EQ 256
|
HIS.MAX .EQ 10
|
||||||
|
HISTORY.MAX .EQ 512
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/macros.i
|
.INB inc/macros.i
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
|
@ -79,6 +80,9 @@ CS.START cld
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.DEV.GFX .DA DEV.GFX
|
L.DEV.GFX .DA DEV.GFX
|
||||||
L.MSG.GREETINGS .DA MSG.GREETINGS
|
L.MSG.GREETINGS .DA MSG.GREETINGS
|
||||||
|
L.MSG.HIS .DA MSG.HIS
|
||||||
|
L.MSG.HISPROMPT .DA MSG.HISPROMPT
|
||||||
|
L.MSG.HISROMPTCLR .DA MSG.HISROMPTCLR
|
||||||
L.MSG.USAGE .DA MSG.USAGE
|
L.MSG.USAGE .DA MSG.USAGE
|
||||||
L.MSG.ECHOCRLF .DA MSG.ECHOCRLF
|
L.MSG.ECHOCRLF .DA MSG.ECHOCRLF
|
||||||
L.MSG.DEBUG .DA MSG.DEBUG
|
L.MSG.DEBUG .DA MSG.DEBUG
|
||||||
|
@ -99,7 +103,9 @@ J.ESC .DA CL.BS left arrow
|
||||||
.DA HIS.GetPrev
|
.DA HIS.GetPrev
|
||||||
.DA CL.NAK right arrow
|
.DA CL.NAK right arrow
|
||||||
L.KEYWORDS .DA KEYWORDS
|
L.KEYWORDS .DA KEYWORDS
|
||||||
I.KEYWORDS .DA GFX.PLOT
|
I.KEYWORDS .DA GFX.TEXT
|
||||||
|
.DA GFX.GR
|
||||||
|
.DA GFX.PLOT
|
||||||
.DA GFX.RECT
|
.DA GFX.RECT
|
||||||
.DA KW.DUP
|
.DA KW.DUP
|
||||||
.DA KW.DROP
|
.DA KW.DROP
|
||||||
|
@ -206,7 +212,9 @@ KW.IF.ID .EQ *-I.KEYWORDS
|
||||||
.DA KW.Rg
|
.DA KW.Rg
|
||||||
.DA KW.R
|
.DA KW.R
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
C.KEYWORDS .DA CP.JSRX GFX.PLOT
|
C.KEYWORDS .DA CP.JSRX GFX.TEXT
|
||||||
|
.DA CP.JSRX GFX.GR
|
||||||
|
.DA CP.JSRX GFX.PLOT
|
||||||
.DA CP.JSRX GFX.RECT
|
.DA CP.JSRX GFX.RECT
|
||||||
.DA CP.JSRX KW.DUP
|
.DA CP.JSRX KW.DUP
|
||||||
.DA CP.JSRX KW.DROP
|
.DA CP.JSRX KW.DROP
|
||||||
|
@ -446,7 +454,7 @@ CS.FORTH.Run jsr CL.Reset
|
||||||
lda #80
|
lda #80
|
||||||
sta CL.MaxCnt
|
sta CL.MaxCnt
|
||||||
|
|
||||||
jsr PrintPrompt
|
jsr CL.PrintPrompt
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 >SYSCALL GetChar
|
.1 >SYSCALL GetChar
|
||||||
|
@ -734,11 +742,6 @@ CS.QUIT jsr GFX.Close
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintPrompt >PUSHW L.MSG.PROMPT
|
|
||||||
>PUSHBI 0
|
|
||||||
>SYSCALL PrintF
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
PrintDebugMsg lda pStack+1
|
PrintDebugMsg lda pStack+1
|
||||||
ldy pStack
|
ldy pStack
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -907,6 +910,9 @@ CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.GFX .AZ "/dev/gfx"
|
DEV.GFX .AZ "/dev/gfx"
|
||||||
MSG.GREETINGS .AZ "\e[?7h\r\nA2osX-FORTH %d.%d (FORTH-79)\r\n"
|
MSG.GREETINGS .AZ "\e[?7h\r\nA2osX-FORTH %d.%d (FORTH-79)\r\n"
|
||||||
|
MSG.HIS .AZ "\r\n%3d : %s"
|
||||||
|
MSG.HISPROMPT .AZ "\r\n\r\n? "
|
||||||
|
MSG.HISROMPTCLR .DA #C.BS,#C.BS,#0
|
||||||
MSG.USAGE .AS "Usage : FORTH <option> file\r\n"
|
MSG.USAGE .AS "Usage : FORTH <option> file\r\n"
|
||||||
.AS " -D : Debug Mode\r\n"
|
.AS " -D : Debug Mode\r\n"
|
||||||
.AS " -T : Trace On"
|
.AS " -T : Trace On"
|
||||||
|
@ -932,7 +938,9 @@ EscChars .AS 'DBAC'
|
||||||
EscChars.Cnt .EQ *-EscChars
|
EscChars.Cnt .EQ *-EscChars
|
||||||
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
|
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KEYWORDS .AT "PLOT"
|
KEYWORDS .AT "TEXT"
|
||||||
|
.AT "GR"
|
||||||
|
.AT "PLOT"
|
||||||
.AT "RECT"
|
.AT "RECT"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.AT "DUP" ( n - n n ) Duplicate top of stack.
|
.AT "DUP" ( n - n n ) Duplicate top of stack.
|
||||||
|
@ -1170,6 +1178,7 @@ hCLBuf .BS 1
|
||||||
HIS.hBuf .BS 1
|
HIS.hBuf .BS 1
|
||||||
HIS.Count .BS 1
|
HIS.Count .BS 1
|
||||||
HIS.Index .BS 1
|
HIS.Index .BS 1
|
||||||
|
HIS.LRU .BS 1
|
||||||
|
|
||||||
hFile .BS 1
|
hFile .BS 1
|
||||||
LineCounter .BS 2
|
LineCounter .BS 2
|
||||||
|
|
|
@ -217,7 +217,7 @@ CS.RUN.LOGO.SHOW
|
||||||
|
|
||||||
inc
|
inc
|
||||||
sta CB.LOGO+S.CB.Y1
|
sta CB.LOGO+S.CB.Y1
|
||||||
cmp #151
|
cmp #144
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.7 lda yDir
|
.7 lda yDir
|
||||||
|
|
|
@ -19,13 +19,17 @@ BITBLT >LDYA CB.Cache+S.CB.X1
|
||||||
lda CB.Cache+S.CB.X1
|
lda CB.Cache+S.CB.X1
|
||||||
clc
|
clc
|
||||||
adc CB.Cache+S.CB.SrcW
|
adc CB.Cache+S.CB.SrcW
|
||||||
tay
|
pha
|
||||||
|
|
||||||
lda CB.Cache+S.CB.X1+1
|
lda CB.Cache+S.CB.X1+1
|
||||||
adc CB.Cache+S.CB.SrcW+1
|
adc CB.Cache+S.CB.SrcW+1
|
||||||
cpy #1
|
|
||||||
bcs .0
|
ply
|
||||||
|
bne .10
|
||||||
|
|
||||||
dec
|
dec
|
||||||
.0 dey
|
|
||||||
|
.10 dey
|
||||||
|
|
||||||
jsr LBUF.SetBounds2YA
|
jsr LBUF.SetBounds2YA
|
||||||
|
|
||||||
|
@ -58,13 +62,7 @@ BITBLT >LDYA CB.Cache+S.CB.X1
|
||||||
|
|
||||||
ldx LBUF.C1
|
ldx LBUF.C1
|
||||||
|
|
||||||
.3 txa
|
.3 >X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda (ZPBMSavePtr)
|
lda (ZPBMSavePtr)
|
||||||
sta (ZPBasePtr),y
|
sta (ZPBasePtr),y
|
||||||
|
@ -110,13 +108,7 @@ BITBLT.0 bit #S.CB.OP.SAVE
|
||||||
|
|
||||||
ldx LBUF.C1
|
ldx LBUF.C1
|
||||||
|
|
||||||
.3 txa
|
.3 >X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda (ZPBasePtr),y
|
lda (ZPBasePtr),y
|
||||||
sta (ZPBMSavePtr)
|
sta (ZPBMSavePtr)
|
||||||
|
@ -178,6 +170,7 @@ BITBLT.2 ldy #S.BM-1
|
||||||
adc #S.BM
|
adc #S.BM
|
||||||
sta ZPBMDataPtr
|
sta ZPBMDataPtr
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
inc ZPBMDataPtr+1
|
inc ZPBMDataPtr+1
|
||||||
|
|
||||||
.2 >LDYA CB.Cache+S.CB.SrcY
|
.2 >LDYA CB.Cache+S.CB.SrcY
|
||||||
|
|
|
@ -45,13 +45,7 @@ LBUF.DrawAtY.SET
|
||||||
LBUF.DrawAtY.AND.SET
|
LBUF.DrawAtY.AND.SET
|
||||||
ldx LBUF.C1 x C1->C2
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
txa
|
>X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda (ZPBasePtr),y Clear screen at C1
|
lda (ZPBasePtr),y Clear screen at C1
|
||||||
and LBUF.C1.MASK with MASK bits
|
and LBUF.C1.MASK with MASK bits
|
||||||
|
@ -68,13 +62,7 @@ LBUF.DrawAtY.AND.SET
|
||||||
|
|
||||||
bcs .8 C1+1 > C2, we are done...
|
bcs .8 C1+1 > C2, we are done...
|
||||||
|
|
||||||
.1 txa
|
.1 >X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
||||||
sta (ZPBasePtr),y
|
sta (ZPBasePtr),y
|
||||||
|
@ -83,13 +71,7 @@ LBUF.DrawAtY.AND.SET
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
.2 txa
|
.2 >X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda (ZPBasePtr),y Get C2
|
lda (ZPBasePtr),y Get C2
|
||||||
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
||||||
|
@ -116,13 +98,7 @@ LBUF.DrawAtY.XXX
|
||||||
|
|
||||||
ldx LBUF.C1 x C1->C2
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
txa
|
>X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda (ZPBasePtr),y Get C1
|
lda (ZPBasePtr),y Get C1
|
||||||
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||||
|
@ -139,13 +115,7 @@ LBUF.DrawAtY.XXX
|
||||||
|
|
||||||
bcs .8 C1+1 > C2, we are done...
|
bcs .8 C1+1 > C2, we are done...
|
||||||
|
|
||||||
.1 txa
|
.1 >X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
||||||
.20 ora (ZPBasePtr),y
|
.20 ora (ZPBasePtr),y
|
||||||
|
@ -155,13 +125,7 @@ LBUF.DrawAtY.XXX
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.2 txa
|
.2 >X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda (ZPBasePtr),y Get C2
|
lda (ZPBasePtr),y Get C2
|
||||||
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
||||||
|
@ -178,13 +142,7 @@ LBUF.DrawAtY.XXX
|
||||||
LBUF.DrawAtY.AND.ORA
|
LBUF.DrawAtY.AND.ORA
|
||||||
ldx LBUF.C1 x C1->C2
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
txa
|
>X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda LBUF.MASK,x get MASK bits
|
lda LBUF.MASK,x get MASK bits
|
||||||
ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||||
|
@ -212,13 +170,7 @@ LBUF.DrawAtY.AND.ORA
|
||||||
|
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.2 txa
|
.2 >X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda (ZPBasePtr),y
|
lda (ZPBasePtr),y
|
||||||
and LBUF.MASK,x
|
and LBUF.MASK,x
|
||||||
|
@ -230,13 +182,7 @@ LBUF.DrawAtY.AND.ORA
|
||||||
cpx LBUF.C2
|
cpx LBUF.C2
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
txa
|
>X2PageY
|
||||||
and #1
|
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda LBUF.MASK,x get MASK bits
|
lda LBUF.MASK,x get MASK bits
|
||||||
ora LBUF.C2.MASK
|
ora LBUF.C2.MASK
|
||||||
|
|
|
@ -77,16 +77,20 @@ VLINE.MONO >LDYA CB.Cache+S.CB.X1
|
||||||
lsr
|
lsr
|
||||||
sta ZPTmpByte Save COL (DIV)
|
sta ZPTmpByte Save COL (DIV)
|
||||||
|
|
||||||
lda #0
|
ldy #SETPAGE2
|
||||||
rol
|
bcc .1
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y Select proper BANK
|
dey CLRPAGE2
|
||||||
|
|
||||||
|
.1 sta $C000,y Select proper BANK
|
||||||
|
|
||||||
ldy CB.Cache+S.CB.Y1
|
ldy CB.Cache+S.CB.Y1
|
||||||
clc
|
clc
|
||||||
|
|
||||||
lda CB.Cache+S.CB.OP
|
lda CB.Cache+S.CB.OP
|
||||||
* cmp #S.CB.OP.XOR
|
* cmp #S.CB.OP.XOR
|
||||||
beq VLINE.MONO.XOR
|
beq VLINE.MONO.XOR
|
||||||
|
|
||||||
lda CB.Cache+S.CB.COLOR
|
lda CB.Cache+S.CB.COLOR
|
||||||
bne VLINE.MONO.WHITE
|
bne VLINE.MONO.WHITE
|
||||||
|
|
||||||
|
@ -94,12 +98,15 @@ VLINE.MONO.BLACK
|
||||||
.1 lda BASEL,y
|
.1 lda BASEL,y
|
||||||
adc ZPTmpByte
|
adc ZPTmpByte
|
||||||
sta ZPBasePtr
|
sta ZPBasePtr
|
||||||
|
|
||||||
lda BASEH,y
|
lda BASEH,y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
lda (ZPBasePtr)
|
lda (ZPBasePtr)
|
||||||
|
|
||||||
and Mono.NMasks,x
|
and Mono.NMasks,x
|
||||||
sta (ZPBasePtr)
|
sta (ZPBasePtr)
|
||||||
cpy CB.Cache+S.CB.Y2
|
cpy CB.Cache+S.CB.Y2
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
|
@ -115,14 +122,18 @@ VLINE.MONO.XOR
|
||||||
.1 lda BASEL,y
|
.1 lda BASEL,y
|
||||||
adc ZPTmpByte
|
adc ZPTmpByte
|
||||||
sta ZPBasePtr
|
sta ZPBasePtr
|
||||||
|
|
||||||
lda BASEH,y
|
lda BASEH,y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
lda (ZPBasePtr)
|
lda (ZPBasePtr)
|
||||||
|
|
||||||
.2 eor Mono.Masks,x SELF MODIFIED
|
.2 eor Mono.Masks,x SELF MODIFIED
|
||||||
sta (ZPBasePtr)
|
sta (ZPBasePtr)
|
||||||
cpy CB.Cache+S.CB.Y2
|
cpy CB.Cache+S.CB.Y2
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
VLINE.C16 lda CB.Cache+S.CB.X1
|
VLINE.C16 lda CB.Cache+S.CB.X1
|
||||||
|
@ -143,6 +154,7 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
||||||
cpy CB.Cache+S.CB.Y2
|
cpy CB.Cache+S.CB.Y2
|
||||||
iny
|
iny
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -17,17 +17,22 @@ SETPIXEL.MONO >LDYA CB.Cache+S.CB.X1
|
||||||
jsr DIVMOD7YA
|
jsr DIVMOD7YA
|
||||||
lsr
|
lsr
|
||||||
php
|
php
|
||||||
|
|
||||||
ldy CB.Cache+S.CB.Y1
|
ldy CB.Cache+S.CB.Y1
|
||||||
clc
|
clc
|
||||||
adc BASEL,y
|
adc BASEL,y
|
||||||
sta ZPBasePtr
|
sta ZPBasePtr
|
||||||
lda BASEH,y
|
lda BASEH,y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
|
|
||||||
plp
|
plp
|
||||||
lda #0
|
ldy #0
|
||||||
rol
|
bcs .1
|
||||||
tay
|
|
||||||
sta CLRPAGE2,y Select proper BANK
|
iny
|
||||||
|
|
||||||
|
.1 sta CLRPAGE2,y Select proper BANK
|
||||||
|
|
||||||
lda CB.Cache+S.CB.OP
|
lda CB.Cache+S.CB.OP
|
||||||
* cmp #S.CB.OP.XOR
|
* cmp #S.CB.OP.XOR
|
||||||
beq SETPIXEL.MONO.XOR
|
beq SETPIXEL.MONO.XOR
|
||||||
|
|
|
@ -12,6 +12,19 @@ NEW
|
||||||
.INB inc/io.i
|
.INB inc/io.i
|
||||||
.INB inc/gfx.i
|
.INB inc/gfx.i
|
||||||
.INB inc/gfx.eve.i
|
.INB inc/gfx.eve.i
|
||||||
|
*--------------------------------------
|
||||||
|
.MA X2PageY
|
||||||
|
txa
|
||||||
|
lsr
|
||||||
|
ldy #SETPAGE2 col 0,2,4...in AUX mem
|
||||||
|
bcc :1 col 1,3,5...in MAIN mem
|
||||||
|
|
||||||
|
dey CLRPAGE2
|
||||||
|
|
||||||
|
:1 sta $C000,y
|
||||||
|
|
||||||
|
tay
|
||||||
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPtr1 .EQ ZPBIN
|
ZPPtr1 .EQ ZPBIN
|
||||||
ZPPtr2 .EQ ZPBIN+2
|
ZPPtr2 .EQ ZPBIN+2
|
||||||
|
|
|
@ -36,13 +36,17 @@ NEW
|
||||||
Y @ X @ 4 * COLOR @ PLOT ;
|
Y @ X @ 4 * COLOR @ PLOT ;
|
||||||
|
|
||||||
: MANDELBROT
|
: MANDELBROT
|
||||||
|
." Press a key to start..."
|
||||||
|
KEY GR
|
||||||
MAXY 0 DO
|
MAXY 0 DO
|
||||||
I Y !
|
I Y !
|
||||||
MAXX 0 DO
|
MAXX 0 DO
|
||||||
I X !
|
I X !
|
||||||
CELL
|
CELL
|
||||||
LOOP
|
LOOP
|
||||||
LOOP ;
|
LOOP
|
||||||
|
TEXT
|
||||||
|
." All done." ;
|
||||||
|
|
||||||
MANDELBROT
|
MANDELBROT
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -4,7 +4,7 @@ NEW
|
||||||
IO.D2.SeekTimeR .EQ 58 LIBBLKDEV Recalibration
|
IO.D2.SeekTimeR .EQ 58 LIBBLKDEV Recalibration
|
||||||
IO.D2.SeekTimeF .EQ 58 LIBBLKDEV Track Formatter
|
IO.D2.SeekTimeF .EQ 58 LIBBLKDEV Track Formatter
|
||||||
IO.D2.SeekTimeB .EQ 58 LIBBLKDEV Boot Block
|
IO.D2.SeekTimeB .EQ 58 LIBBLKDEV Boot Block
|
||||||
IO.D2.SeekTimeP .EQ 38 ProDOS.FX initial
|
IO.D2.SeekTimeP .EQ 48 ProDOS.FX initial
|
||||||
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.Ph0Off .EQ $C080
|
IO.D2.Ph0Off .EQ $C080
|
||||||
|
|
|
@ -14,6 +14,7 @@ S.SMB.H.CMD.TRANS2 .EQ $32
|
||||||
S.SMB.H.CMD.NEGOTIATE .EQ $72
|
S.SMB.H.CMD.NEGOTIATE .EQ $72
|
||||||
S.SMB.H.CMD.SESSION.SETUP.ANDX .EQ $73
|
S.SMB.H.CMD.SESSION.SETUP.ANDX .EQ $73
|
||||||
S.SMB.H.CMD.TREE.CONNECT.ANDX .EQ $75
|
S.SMB.H.CMD.TREE.CONNECT.ANDX .EQ $75
|
||||||
|
S.SMB.H.CMD.NT.CREATE.ANDX .EQ $A0
|
||||||
S.SMB.H.STATUS .EQ 5
|
S.SMB.H.STATUS .EQ 5
|
||||||
S.SMB.H.FLAGS .EQ 9
|
S.SMB.H.FLAGS .EQ 9
|
||||||
S.SMB.H.FLAGS.LOCKANDREADOK .EQ 1
|
S.SMB.H.FLAGS.LOCKANDREADOK .EQ 1
|
||||||
|
|
|
@ -392,12 +392,12 @@ BB.Seek lda BB.HdrTrk get track we're on
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,y
|
lda IO.D2.Ph0Off,y
|
||||||
|
|
||||||
ldy #0
|
ldy BB.Slotn0
|
||||||
|
lda IO.D2.DrvOn,y
|
||||||
.10 dey
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
lda IO.D2.Ph0Off,x
|
||||||
|
|
||||||
|
lda IO.D2.DrvOn,y
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BB.Read ldx BB.Slotn0
|
BB.Read ldx BB.Slotn0
|
||||||
|
|
||||||
|
|
|
@ -137,13 +137,13 @@ D2.MoveHead.SEI lda D2.CurrentQTrack
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,y
|
lda IO.D2.Ph0Off,y
|
||||||
|
|
||||||
ldy #0
|
ldy D2.Slotn0
|
||||||
|
lda IO.D2.DrvOn,y
|
||||||
|
|
||||||
.10 dey
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
lda IO.D2.Ph0Off,x
|
||||||
|
|
||||||
|
lda IO.D2.DrvOn,y
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
D2.SeekPhOnY and #6
|
D2.SeekPhOnY and #6
|
||||||
|
|
|
@ -533,6 +533,13 @@ CIFS2.ChOwn
|
||||||
lda #MLI.E.BADCALL
|
lda #MLI.E.BADCALL
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
*CIFS.FOpen >STYA pPath resolved path
|
||||||
|
|
||||||
|
* ldx #S.SMB.H.CMD.NT.CREATE.ANDX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CIFS.FOpen jsr MakeTrans2Req
|
CIFS.FOpen jsr MakeTrans2Req
|
||||||
|
|
||||||
|
@ -565,6 +572,10 @@ CIFS.FOpen jsr MakeTrans2Req
|
||||||
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+9 AccessMode
|
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+9 AccessMode
|
||||||
sta (ZPReqPtr),y
|
sta (ZPReqPtr),y
|
||||||
|
|
||||||
|
lda #$52
|
||||||
|
iny
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
|
||||||
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+19 OpenMode
|
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+19 OpenMode
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
@ -576,13 +587,17 @@ CIFS.FOpen jsr MakeTrans2Req
|
||||||
sta (ZPReqPtr),y
|
sta (ZPReqPtr),y
|
||||||
|
|
||||||
.2 pla
|
.2 pla
|
||||||
and #O.APPEND
|
* and #O.APPEND
|
||||||
beq .3
|
* beq .3
|
||||||
|
|
||||||
lda (ZPReqPtr),y
|
lda (ZPReqPtr),y
|
||||||
ora #1
|
ora #1
|
||||||
* sta (ZPReqPtr),y
|
* sta (ZPReqPtr),y
|
||||||
|
|
||||||
|
ldy #S.NETBIOS+S.SMB.H.FLAGS2+1
|
||||||
|
lda #$40
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
|
||||||
.3 ply
|
.3 ply
|
||||||
|
|
||||||
jsr AppendPath
|
jsr AppendPath
|
||||||
|
|
|
@ -981,6 +981,30 @@ SMB.TreeConnect.H.Len .EQ *-SMB.TreeConnect.H
|
||||||
SMB.TreeConnect.T
|
SMB.TreeConnect.T
|
||||||
.AZ "A:" Disk Share
|
.AZ "A:" Disk Share
|
||||||
SMB.TreeConnect.T.Len .EQ *-SMB.TreeConnect.T
|
SMB.TreeConnect.T.Len .EQ *-SMB.TreeConnect.T
|
||||||
|
*-------------------------------------- #$04
|
||||||
|
SMB.ComCreate.H .DA #18 WORD COUNT
|
||||||
|
.HS FF000000 NO MORE CMD
|
||||||
|
.HS 00 Reserved
|
||||||
|
.BS 2 NameLength
|
||||||
|
.HS 00000000 Flags
|
||||||
|
.BS 4 RootDirectoryFID
|
||||||
|
.BS 4 DesiredAccess
|
||||||
|
.HS 0000000000000000 AllocationSize
|
||||||
|
.HS 00000000 ExtFileAttributes
|
||||||
|
.HS 00000000 ShareAccess
|
||||||
|
.BS 4 CreateDisposition
|
||||||
|
.HS 00000000 CreateOptions
|
||||||
|
.HS 00000000 ImpersonationLevel
|
||||||
|
.HS 00 SecurityFlags
|
||||||
|
.HS 00 SMB_Data
|
||||||
|
SMB.ComCreate.H.Len .EQ *-SMB.ComCreate.H
|
||||||
|
* .AZ "path\file"
|
||||||
|
*-------------------------------------- #$04
|
||||||
|
SMB.ComClose.H .DA #3 WORD COUNT
|
||||||
|
.BS 2 FID
|
||||||
|
.HS 00000000 LastTimeModified
|
||||||
|
.HS 0000 ByteCount
|
||||||
|
SMB.ComClose.H.Len .EQ *-SMB.ComClose.H
|
||||||
*-------------------------------------- #$2E
|
*-------------------------------------- #$2E
|
||||||
SMB.ComRead.H .DA #10 WORD COUNT
|
SMB.ComRead.H .DA #10 WORD COUNT
|
||||||
.HS FF000000 NO MORE CMD
|
.HS FF000000 NO MORE CMD
|
||||||
|
@ -1008,12 +1032,6 @@ SMB.ComWrite.H.Len .EQ *-SMB.ComWrite.H
|
||||||
SMB.ComWrite.T
|
SMB.ComWrite.T
|
||||||
* DATA.....
|
* DATA.....
|
||||||
SMB.ComWrite.T.Len .EQ *-SMB.ComWrite.T
|
SMB.ComWrite.T.Len .EQ *-SMB.ComWrite.T
|
||||||
*-------------------------------------- #$04
|
|
||||||
SMB.ComClose.H .DA #3 WORD COUNT
|
|
||||||
.BS 2 FID
|
|
||||||
.HS 00000000 LastTimeModified
|
|
||||||
.HS 0000 ByteCount
|
|
||||||
SMB.ComClose.H.Len .EQ *-SMB.ComClose.H
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SMB.Trans2.H .DA #15 WORD COUNT
|
SMB.Trans2.H .DA #15 WORD COUNT
|
||||||
.BS 2 TotalParamCount
|
.BS 2 TotalParamCount
|
||||||
|
@ -1042,7 +1060,7 @@ SMB.Open2 .DA 0 TRANS2_OPEN2
|
||||||
.BS 2 FileAttributes
|
.BS 2 FileAttributes
|
||||||
.HS 00000000 CreationTime
|
.HS 00000000 CreationTime
|
||||||
.BS 2 OpenMode
|
.BS 2 OpenMode
|
||||||
.HS 00020000 AllocationSize
|
.HS 00000000 AllocationSize
|
||||||
.HS 00000000000000000000 Reserved
|
.HS 00000000000000000000 Reserved
|
||||||
* .AZ "filename"
|
* .AZ "filename"
|
||||||
SMB.Open2.Len .EQ *-SMB.Open2
|
SMB.Open2.Len .EQ *-SMB.Open2
|
||||||
|
|
|
@ -91,7 +91,7 @@ WND.Setup
|
||||||
sta RECT.SysClk+S.RECT.X1+1
|
sta RECT.SysClk+S.RECT.X1+1
|
||||||
|
|
||||||
lda DCB.GFX+S.DCB.GFX.W
|
lda DCB.GFX+S.DCB.GFX.W
|
||||||
sec
|
clc
|
||||||
sbc #0
|
sbc #0
|
||||||
sta RECT.SysClk+S.RECT.X2
|
sta RECT.SysClk+S.RECT.X2
|
||||||
lda DCB.GFX+S.DCB.GFX.W
|
lda DCB.GFX+S.DCB.GFX.W
|
||||||
|
|
|
@ -395,10 +395,12 @@ XRW.TestWP ldx A2L
|
||||||
.LIST ON
|
.LIST ON
|
||||||
XRW.Write bit IO.D2.ReadProt,x (4) PREWRITE MODE
|
XRW.Write bit IO.D2.ReadProt,x (4) PREWRITE MODE
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
bit IO.D2.ReadMode,x (4)
|
* bit IO.D2.ReadMode,x (4)
|
||||||
|
|
||||||
lda #$FF (2)
|
lda #$FF (2)
|
||||||
|
|
||||||
|
nop (2)
|
||||||
|
|
||||||
sta IO.D2.WriteMode,x (5) goto write mode
|
sta IO.D2.WriteMode,x (5) goto write mode
|
||||||
ora IO.D2.WShift,x (4)
|
ora IO.D2.WShift,x (4)
|
||||||
|
|
||||||
|
@ -835,12 +837,12 @@ XRW.SeekYA sta XRW.D2Trk-1,x will be current track at the end
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,y
|
lda IO.D2.Ph0Off,y
|
||||||
|
|
||||||
ldy #0
|
ldy A2L
|
||||||
|
lda IO.D2.DrvOn,y
|
||||||
.10 dey
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
lda IO.D2.Ph0Off,x
|
||||||
|
|
||||||
|
lda IO.D2.DrvOn,y
|
||||||
clc Exit wit CC (recalibrate)
|
clc Exit wit CC (recalibrate)
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue