Kernel 0.94++

This commit is contained in:
Rémy GIBERT 2021-06-05 17:48:54 +02:00
parent 70ec292f4a
commit a4f22f87d3
23 changed files with 308 additions and 196 deletions

View File

@ -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. | |
| 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 | |
| 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. | |
| 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.| |

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,11 @@
NEW
AUTO 3,1
*--------------------------------------
CL.PrintPrompt >PUSHW L.MSG.PROMPT
>PUSHBI 0
>SYSCALL PrintF
rts
*--------------------------------------
CL.READN0A tax
CL.READN0X >PUSHW ZPCLBuf
>PUSHW L.FMT.Byte
@ -120,7 +125,12 @@ CL.CHARIN.CTRL cpx #C.CR
cpx #3 Ctrl-C
beq CL.CLR
cpx #26 Ctrl-Z
cpx #C.TAB
bne .1
jmp HIS.Select
.1 cpx #26 Ctrl-Z
bne .8
jmp CL.SUPPR
@ -156,7 +166,7 @@ CL.CLR lda (ZPCLBuf)
lda (ZPCLBuf),y
bne .3
jsr CL.PrintCLBuf
jsr CL.Print
*--------------------------------------
CL.Reset lda #0
sta (ZPCLBuf)
@ -249,7 +259,7 @@ CL.PrintEOL lda CL.Ptr
CL.PrintEOL.8 clc
rts
*--------------------------------------
CL.PrintCLBuf ldy #S.PS.hStdOut
CL.Print ldy #S.PS.hStdOut
lda (pPS),y
>PUSHA
>PUSHW ZPCLBuf

View File

@ -8,17 +8,7 @@ GFX.Open >PUSHW L.DEV.GFX
>STA.G hDevGFX
rts
ldy #S.PS.hStdIn
lda (pPS),y
bit #1
beq .9
>PUSHA
>PUSHBI IOCTL.CONTROL
>PUSHWI 0
>SYSCALL IOCTL
bra GFX.TEXT
.9 rts
*--------------------------------------
@ -29,6 +19,29 @@ GFX.Close >LDA.G hDevGFX
.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)
*--------------------------------------
GFX.PLOT ldx #S.CB.CMD.SETPIXEL

View File

@ -2,77 +2,138 @@ NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
HIS.Init clc
rts
HIS.Init >LDYAI HISTORY.MAX Get a buffer for History
>LDYAI HISTORY.MAX Get a buffer for History
>SYSCALL StrVNew
bcs .9
txa
>STA.G HIS.hBuf
>STZ.G HIS.Count
>STA.G HIS.Index
* >STZ.G HIS.Count
* >STA.G HIS.Index
* >STA.G HIS.LRU
.9 rts
*--------------------------------------
HIS.Add >LDA.G HIS.hBuf
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
>PUSHW ZPCLBuf
>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
beq HIS.Add.RTS empty history,nothing to do
>STZ.G HIS.Index Reset Index
.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
bne .1
>LDA.G HIS.Count
bra HIS.GetToCL
.1 dec
bra HIS.GetToCl
*--------------------------------------
HIS.GetNext >LDA.G HIS.hBuf
beq HIS.Add.RTS
HIS.GetNext >LDA.G HIS.Count
beq HIS.Select.RTS empty history,nothing to do
>LDA.G HIS.Count
beq HIS.Add.RTS empty history,nothing to do
>EOR.G HIS.Index
beq HIS.GetToCL
>LDA.G HIS.Index
inc
>CMP.G HIS.Count
bne HIS.GetToCl
lda #0
>STA.G HIS.Index
jmp CL.CLR
*--------------------------------------
HIS.GetToCl >STA.G HIS.Index
jsr CL.CLR
>PUSHB.G HIS.hBuf
>PUSHBI 0
>PUSHB.G HIS.Index
>PUSHW ZPCLBuf
HIS.GetToCL1 >LDA.G HIS.Index
beq .9
>SYSCALL StrVGet
jsr HIS.GetIndex
bcs .9
ldy #$ff
@ -84,7 +145,16 @@ HIS.GetToCl >STA.G HIS.Index
sta CL.Ptr
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
SAVE usr/src/bin/forth.s.his

View File

@ -463,7 +463,7 @@ KW.AND jsr CheckStackPop4
sta (pStack),y
inc pStack
clc
* clc
.9 rts
*--------------------------------------
@ -481,7 +481,7 @@ KW.OR jsr CheckStackPop4
sta (pStack),y
inc pStack
clc
* clc
.9 rts
*--------------------------------------
@ -499,7 +499,7 @@ KW.XOR jsr CheckStackPop4
sta (pStack),y
inc pStack
clc
* clc
.9 rts
*--------------------------------------
@ -519,9 +519,11 @@ KW.LWR jsr CheckStackPop4
lda #0
ror
eor #$80
sta (pStack)
clc
* clc
.9 rts
*--------------------------------------
@ -541,10 +543,10 @@ KW.GTR jsr CheckStackPop4
lda #0
ror
eor #$80
sta (pStack)
clc
* clc
.9 rts
*--------------------------------------
@ -558,27 +560,26 @@ KW.EQ jsr CheckStackPop4
ldy #2
lda (pStack),y
eor (pStack)
tax
inc pStack
tax
bne .1
lda (pStack),y
eor (pStack)
inc pStack
tay
bne .1
txa
bne .1
sec
.1 inc pStack
.1 lda #0
ror
inc pStack
inc pStack
sta (pStack)
clc
* clc
.9 rts
*--------------------------------------
KW.NEGATIVE inc pStack

View File

@ -5,7 +5,8 @@ NEW
.OR $2000
.TF bin/forth
*--------------------------------------
HISTORY.MAX .EQ 256
HIS.MAX .EQ 10
HISTORY.MAX .EQ 512
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
@ -79,6 +80,9 @@ CS.START cld
.DA CS.QUIT
L.DEV.GFX .DA DEV.GFX
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.ECHOCRLF .DA MSG.ECHOCRLF
L.MSG.DEBUG .DA MSG.DEBUG
@ -99,7 +103,9 @@ J.ESC .DA CL.BS left arrow
.DA HIS.GetPrev
.DA CL.NAK right arrow
L.KEYWORDS .DA KEYWORDS
I.KEYWORDS .DA GFX.PLOT
I.KEYWORDS .DA GFX.TEXT
.DA GFX.GR
.DA GFX.PLOT
.DA GFX.RECT
.DA KW.DUP
.DA KW.DROP
@ -206,7 +212,9 @@ KW.IF.ID .EQ *-I.KEYWORDS
.DA KW.Rg
.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 KW.DUP
.DA CP.JSRX KW.DROP
@ -446,7 +454,7 @@ CS.FORTH.Run jsr CL.Reset
lda #80
sta CL.MaxCnt
jsr PrintPrompt
jsr CL.PrintPrompt
bcs .9
.1 >SYSCALL GetChar
@ -734,11 +742,6 @@ CS.QUIT jsr GFX.Close
.8 clc
rts
*--------------------------------------
PrintPrompt >PUSHW L.MSG.PROMPT
>PUSHBI 0
>SYSCALL PrintF
rts
*--------------------------------------
PrintDebugMsg lda pStack+1
ldy pStack
bne .1
@ -907,6 +910,9 @@ CS.END
*--------------------------------------
DEV.GFX .AZ "/dev/gfx"
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"
.AS " -D : Debug Mode\r\n"
.AS " -T : Trace On"
@ -932,7 +938,9 @@ EscChars .AS 'DBAC'
EscChars.Cnt .EQ *-EscChars
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
*--------------------------------------
KEYWORDS .AT "PLOT"
KEYWORDS .AT "TEXT"
.AT "GR"
.AT "PLOT"
.AT "RECT"
*--------------------------------------
.AT "DUP" ( n - n n ) Duplicate top of stack.
@ -1170,6 +1178,7 @@ hCLBuf .BS 1
HIS.hBuf .BS 1
HIS.Count .BS 1
HIS.Index .BS 1
HIS.LRU .BS 1
hFile .BS 1
LineCounter .BS 2

View File

@ -217,7 +217,7 @@ CS.RUN.LOGO.SHOW
inc
sta CB.LOGO+S.CB.Y1
cmp #151
cmp #144
bne .1
.7 lda yDir

View File

@ -19,13 +19,17 @@ BITBLT >LDYA CB.Cache+S.CB.X1
lda CB.Cache+S.CB.X1
clc
adc CB.Cache+S.CB.SrcW
tay
pha
lda CB.Cache+S.CB.X1+1
adc CB.Cache+S.CB.SrcW+1
cpy #1
bcs .0
ply
bne .10
dec
.0 dey
.10 dey
jsr LBUF.SetBounds2YA
@ -58,13 +62,7 @@ BITBLT >LDYA CB.Cache+S.CB.X1
ldx LBUF.C1
.3 txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
.3 >X2PageY
lda (ZPBMSavePtr)
sta (ZPBasePtr),y
@ -110,13 +108,7 @@ BITBLT.0 bit #S.CB.OP.SAVE
ldx LBUF.C1
.3 txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
.3 >X2PageY
lda (ZPBasePtr),y
sta (ZPBMSavePtr)
@ -178,6 +170,7 @@ BITBLT.2 ldy #S.BM-1
adc #S.BM
sta ZPBMDataPtr
bcc .2
inc ZPBMDataPtr+1
.2 >LDYA CB.Cache+S.CB.SrcY

View File

@ -45,13 +45,7 @@ LBUF.DrawAtY.SET
LBUF.DrawAtY.AND.SET
ldx LBUF.C1 x C1->C2
txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
>X2PageY
lda (ZPBasePtr),y Clear screen at C1
and LBUF.C1.MASK with MASK bits
@ -68,13 +62,7 @@ LBUF.DrawAtY.AND.SET
bcs .8 C1+1 > C2, we are done...
.1 txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
.1 >X2PageY
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
sta (ZPBasePtr),y
@ -83,13 +71,7 @@ LBUF.DrawAtY.AND.SET
cpx LBUF.C2
bcc .1
.2 txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
.2 >X2PageY
lda (ZPBasePtr),y Get C2
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
txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
>X2PageY
lda (ZPBasePtr),y Get C1
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...
.1 txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
.1 >X2PageY
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
.20 ora (ZPBasePtr),y
@ -155,13 +125,7 @@ LBUF.DrawAtY.XXX
cpx LBUF.C2
bne .1
.2 txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
.2 >X2PageY
lda (ZPBasePtr),y Get C2
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
@ -178,13 +142,7 @@ LBUF.DrawAtY.XXX
LBUF.DrawAtY.AND.ORA
ldx LBUF.C1 x C1->C2
txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
>X2PageY
lda LBUF.MASK,x get MASK bits
ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
@ -212,13 +170,7 @@ LBUF.DrawAtY.AND.ORA
bra .3
.2 txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
.2 >X2PageY
lda (ZPBasePtr),y
and LBUF.MASK,x
@ -230,13 +182,7 @@ LBUF.DrawAtY.AND.ORA
cpx LBUF.C2
bne .2
txa
and #1
tay
sta CLRPAGE2,y
txa
lsr
tay
>X2PageY
lda LBUF.MASK,x get MASK bits
ora LBUF.C2.MASK

View File

@ -77,16 +77,20 @@ VLINE.MONO >LDYA CB.Cache+S.CB.X1
lsr
sta ZPTmpByte Save COL (DIV)
lda #0
rol
tay
sta CLRPAGE2,y Select proper BANK
ldy #SETPAGE2
bcc .1
dey CLRPAGE2
.1 sta $C000,y Select proper BANK
ldy CB.Cache+S.CB.Y1
clc
lda CB.Cache+S.CB.OP
* cmp #S.CB.OP.XOR
beq VLINE.MONO.XOR
lda CB.Cache+S.CB.COLOR
bne VLINE.MONO.WHITE
@ -94,12 +98,15 @@ VLINE.MONO.BLACK
.1 lda BASEL,y
adc ZPTmpByte
sta ZPBasePtr
lda BASEH,y
sta ZPBasePtr+1
lda (ZPBasePtr)
and Mono.NMasks,x
sta (ZPBasePtr)
cpy CB.Cache+S.CB.Y2
iny
bcc .1
@ -115,14 +122,18 @@ VLINE.MONO.XOR
.1 lda BASEL,y
adc ZPTmpByte
sta ZPBasePtr
lda BASEH,y
sta ZPBasePtr+1
lda (ZPBasePtr)
.2 eor Mono.Masks,x SELF MODIFIED
sta (ZPBasePtr)
cpy CB.Cache+S.CB.Y2
iny
bcc .1
rts
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
iny
bcc .1
rts
*--------------------------------------
MAN

View File

@ -17,17 +17,22 @@ SETPIXEL.MONO >LDYA CB.Cache+S.CB.X1
jsr DIVMOD7YA
lsr
php
ldy CB.Cache+S.CB.Y1
clc
adc BASEL,y
sta ZPBasePtr
lda BASEH,y
sta ZPBasePtr+1
plp
lda #0
rol
tay
sta CLRPAGE2,y Select proper BANK
ldy #0
bcs .1
iny
.1 sta CLRPAGE2,y Select proper BANK
lda CB.Cache+S.CB.OP
* cmp #S.CB.OP.XOR
beq SETPIXEL.MONO.XOR

View File

@ -12,6 +12,19 @@ NEW
.INB inc/io.i
.INB inc/gfx.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
ZPPtr2 .EQ ZPBIN+2

View File

@ -36,13 +36,17 @@ NEW
Y @ X @ 4 * COLOR @ PLOT ;
: MANDELBROT
." Press a key to start..."
KEY GR
MAXY 0 DO
I Y !
MAXX 0 DO
I X !
CELL
LOOP
LOOP ;
LOOP
TEXT
." All done." ;
MANDELBROT
MAN

View File

@ -4,7 +4,7 @@ NEW
IO.D2.SeekTimeR .EQ 58 LIBBLKDEV Recalibration
IO.D2.SeekTimeF .EQ 58 LIBBLKDEV Track Formatter
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.Ph0Off .EQ $C080

View File

@ -14,6 +14,7 @@ S.SMB.H.CMD.TRANS2 .EQ $32
S.SMB.H.CMD.NEGOTIATE .EQ $72
S.SMB.H.CMD.SESSION.SETUP.ANDX .EQ $73
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.FLAGS .EQ 9
S.SMB.H.FLAGS.LOCKANDREADOK .EQ 1

View File

@ -392,12 +392,12 @@ BB.Seek lda BB.HdrTrk get track we're on
lda IO.D2.Ph0Off,y
ldy #0
.10 dey
bne .10
ldy BB.Slotn0
lda IO.D2.DrvOn,y
lda IO.D2.Ph0Off,x
lda IO.D2.DrvOn,y
*--------------------------------------
BB.Read ldx BB.Slotn0

View File

@ -137,13 +137,13 @@ D2.MoveHead.SEI lda D2.CurrentQTrack
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.DrvOn,y
rts
D2.SeekPhOnY and #6

View File

@ -533,6 +533,13 @@ CIFS2.ChOwn
lda #MLI.E.BADCALL
sec
rts
*--------------------------------------
*CIFS.FOpen >STYA pPath resolved path
* ldx #S.SMB.H.CMD.NT.CREATE.ANDX
*--------------------------------------
CIFS.FOpen jsr MakeTrans2Req
@ -565,6 +572,10 @@ CIFS.FOpen jsr MakeTrans2Req
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+9 AccessMode
sta (ZPReqPtr),y
lda #$52
iny
sta (ZPReqPtr),y
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+19 OpenMode
pla
@ -576,13 +587,17 @@ CIFS.FOpen jsr MakeTrans2Req
sta (ZPReqPtr),y
.2 pla
and #O.APPEND
beq .3
* and #O.APPEND
* beq .3
lda (ZPReqPtr),y
ora #1
* sta (ZPReqPtr),y
ldy #S.NETBIOS+S.SMB.H.FLAGS2+1
lda #$40
sta (ZPReqPtr),y
.3 ply
jsr AppendPath

View File

@ -981,6 +981,30 @@ SMB.TreeConnect.H.Len .EQ *-SMB.TreeConnect.H
SMB.TreeConnect.T
.AZ "A:" Disk Share
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
SMB.ComRead.H .DA #10 WORD COUNT
.HS FF000000 NO MORE CMD
@ -1008,12 +1032,6 @@ SMB.ComWrite.H.Len .EQ *-SMB.ComWrite.H
SMB.ComWrite.T
* DATA.....
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
.BS 2 TotalParamCount
@ -1042,7 +1060,7 @@ SMB.Open2 .DA 0 TRANS2_OPEN2
.BS 2 FileAttributes
.HS 00000000 CreationTime
.BS 2 OpenMode
.HS 00020000 AllocationSize
.HS 00000000 AllocationSize
.HS 00000000000000000000 Reserved
* .AZ "filename"
SMB.Open2.Len .EQ *-SMB.Open2

View File

@ -91,7 +91,7 @@ WND.Setup
sta RECT.SysClk+S.RECT.X1+1
lda DCB.GFX+S.DCB.GFX.W
sec
clc
sbc #0
sta RECT.SysClk+S.RECT.X2
lda DCB.GFX+S.DCB.GFX.W

View File

@ -395,10 +395,12 @@ XRW.TestWP ldx A2L
.LIST ON
XRW.Write bit IO.D2.ReadProt,x (4) PREWRITE MODE
.LIST OFF
bit IO.D2.ReadMode,x (4)
* bit IO.D2.ReadMode,x (4)
lda #$FF (2)
nop (2)
sta IO.D2.WriteMode,x (5) goto write mode
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
ldy #0
.10 dey
bne .10
ldy A2L
lda IO.D2.DrvOn,y
lda IO.D2.Ph0Off,x
lda IO.D2.DrvOn,y
clc Exit wit CC (recalibrate)
rts
*--------------------------------------