**LOT of mods*** TESTING REQUESTED around....everything :-)

This commit is contained in:
burniouf 2023-04-22 20:58:37 +02:00
parent 82f1cb8630
commit 9aea9939ee
33 changed files with 1312 additions and 1078 deletions

View File

@ -1,94 +1,92 @@
# A2osX Terminal Codes Guide
### Updated February 10, 2020
### Updated Apr. 15, 2023
A2osX terminal capabilities are based off of the standard VT-100 Terminal. This applies to users connected via Super Serial Cards, Telnet (via TelnetD server daemon) and the Apple console (physical keyboard/screen). All programs can use this facility to create rich interactive text mode applications. This includes both programs written in Assembly or Scripts written for the Shell (SH). The table below lists the codes you can use in your applications and their function. Consult the A2osX Shell Developers Guide for information on using these codes in scripts. Note, the Apple Console implementation only supports a subset of the VT-100 codes, these are noted in the last column as OK.
| Esc Sequence | Description | DEC Code | A2osX TERM |
|--------------|-------------|----------|------------|
|Esc[20h |Set new line mode|LMN|OK|
|Esc[?1h |Set cursor key to application|DECCKM||
|Esc[?3h |Set number of columns to 132|DECCOLM||
|Esc[?4h |Set smooth scrolling|DECSCLM||
|Esc[?5h |Set reverse video on screen|DECSCNM|OK|
|Esc[?6h |Set origin to relative|DECOM||
|Esc[?7h |Set auto-wrap mode|DECAWM|OK|
|Esc[?8h |Set auto-repeat mode|DECARM||
|Esc[?9h |Set interlacing mode|DECINLM||
|Esc[20l |Set line feed mode|LMN|OK|
|Esc[?1l |Set cursor key to cursor|DECCKM||
|Esc[?2l |Set VT52 (versus ANSI) DECANM||
|Esc[?3l |Set number of columns to 80|DECCOLM
|Esc[?4l |Set jump scrolling| DECSCLM
|Esc[?5l |Set normal video on screen| DECSCNM |OK|
|Esc[?6l |Set origin to absolute| DECOM
|Esc[?7l |Reset auto-wrap mode| DECAWM |OK|
|Esc[?8l |Reset auto-repeat mode| DECARM
|Esc[?9l |Reset interlacing mode| DECINLM ||
|Esc= |Set alternate keypad mode| DECKPAM ||
|Esc> |Set numeric keypad mode| DECKPNM ||
|Esc(A |Set United Kingdom G0 character set| setukg0 |OK|
|Esc)A |Set United Kingdom G1 character set| setukg1 |OK|
|Esc(B |Set United States G0 character set| setusg0 |OK|
|Esc)B |Set United States G1 character set| setusg1 |OK|
|Esc(0 |Set G0 special chars. & line set| setspecg0 |OK|
|Esc)0 |Set G1 special chars. & line set| setspecg1 |OK|
|Esc(1 |Set G0 alternate character ROM| setaltg0 |OK|
|Esc)1 |Set G1 alternate character ROM| setaltg1 |OK|
|Esc(2 |Set G0 alt char ROM and spec. graphics| setaltspecg0 |OK|
|Esc)2 |Set G1 alt char ROM and spec. graphics| setaltspecg1 |OK|
|EscN |Set single shift 2| SS2
|EscO |Set single shift 3| SS3
|Esc[m |Turn off character attributes| SGR0 |OK|
|Esc[0m |Turn off character attributes| SGR0 |OK|
|Esc[1m |Turn bold mode on| SGR1
|Esc[2m |Turn low intensity mode on| SGR2
|Esc[4m |Turn underline mode on| SGR4
|Esc[5m |Turn blinking mode on| SGR5
|Esc[7m |Turn reverse video on| SGR7 |OK|
|Esc[8m |Turn invisible text mode on| SGR8 ||
|Esc[FG;BGm| Set Text Color to FG and BG |OK|
|Esc[Line;Liner |Set top and bottom lines of a window| DECSTBM |OK|
|Esc[ValueA |Move cursor up n lines| CUU ||
|Esc[ValueB |Move cursor down n lines| CUD ||
|Esc[ValueC |Move cursor right n lines| CUF||
|Esc[ValueD |Move cursor left n lines| CUB ||
|Esc[H |Move cursor to upper left corner| cursorhome||
|Esc[;H |Move cursor to upper left corner| cursorhome||
|Esc[Line;ColumnH |Move cursor to screen location v,h| CUP |OK|
|Esc[f |Move cursor to upper left corner| hvhome ||
|Esc[;f |Move cursor to upper left corner| hvhome ||
|Esc[Line;Columnf |Move cursor to screen location v,h| CUP||
|EscD |Move/scroll window up one line| IND ||
|EscM |Move/scroll window down one line| RI ||
|EscE |Move to next line| NEL ||
|Esc7 |Save cursor position and attributes| DECSC | OK |
|Esc8 |Restore cursor position and attributes| DECSC | OK |
|EscH |Set a tab at the current column| HTS ||
|Esc[g |Clear a tab at the current column| TBC||
|Esc[0g |Clear a tab at the current column| TBC||
|Esc[3g |Clear all tabs| TBC||
|Esc#3 |Double-height letters, top half| DECDHL ||
|Esc#4 |Double-height letters, bottom half| DECDHL||
|Esc#5 |Single width, single height letters| DECSWL||
|Esc#6 |Double width, single height letters| DECDWL||
|Esc[K |Clear line from cursor right| EL0 |OK|
|Esc[0K |Clear line from cursor right| EL0 |OK|
|Esc[1K |Clear line from cursor left | EL1 |OK|
|Esc[2K |Clear entire line| EL2 |OK|
|Esc[J |Clear screen from cursor down| ED0 |OK|
|Esc[0J |Clear screen from cursor down | ED0 |OK|
|Esc[1J |Clear screen from cursor up | ED1 |OK|
|Esc[2J |Clear entire screen | ED2 |OK|
|Esc5n |Device status report | DSR ||
|Esc0n |Response: terminal is OK | DSR||
|Esc3n |Response: terminal is not OK | DSR||
|Esc6n |Get cursor position | DSR |OK|
|EscLine;ColumnR |Response: cursor is at v,h | CPR |OK|
|Esc[c |Identify what terminal type | DA ||
|Esc[0c |Identify what terminal type (another)| DA||
|Esc[?1;Value0c |Response: terminal type code n | DA ||
|Escc |Reset terminal to initial state| RIS |OK|
| Esc Sequence | Description | DEC Code | A2osX TERM |
|---------------|-------------|----------|------------|
|Esc[20h |Set new line mode|LMN|OK|
|Esc[?1h |Set cursor key to application|DECCKM||
|Esc[?3h |Set number of columns to 132|DECCOLM||
|Esc[?4h |Set smooth scrolling|DECSCLM||
|Esc[?5h |Set reverse video on screen|DECSCNM|OK|
|Esc[?6h |Set origin to relative|DECOM||
|Esc[?7h |Set auto-wrap mode|DECAWM|OK|
|Esc[?8h |Set auto-repeat mode|DECARM||
|Esc[?9h |Set interlacing mode|DECINLM||
|Esc[20l |Set line feed mode|LMN|OK|
|Esc[?1l |Set cursor key to cursor|DECCKM||
|Esc[?2l |Set VT52 (versus ANSI) |DECANM||
|Esc[?3l |Set number of columns to 80|DECCOLM ||
|Esc[?4l |Set jump scrolling| DECSCLM ||
|Esc[?5l |Set normal video on screen| DECSCNM |OK|
|Esc[?6l |Set origin to absolute| DECOM ||
|Esc[?7l |Reset auto-wrap mode| DECAWM |OK|
|Esc[?8l |Reset auto-repeat mode| DECARM ||
|Esc[?9l |Reset interlacing mode| DECINLM ||
|Esc= |Set alternate keypad mode| DECKPAM ||
|Esc> |Set numeric keypad mode| DECKPNM ||
|Esc(A |Set United Kingdom G0 character set| setukg0 |OK|
|Esc)A |Set United Kingdom G1 character set| setukg1 |OK|
|Esc(B |Set United States G0 character set| setusg0 |OK|
|Esc)B |Set United States G1 character set| setusg1 |OK|
|Esc(0 |Set G0 special chars. & line set| setspecg0 |OK|
|Esc)0 |Set G1 special chars. & line set| setspecg1 |OK|
|Esc(1 |Set G0 alternate character ROM| setaltg0 |OK|
|Esc)1 |Set G1 alternate character ROM| setaltg1 |OK|
|Esc(2 |Set G0 alt char ROM and spec. graphics| setaltspecg0 |OK|
|Esc)2 |Set G1 alt char ROM and spec. graphics| setaltspecg1 |OK|
|EscN |Set single shift 2| SS2
|EscO |Set single shift 3| SS3
|Esc[m |Turn off character attributes| SGR0 |OK|
|Esc[0m |Turn off character attributes| SGR0 |OK|
|Esc[1m |Turn bold mode on| SGR1 ||
|Esc[2m |Turn low intensity mode on| SGR2 ||
|Esc[4m |Turn underline mode on| SGR4 ||
|Esc[5m |Turn blinking mode on| SGR5 ||
|Esc[7m |Turn reverse video on| SGR7 |OK|
|Esc[8m |Turn invisible text mode on| SGR8 ||
|Esc[FG;BGm |Set Text Color to FG and BG ||OK|
|Esc[Line;Liner |Set top and bottom lines of a window| DECSTBM |OK|
|Esc[ValueA |Move cursor up n lines| CUU |OK|
|Esc[ValueB |Move cursor down n lines| CUD |OK|
|Esc[ValueC |Move cursor right n lines| CUF |OK|
|Esc[ValueD |Move cursor left n lines| CUB |OK|
|Esc[H |Move cursor to upper left corner| CUP |OK|
|Esc[Line;ColH |Move cursor to screen location v,h| CUP |OK|
|Esc[f |Move cursor to upper left corner| HVP|OK|
|Esc[Line;Colf |Move cursor to screen location v,h| HVP|OK|
|EscD |Move/scroll window up one line| IND |OK|
|EscE |Move to next line| NEL |OK|
|EscM |Move/scroll window down one line| RI |OK|
|Esc7 |Save cursor position and attributes| DECSC | OK |
|Esc8 |Restore cursor position and attributes| DECSC | OK |
|EscH |Set a tab at the current column| HTS ||
|Esc[g |Clear a tab at the current column| TBC||
|Esc[0g |Clear a tab at the current column| TBC||
|Esc[3g |Clear all tabs| TBC||
|Esc#3 |Double-height letters, top half| DECDHL ||
|Esc#4 |Double-height letters, bottom half| DECDHL||
|Esc#5 |Single width, single height letters| DECSWL||
|Esc#6 |Double width, single height letters| DECDWL||
|Esc[K |Clear line from cursor right| EL0 |OK|
|Esc[0K |Clear line from cursor right| EL0 |OK|
|Esc[1K |Clear line from cursor left | EL1 |OK|
|Esc[2K |Clear entire line| EL2 |OK|
|Esc[J |Clear screen from cursor down| ED0 |OK|
|Esc[0J |Clear screen from cursor down | ED0 |OK|
|Esc[1J |Clear screen from cursor up | ED1 |OK|
|Esc[2J |Clear entire screen | ED2 |OK|
|Esc5n |Device status report | DSR ||
|Esc0n |Response: terminal is OK | DSR||
|Esc3n |Response: terminal is not OK | DSR||
|Esc6n |Get cursor position | DSR |OK|
|EscLine;ColR |Response: cursor is at v,h | CPR |OK|
|Esc[c |Identify what terminal type | DA ||
|Esc[0c |Identify what terminal type (another)| DA||
|Esc[?1;Value0c |Response: terminal type code n | DA ||
|Escc |Reset terminal to initial state| RIS |OK|
## License
A2osX is licensed under the GNU General Public License.
@ -107,4 +105,4 @@ The full A2osX license can be found **[Here](../LICENSE)**.
## Copyright
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.
Copyright 2015 - 2023, Remy Gibert and the A2osX contributors.

Binary file not shown.

View File

@ -692,7 +692,7 @@ ENV.LIB .AZ "LIB"
LIB.O .AZ ".o"
*--------------------------------------
CC.EscChars .AS "abefnrtv"
.HS 5C27223F
.HS 5C27223F \'"?
CC.EscChars.Cnt .EQ *-CC.EscChars
CC.EscCodes .HS 07081B0C0A0D090B
.HS 5C27223F

View File

@ -36,6 +36,7 @@ Ctrl.DEL jsr BUF.ComputeCOffset
jsr Ctrl.BS
bcs .9
jmp Ctrl.Z
.8 clc
@ -255,60 +256,40 @@ Ctrl.L jsr BUF.GetLine
*--------------------------------------
Ctrl.CR lda #C.CR
jsr BUF.InsertA
bcs .99
bcs .9
jsr SCRN.LineBufInitEdit CEOL
>STZ.G FileX
>INCW.G FileY
>STZ.G FileX
>LDA.G ScreenX
beq .1
jmp SCRN.UpdateViewPort
*--------------------------------------
.1 jsr SCRN.LineBufInitEdit +CEOL
jsr SCRN.LineBufOut
bcs .9
>LDA.G CurY
>CMP.G ViewPortHm1
bne .2 bottom line ?
jmp SCRN.UpdateViewPort
*--------------------------------------
.2 inc
>STA.G CurY
>STZ.G CurX
>LDA.G CurY
>CMP.G ViewPortHm1
bne .1
jsr SCRN.LineBufOut Bottom line, CEOL...
bcs .99
jmp SCRN.UpdateViewPort ...and scroll
.1 dec
>CMP.G ViewPortHm1
beq .6 No scroll needed
>PUSHW LineBufPtr
>PUSHW L.SEQ.SCROLLCURDN
>LDA.G CurY
inc
inc
>PUSHA
>LDA.G ScreenH
dec
>PUSHA
>PUSHBI 2
jsr SCRN.LineBufSprintf
.99 bcs .9
>PUSHW LineBufPtr
>PUSHW L.SEQ.SCROLLRGN
>LDA.G ScreenH
dec
>PUSHA
>PUSHBI 1
jsr SCRN.LineBufSprintf
jsr SCRN.InsLineAtCurY
bcs .9
.6 jsr SCRN.LineBufOut
bcs .9
>INC.G CurY
jsr BUF.ComputeCOffset
jsr SCRN.UpdateCurrentLine
bcs .9
jmp SCRN.GotoCurXCurY
* jmp SCRN.UpdateViewPort
.9 rts
*--------------------------------------
Ctrl.O ldy #FileY+1
@ -405,24 +386,7 @@ Ctrl.Y jsr BUF.GetNextLine
tya Y = line length
>STA.G FileX
>LDA.G FileY
sec
>SBC.G ViewPortHm1
tax
>LDA.G FileY+1
sbc #0
bcs .2
>LDA.G FileY
tax
lda #0
.2 >STA.G ScreenY+1
dey
txa
sta (pData),y
jmp SCRN.UpdateMainAndStatus
jmp SCRN.UpdateViewPort
*--------------------------------------
Ctrl.F >LDYA L.DLG.FIND
jsr DLG.Open
@ -600,6 +564,7 @@ Ctrl.D jsr BUF.DelSel
bcs Ctrl.D.8
jsr BUF.ResetSel
jsr SCRN.CursorAdjust
jsr SCRN.UpdateViewPort
jsr SCRN.UnSaved will update TopBar
@ -648,18 +613,17 @@ Ctrl.Z jsr BUF.ComputeCOffset
jsr SCRN.ResetScrollRgn
bcs .9
jsr SCRN.UpdateCurrentLine
bcs .9
jsr SCRN.UpdateLast
bcs .9
.8 jsr SCRN.UpdateCurrentLine
bcs .9
.80 jsr SCRN.UnSaved
jsr SCRN.GotoCurXCurY
jmp SCRN.UpdateStatusBar
.80 jsr SCRN.CursorAdjust
jsr SCRN.UpdateViewPort
jsr SCRN.UnSaved will update TopBar
jmp SCRN.UpdateMainAndStatus
.9 rts
*--------------------------------------
MAN

View File

@ -8,64 +8,65 @@ DLG.Open >STYA ZPPTR2
lda #0
>SYSCALL GetMem
bcs .99
>STYA ZPPTR1
txa
>STA.G hDLG
ldy #0
.1 lda (ZPPTR2),y
sta (ZPPTR1),y
iny
tya
cmp (ZPPTR2)
bne .1
jsr DLG.SetOrigin
sty TmpByte
jsr SCRN.GotoXY
bcs .9
ldy #S.DLG.Title
jsr DLG.DrawBar
jsr DLG.DrawTBar
.99 bcs .9
jsr SCRN.LineBufInitDLG
ldy #S.DLG.W
lda (ZPPTR1),y
dec
dec
tax
lda #C.SPACE
.3 jsr SCRN.ToLineBuf
dex
bne .3
jsr DLG.VBarToLineBuf
ldy #S.DLG.H
lda (ZPPTR1),y
dec
dec
tax
.4 phx
inc TmpByte
ldy #S.DLG.X
lda (ZPPTR1),y
tax
ldy TmpByte
jsr SCRN.GotoXY
bcs .9
jsr SCRN.LineBufOut
bcs .9
plx
dex
bne .4
@ -75,42 +76,42 @@ DLG.Open >STYA ZPPTR2
ldy #S.DLG.X
lda (ZPPTR1),y
tax
ldy TmpByte
jsr SCRN.GotoXY
bcs .9
ldy #S.DLG.Status
jsr DLG.DrawBar
jsr DLG.DrawSBar
bcs .9
jmp DLG.CTRL.DrawAll
.9 rts
.9 rts
*--------------------------------------
DLG.Run jsr IO.GetCh
bcs .9
cmp #3
beq .8
cmp #C.CR
beq .8
cmp #C.TAB
beq DLG.NextFocus
pha
ldy #S.DLG.Focus
lda (ZPPTR1),y get actual focused Ctrl
tay
pla
jsr DLG.CTRL.CharIn
bra DLG.Run
.8 clc
.9 rts
*--------------------------------------
@ -119,7 +120,7 @@ DLG.NextFocus ldy #S.DLG.Focus
pha save it...
tax
.1 inx next one
.2 txa
@ -137,50 +138,50 @@ DLG.NextFocus ldy #S.DLG.Focus
txa
ldy #S.DLG.Focus
sta (ZPPTR1),y
pla get old focused
phx save new focused
jsr DLG.CTRL.Focus
pla
jsr DLG.CTRL.Focus
jmp DLG.Run
*--------------------------------------
DLG.Close ldy #S.DLG.Y
lda (ZPPTR1),y
sta TmpByte
>LDA.G ScreenY
clc
ldy #S.DLG.Y
adc (ZPPTR1),y
sta TmpIndex
>LDA.G ScreenY+1
adc #0
sta TmpIndex+1
ldy #S.DLG.H
lda (ZPPTR1),y
jsr SCRN.UpdateMain.1
bcs .9
>LDA.G hDLG
>SYSCALL FreeMem
>STZ.G hDLG
clc
.9 rts
.9 rts
*--------------------------------------
DLG.CTRL.DrawAll
ldy #S.DLG.Ctrls
.5 lda (ZPPTR1),y
beq .8
phy
jsr DLG.CTRL.Draw
ply
@ -192,7 +193,7 @@ DLG.CTRL.DrawAll
.8 ldy #S.DLG.Focus
lda (ZPPTR1),y
jmp DLG.CTRL.Focus
.9 rts
*--------------------------------------
DLG.CTRL.Draw sty TmpByte Y=CtrlID
@ -208,24 +209,24 @@ DLG.CTRL.Draw.LBL
jsr DLG.CTRL.GotoOrg
bcs .9
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny
iny
iny
.1 lda (ZPPTR1),y
beq .8
jsr SCRN.ToLineBuf
iny
bra .1
.8 jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
DLG.CTRL.Draw.TB
@ -233,17 +234,17 @@ DLG.CTRL.Draw.TB
jsr DLG.CTRL.GotoOrg
bcs .9
ldy TmpByte
lda (ZPPTR1),y
tay
iny
iny
iny
iny
iny
lda (ZPPTR1),y
@ -252,38 +253,38 @@ DLG.CTRL.Draw.TB
>SYSCALL GetMemPtr
>STYA ZPPTR2
lda #C.SPACE
jsr SCRN.ToLineBuf
ldy #0
.1 lda (ZPPTR2),y
beq .2
jsr SCRN.ToLineBuf
iny
bra .1
.2 tya
tax
ldy TmpByte
lda (ZPPTR1),y
tay
iny
iny
iny
txa
sta (ZPPTR1),y CURPOS
iny
.3 txa
.3 txa
eor (ZPPTR1),y MAXCHAR
beq .8
lda #C.SPACE
jsr SCRN.ToLineBuf
inx
@ -291,7 +292,7 @@ DLG.CTRL.Draw.TB
.8 lda #C.SPACE
jsr SCRN.ToLineBuf
jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
@ -300,55 +301,62 @@ DLG.CTRL.Draw.OL
jsr DLG.CTRL.GotoOrg
bcs .9
ldy TmpByte
lda (ZPPTR1),y
tay S.DLG.Ctrl.OL
iny X
iny X
iny Y
iny shortcut
iny varptr
lda (ZPPTR1),y
phy
tay
lda (pData),y
ply
iny value
eor (ZPPTR1),y
tax
iny label
lda #"("
lda #'('
jsr SCRN.ToLineBuf
lda #"o"
cpx #0
lda #C.SO
jsr SCRN.ToLineBuf
lda #'`'
cpx #0
beq .2
lda #C.SPACE
.2 jsr SCRN.ToLineBuf
lda #")"
lda #C.SI
jsr SCRN.ToLineBuf
lda #')'
jsr SCRN.ToLineBuf
lda #C.SPACE
jsr SCRN.ToLineBuf
.3 lda (ZPPTR1),y
beq .4
jsr SCRN.ToLineBuf
iny
bra .3
.4 lda #C.SPACE
jsr SCRN.ToLineBuf
.8 jmp SCRN.LineBufOut
.9 rts
@ -358,27 +366,27 @@ DLG.CTRL.Draw.BUT
jsr DLG.CTRL.GotoOrg
bcs .9
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny
iny
iny
iny
lda #C.SPACE
jsr SCRN.ToLineBuf
jsr SCRN.ToLineBuf
.1 lda (ZPPTR1),y
beq .8
jsr SCRN.ToLineBuf
iny
bra .1
.8 lda #C.SPACE
jsr SCRN.ToLineBuf
@ -386,7 +394,7 @@ DLG.CTRL.Draw.BUT
.9 rts
*--------------------------------------
DLG.CTRL.Focus sta TmpByte A=CtrlID
tay
lda (ZPPTR1),y Ctrl Definition
tay
@ -400,28 +408,28 @@ DLG.CTRL.Focus.LBL
rts
DLG.CTRL.Focus.TB
jsr SCRN.LineBufInitTB
jsr DLG.CTRL.GotoOrg
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .1
sec
.1 lda #C.SPACE
bcc .2
lda #'['
.2 jsr SCRN.ToLineBuf
jsr DLG.CTRL.GotoEnd
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .3
sec
.3 lda #C.SPACE
bcc .4
lda #']'
@ -432,68 +440,68 @@ DLG.CTRL.Focus.TB
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny skip Ctrl Type
lda (ZPPTR1),y
clc
ldy #S.DLG.X
adc (ZPPTR1),y
pha
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny
iny
iny
pla
sec +1
adc (ZPPTR1),y
tax
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny skip Ctrl Type
iny skip X
lda (ZPPTR1),y
clc
ldy #S.DLG.Y
adc (ZPPTR1),y
tay
jmp SCRN.GotoXY
DLG.CTRL.Focus.OL
jsr SCRN.LineBufInitLBL
jsr DLG.CTRL.GotoOrg
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .1
sec
.1 lda #'('
bcc .2
lda #'['
.2 jsr SCRN.ToLineBuf
jsr DLG.CTRL.GotoEnd
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .3
sec
.3 lda #')'
bcc .4
lda #']'
@ -503,31 +511,31 @@ DLG.CTRL.Focus.OL
jsr SCRN.ToLineBuf
jsr SCRN.ToLineBuf
jmp SCRN.LineBufOut
DLG.CTRL.Focus.BUT
jsr SCRN.LineBufInitBut
jsr DLG.CTRL.GotoOrg
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .1
sec
.1 lda #C.SPACE
bcc .2
lda #'['
.2 jsr SCRN.ToLineBuf
jsr DLG.CTRL.GotoEnd
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .3
sec
.3 lda #C.SPACE
bcc .4
lda #']'
@ -538,45 +546,45 @@ DLG.CTRL.Focus.BUT
DLG.CTRL.GotoOrg
clc
.HS B0 BCS
DLG.CTRL.GotoEnd
DLG.CTRL.GotoEnd
sec
php
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny skip Ctrl Type
lda (ZPPTR1),y
clc
ldy #S.DLG.X
adc (ZPPTR1),y
plp
bcc .1
>PUSHA
jsr DLG.CTRL.GetWitdh
clc
adc (pStack)
inc pStack
.1 tax
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny skip Ctrl Type
iny skip X
lda (ZPPTR1),y
clc
ldy #S.DLG.Y
adc (ZPPTR1),y
tay
DLG.CTRL.GotoXY >PUSHW LineBufPtr
>PUSHW L.MSG.GOTOXY
tya
@ -588,41 +596,41 @@ DLG.CTRL.GotoXY >PUSHW LineBufPtr
>PUSHA
>PUSHBI 2
>SYSCALL SPrintF
.2 lda (LineBufPtr)
beq .8
inc LineBufPtr
bne .2
inc LineBufPtr+1
bra .2
.8 rts
.8 rts
*--------------------------------------
DLG.SetOrigin ldy #S.DLG.X
lda (ZPPTR1),y
bne .1
>LDA.G ScreenW
ldy #S.DLG.W
sec
sbc (ZPPTR1),y
lsr
ldy #S.DLG.X
sta (ZPPTR1),y
.1 tax
ldy #S.DLG.Y
lda (ZPPTR1),y
bne .2
>LDA.G ViewPortHm1
ldy #S.DLG.H
sec
sbc (ZPPTR1),y
lsr
ldy #S.DLG.Y
sta (ZPPTR1),y
@ -635,12 +643,12 @@ DLG.CTRL.GetWitdh
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
lda (ZPPTR1),y
tax
jmp (J.DLG.CTRL.GetWitdh,x)
*--------------------------------------
*--------------------------------------
DLG.CTRL.GetWitdh.LBL
clc
rts
@ -661,35 +669,35 @@ DLG.CTRL.GetWitdh.OL
iny
iny
iny
ldx #0
.1 inx
iny
lda (ZPPTR1),y
bne .1
txa
rts
DLG.CTRL.GetWitdh.BUT
iny
iny
iny
ldx #0
.1 inx
iny
lda (ZPPTR1),y
bne .1
txa
rts
*--------------------------------------
DLG.CTRL.CharIn sty TmpByte A=CtrlID
pha
lda (ZPPTR1),y Ctrl Definition
tay
lda (ZPPTR1),y Ctrl Type
@ -704,10 +712,10 @@ DLG.CTRL.CharIn.LBL
DLG.CTRL.CharIn.TB
cmp #C.DEL
beq .5
cmp #C.SPACE
bcc .9
pha
iny
@ -717,13 +725,13 @@ DLG.CTRL.CharIn.TB
iny
cmp (ZPPTR1),y MAXCHAR
beq .7
pha
inc
dey
sta (ZPPTR1),y CURPOS
iny
iny
@ -747,7 +755,7 @@ DLG.CTRL.CharIn.TB
>SYSCALL PutChar
clc
rts
.5 iny
iny
iny
@ -775,12 +783,12 @@ DLG.CTRL.CharIn.TB
>SYSCALL PutChar
clc
rts
.7 pla
.8 clc
rts
.9 sec
rts
*--------------------------------------
@ -802,9 +810,9 @@ DLG.CTRL.CharIn.OL
ply
sta (pData),y
jmp DLG.CTRL.DrawAll
.8 clc
rts
*--------------------------------------
@ -812,40 +820,72 @@ DLG.CTRL.CharIn.BUT
clc
rts
*--------------------------------------
DLG.DrawBar phy
jsr SCRN.LineBufInitDLGBar
DLG.DrawTBar ldx #SEQ.DLG.TBAR-SEQS
jsr SCRN.LineBufInit
ldy #S.DLG.W
lda (ZPPTR1),y
dec
dec
tax
ply
ldy #S.DLG.Title
lda (ZPPTR1),y
tay
.1 lda (ZPPTR1),y
beq .11
jsr SCRN.ToLineBuf
dex
beq .3
iny
bra .1
.11 lda #C.SPACE
.2 jsr SCRN.ToLineBuf
dex
bne .2
ldy #0
.3 lda SEQ.NORM,y
beq .4
.3 ldx #SEQ.DLG.TBAR.E-SEQS
jsr SCRN.SEQS.ToLineBuf
.4 jmp SCRN.LineBufOut
*--------------------------------------
DLG.DrawSBar ldx #SEQ.DLG.SBAR-SEQS
jsr SCRN.LineBufInit
ldy #S.DLG.W
lda (ZPPTR1),y
dec
dec
tax
ldy #S.DLG.Status
lda (ZPPTR1),y
tay
.1 lda (ZPPTR1),y
beq .11
jsr SCRN.ToLineBuf
iny
bra .3
dex
beq .3
iny
bra .1
.11 lda #C.SPACE
.2 jsr SCRN.ToLineBuf
dex
bne .2
.3 ldx #SEQ.DLG.SBAR.E-SEQS
jsr SCRN.SEQS.ToLineBuf
.4 jmp SCRN.LineBufOut
*--------------------------------------
DLG.VBarToLineBuf
@ -857,7 +897,7 @@ DLG.VBarToLineBuf
jsr SCRN.ToLineBuf
iny
bra .1
.8 rts
*--------------------------------------
MAN

View File

@ -57,7 +57,7 @@ IO.GetCh.1 tax
rts
*--------------------------------------
.11 lda (pData) #EscBufferPtr
cmp #15
cmp #21
bcc .10
.19 >STZ.G bEscMode

View File

@ -9,22 +9,8 @@ SCRN.Init >PUSHW L.SEQ.INIT
>PUSHBI 1
>SYSCALL PrintF
bcs SCRN.Init.9
jmp SCRN.Home
*--------------------------------------
SCRN.Repaint lda #$ff
>STA.G bUpdateTop
>STA.G bUpdateStatus
jsr SCRN.UpdateTopBar
bcs SCRN.Init.9
jsr SCRN.GotoCurXCurY
bcs SCRN.Init.9
jmp SCRN.UpdateMainAndStatus
SCRN.Init.9 rts
jsr SCRN.ResetScrollRgn
*--------------------------------------
SCRN.Home lda #0
@ -35,6 +21,53 @@ SCRN.Home lda #0
cpy #CurY+1
bne .1
rts
*--------------------------------------
SCRN.Repaint jsr SCRN.GotoCurXCurY
bcs SCRN.Init.9
lda #$ff
>STA.G bUpdateStatus
jsr SCRN.UpdateTopBar
bcs SCRN.Init.9
jmp SCRN.UpdateMainAndStatus
SCRN.Init.8 clc
SCRN.Init.9 rts
*--------------------------------------
SCRN.InsLineAtCurY
>LDA.G CurY
>CMP.G ViewPortHm1
beq .8
jsr SCRN.GotoCurXCurY
bcs .9
>PUSHW L.SEQ.SCROLLCURDN
>LDA.G CurY
inc
inc
>PUSHA
>LDA.G ScreenH
dec
>PUSHA
>PUSHBI 2
>SYSCALL PrintF
bcs .9
jsr SCRN.ResetScrollRgn
.8 clc
.9 rts
*--------------------------------------
SCRN.DelLineAtCurY
clc
rts
*--------------------------------------
SCRN.ResetScrollRgn
@ -47,42 +80,18 @@ SCRN.ResetScrollRgn
rts
*--------------------------------------
SCRN.UnSaved >LDA.G bUnSaved
bne SCRN.UpdateTopBar.8
bne SCRN.Init.8
dec
sta (pData),y
sta (pData),y bUnSaved
*--------------------------------------
SCRN.UpdateTopBar
>LDA.G bUpdateTop
bmi SCRN.UpdateTopBar.1
SCRN.UpdateTopBar.8
clc
rts
SCRN.UpdateTopBar.1
lda #0
sta (pData),y
jsr SCRN.LineBufInitBar
ldx #SEQ.CURSAVE-SEQS
jsr SCRN.SEQS.ToLineBuf
jsr SCRN.LineBufInit
ldy #1
jsr SCRN.LineBufGotoLineY
bcs .9
>LDA.G ScreenW
tax
lda #C.SPACE
.1 jsr SCRN.ToLineBuf
dex
bne .1
lda #C.CR
jsr SCRN.ToLineBuf
jsr SCRN.ResetBar
>PUSHW LineBufPtr
>PUSHW L.MSG.TOPBAR
@ -111,7 +120,6 @@ SCRN.UpdateTopBar.1
jmp SCRN.LineBufOut
.8 clc
.9 rts
*--------------------------------------
SCRN.UpdateViewPort
@ -189,6 +197,7 @@ SCRN.UpdateViewPort
jsr SCRN.scrollUp ...and move content one line up
bcc .41
.9 rts
.6 >LDA.G FileX
@ -251,6 +260,7 @@ SCRN.UpdateMain.1
bne .4
inc TmpIndex+1
.4 dec TmpCount
bne .1
@ -261,7 +271,7 @@ SCRN.UpdateMain.1
jsr SCRN.GotoXY
bcs SCRN.UpdateMain.9
>PUSHW L.SEQ.CEOL
>PUSHW L.SEQ.EDIT
>PUSHBI 0
>SYSCALL PrintF
bcs SCRN.UpdateMain.9
@ -356,6 +366,7 @@ SCRN.UpdateLineAtBufPtr
.5 lda (BufPtr)
cmp #'\'
beq .50
cmp #'%'
bne .51
@ -413,7 +424,7 @@ SCRN.UpdateStatusBar
sta (pData),y
jsr SCRN.ResetStatusBar
>PUSHW LineBufPtr
>PUSHW L.MSG.STATUSBAR
@ -451,15 +462,16 @@ SCRN.UpdateStatusBar
.9 rts
*--------------------------------------
SCRN.ResetStatusBar
jsr SCRN.LineBufInitBar
ldx #SEQ.CURSAVE-SEQS
jsr SCRN.SEQS.ToLineBuf
jsr SCRN.LineBufInit
>LDA.G ScreenH
tay
jsr SCRN.LineBufGotoLineY
SCRN.ResetBar ldx #SEQ.BAR-SEQS
jsr SCRN.SEQS.ToLineBuf
>LDA.G ScreenW
tax
@ -483,9 +495,9 @@ SCRN.CursorAdjust
.2 tya
>CMP.G FileX
bcs .8
>STA.G FileX
.8 clc
rts
*--------------------------------------
@ -555,40 +567,26 @@ SCRN.scrollDn >PUSHW L.SEQ.SCROLLDN
.9 rts
*--------------------------------------
SCRN.LineBufInitBar
phx
ldx #SEQ.BAR-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitDLGBar
phx
ldx #SEQ.DLG.BAR-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitDLG
phx
ldx #SEQ.DLG-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitLBL
phx
ldx #SEQ.DLG.LBL-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitTB
phx
ldx #SEQ.DLG.TB-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitBut
phx
ldx #SEQ.DLG.BUT-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitEdit
phx
ldx #SEQ.EDIT-SEQS
SCRN.LineBufInit
>LDYA.G LineBufBase
>STYA LineBufPtr
jsr SCRN.SEQS.ToLineBuf
plx
rts
*--------------------------------------
SCRN.SEQS.ToLineBuf
lda SEQS,x
@ -597,6 +595,7 @@ SCRN.SEQS.ToLineBuf
inx
lda SEQS,x
bne .1
rts
*--------------------------------------
SCRN.LineBufGotoLineY
@ -625,6 +624,7 @@ SCRN.LineBufSprintf
SCRN.ToLineBuf sta (LineBufPtr)
inc LineBufPtr
bne .8
inc LineBufPtr+1
.8 rts
*--------------------------------------

View File

@ -69,7 +69,7 @@ L.SEQ.SCROLLUP .DA SEQ.SCROLLUP
L.SEQ.SCROLLDN .DA SEQ.SCROLLDN
L.SEQ.SCROLLCURUP .DA SEQ.SCROLLCURUP
L.SEQ.SCROLLCURDN .DA SEQ.SCROLLCURDN
L.SEQ.CEOL .DA SEQ.CEOL
L.SEQ.EDIT .DA SEQ.EDIT
L.MSG.TERMCAP .DA MSG.TERMCAP
L.MSG.TOPBAR .DA MSG.TOPBAR
L.MSG.FILETYPES .DA MSG.TXTCR
@ -147,18 +147,13 @@ CS.INIT.RTS rts
*--------------------------------------
CS.RUN >PUSHW L.MSG.TERMCAP
>PUSHBI 0
>SYSCALL PrintF Send Query for term W & H
>SYSCALL PrintF Send Query for term W & H
bcs CS.INIT.RTS
.1 jsr IO.GetCh
bcs CS.INIT.RTS
* beq .11
* >SYSCALL PutChar
* bcs CS.INIT.RTS
.11 >LDA.G ScreenW Wait for Response from terminal for W & H
>LDA.G ScreenW Wait for Response from terminal for W & H
beq .1
jsr SCRN.Init
@ -260,7 +255,6 @@ CS.DOEVENT lda (pEvent)
asl
bpl .9
>STA.G bUpdateTop
>STA.G bUpdateStatus
.9 sec
@ -304,16 +298,25 @@ CS.QUIT ldy #hLineBuf
CS.END
SEQS .EQ *
SEQ.BAR .CZ "\e[7m\e[37;40m"
SEQ.DLG.BAR .CS "\e[0m\e[37;40m"
.DA #C.SO,#'x',#C.SI
SEQ.DLG.TBAR .CS "\e[0m\e[93;104m"
.DA #C.SO,#'l',#C.SI
.CZ "\e[7m\e[37;40m"
SEQ.DLG .CS "\e[30;46m"
SEQ.DLG.TBAR.E .CS "\e[0m\e[93;104m"
.DA #C.SO,#'k',#C.SI
.DA #0
SEQ.DLG .CS "\e[93;104m"
.DA #C.SO,#'x',#C.SI
.DA #0
SEQ.DLG.VBAR .CS "\e[37;40m"
SEQ.DLG.VBAR .CS "\e[93;104m"
.DA #C.SO,#'x',#C.SI
.DA #0
SEQ.DLG.LBL .CZ "\e[0m\e[30;46m"
SEQ.DLG.SBAR .CS "\e[0m\e[93;104m"
.DA #C.SO,#'m',#C.SI
.CZ "\e[7m\e[37;40m"
SEQ.DLG.SBAR.E .CS "\e[0m\e[93;104m"
.DA #C.SO,#'j',#C.SI
.DA #0
SEQ.DLG.LBL .CZ "\e[0m\e[30;104m"
SEQ.DLG.TB .CZ "\e[0m\e[93;44m"
SEQ.DLG.BUT .CZ "\e[7m\e[93;44m"
SEQ.EDIT .CS "\e[0m\e[93;44m" +CEOL
@ -323,12 +326,16 @@ SEQ.INV .CZ "\e[7m"
SEQ.CURSAVE .CZ "\e7"
SEQ.CURRESTORE .CZ "\e8"
*--------------------------------------
SEQ.RESET .CZ "\ec"
SEQ.INIT .CS "\ec\e(B\e)0"
SEQ.SCROLLRGN .CZ "\e[?7l\e[2;%dr"
SEQ.SCROLLCURUP .CS "\e[?7l\e[%d;%dr"
SEQ.INIT .CS "\ec"
.CS "\e(B" font select
.CS "\e)0" font select
.CZ "\e[?7l" Disable Line Wrap
SEQ.RESET .CZ "\ec\e[?7h" Enable Line Wrap
*--------------------------------------
SEQ.SCROLLRGN .CZ "\e[2;%dr"
SEQ.SCROLLCURUP .CS "\e[%d;%dr"
SEQ.SCROLLUP .CZ "\eD"
SEQ.SCROLLCURDN .CS "\e[?7l\e[%d;%dr"
SEQ.SCROLLCURDN .CS "\e[%d;%dr"
SEQ.SCROLLDN .CZ "\eM"
*--------------------------------------
MSG.TERMCAP .CZ "\r\n\e[999;999H\e[6n"
@ -371,7 +378,7 @@ MSG.HELP .PS "All commands:"
MSG.NEWFILE .AZ "newfile"
EscChars .AS "DABC"
EscChars.Cnt .EQ *-EscChars
EscAscii .DA #C.BS,#C.VT,#C.LF,#C.FS
EscAscii .DA #C.BS,#C.VT,#C.LF,#21
*--------------------------------------
S.DLG.Size .EQ 0
S.DLG.X .EQ 1
@ -495,7 +502,7 @@ bEscMode .BS 1
bCSIMode .BS 1
bExit .BS 1
bUnSaved .BS 1
bUpdateTop .BS 1
bUpdateStatus .BS 1
hFileName .BS 1

View File

@ -14,9 +14,8 @@ CL.READN0X >PUSHW ZPCLBuf
>PUSHBI 1
>SYSCALL SPrintF
bcs .9
lda #$ff
sta CL.bReady
dec CL.bReady
* clc
.9 rts
*--------------------------------------
@ -39,14 +38,15 @@ CL.CHARIN tax
dex
bpl .1
.8 rts invalid \e[ sequence
.8 clc
rts invalid \e[ sequence
.2 lda CL.MaxCnt
bne .3
lda EscChars.Remap,x
bra CL.READN0A
.3 txa
asl
tax
@ -63,7 +63,7 @@ CL.CHARIN tax
.5 lda CL.MaxCnt
beq CL.READN0X
cpx #C.SPACE
bcc CL.CHARIN.CTRL
@ -74,12 +74,11 @@ CL.CHARIN tax
*--------------------------------------
lda CL.Len
beq .8
lda CL.Ptr
beq .8
lda #C.BS
>SYSCALL PutChar
jsr CL.BS.OUT
dec CL.Ptr
jmp CL.DEL
@ -101,26 +100,30 @@ CL.Insert ldy CL.Len
txa
sta (ZPCLBuf),y
inc CL.Ptr
>SYSCALL PutChar
bcs .9
inc CL.Ptr
jsr CL.PrintEOL
bcs .9
lda CL.MaxCnt
dec MaxCnt = 1, don't wait for CR
bne .8
lda #$ff
sta CL.bReady
dec CL.bReady
.8 clc
rts
.9 rts
*--------------------------------------
CL.CHARIN.CTRL cpx #C.CR
beq .8
beq .70
cpx #C.EOF
beq .9
beq .71
cpx #3 Ctrl-C
beq CL.CLR
@ -134,14 +137,13 @@ CL.CHARIN.CTRL cpx #C.CR
bne .8
jmp CL.SUPPR
.8 jsr CheckLFAfterCR
.70 jsr CheckLFAfterCR
bcs .9
lda #$ff
sta CL.bReady
.71 dec CL.bReady
clc
.8 clc
.9 rts
*--------------------------------------
CL.CLR lda (ZPCLBuf)
@ -151,12 +153,12 @@ CL.CLR lda (ZPCLBuf)
cmp CL.Len
beq .2
inc
sta CL.Ptr
inc CL.Ptr
lda #C.FS
>SYSCALL PutChar
bra .1
jsr CL.FS.OUT
bcc .1
rts
.2 ldy #0
@ -170,9 +172,9 @@ CL.CLR lda (ZPCLBuf)
*--------------------------------------
CL.Reset lda #0
sta (ZPCLBuf)
CL.Reset.1 ldx #CL.Ptr
.1 stz 0,x
inx
cpx #CL.bEscMode+1
@ -181,38 +183,45 @@ CL.Reset.1 ldx #CL.Ptr
>LDYA ZPCLBuf
>STYA ZPCLBufPtr
CL.Reset.8 clc
rts
*--------------------------------------
CL.BS lda CL.Ptr
beq .9
beq CL.Reset.8
dec CL.Ptr
lda #C.BS
CL.BS.OUT lda #C.BS
>SYSCALL PutChar
.9 rts
rts
*--------------------------------------
CL.NAK lda CL.Ptr
CL.FS lda CL.Ptr
cmp CL.Len
beq .9
beq CL.Reset.8
inc
sta CL.Ptr
lda #C.FS
>SYSCALL PutChar
CL.FS.OUT lda #C.ESC
>SYSCALL PutChar
.9 rts
lda #'['
>SYSCALL PutChar
lda #'C'
>SYSCALL PutChar
rts
*--------------------------------------
* Erase char UNDER cursor
*--------------------------------------
CL.SUPPR lda CL.Len
beq CL.PrintEOL.8
beq CL.Reset.8
lda CL.Ptr
cmp CL.Len
beq CL.PrintEOL.8
beq CL.Reset.8
*--------------------------------------
CL.DEL ldy CL.Ptr
@ -226,38 +235,42 @@ CL.DEL ldy CL.Ptr
dec CL.Len
*--------------------------------------
CL.PrintEOL lda CL.Ptr
CL.PrintEOL ldy CL.Ptr
.1 cmp CL.Len
beq .2
.1 cpy CL.Len
beq .8
pha
tay
phy
lda (ZPCLBuf),y
>SYSCALL PutChar
pla
inc
ply
bcs .9
iny
bra .1
.2 lda #C.SPACE
>SYSCALL PutChar
lda CL.Ptr
bcs .9
.3 cmp CL.Len
beq .4
jsr CL.BS.OUT
bcs .9
pha
lda #C.BS
>SYSCALL PutChar
pla
inc
ldy CL.Ptr
.3 cpy CL.Len
beq .8
phy
jsr CL.BS.OUT
ply
bcs .9
iny
bra .3
.4 lda #C.BS
>SYSCALL PutChar
CL.PrintEOL.8 clc
rts
.8 clc
.9 rts
*--------------------------------------
CL.Print ldy #S.PS.hStdOut
lda (pPS),y

View File

@ -101,7 +101,7 @@ L.FMT.int32 .DA FMT.int32
J.ESC .DA CL.BS left arrow
.DA HIS.GetNext
.DA HIS.GetPrev
.DA CL.NAK right arrow
.DA CL.FS right arrow
L.KEYWORDS .DA KEYWORDS
I.KEYWORDS .DA GFX.TEXT
.DA GFX.GR
@ -411,8 +411,8 @@ CS.RUN.LOOP >SLEEP
.7 cmp #MLI.E.EOF
beq .8
cmp #3
beq .99
cmp #24 Ctrl-X
beq .8
pha
>LDA.G hFile
@ -461,10 +461,11 @@ CS.FORTH.Run jsr CL.Reset
.1 >SYSCALL GetChar
bcs .9 I/O error
.2 cmp #3 Ctrl-C
.2 cmp #24 Ctrl-X
beq .9 CS
jsr CL.CHARIN
bcs .9
bit CL.bReady Something to execute ?
bpl .1
@ -938,7 +939,7 @@ OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
*--------------------------------------
EscChars .AS 'DBAC'
EscChars.Cnt .EQ *-EscChars
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#21
*--------------------------------------
KEYWORDS .AT "TEXT"
.AT "GR"

View File

@ -165,7 +165,9 @@ CS.RUN.LOOP0 jsr CS.Scr.SetStatusConn
jsr CS.Scr.SetBuf
jsr CS.Scr.SetStatusOkErr
*--------------------------------------
CS.RUN.LOOP lda hSCR
CS.RUN.LOOP >SLEEP
lda hSCR
>LIBCALL hLIBTUI,LIBTUI.Exec
bcs CS.RUN.LOOP.9

View File

@ -980,8 +980,15 @@ CS.RUN.CHARIN.RIGHT
inc
sta TextPtr
lda #C.FS
lda #C.ESC
>SYSCALL PutChar
lda #'['
>SYSCALL PutChar
lda #'C'
>SYSCALL PutChar
.9 rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
@ -1054,7 +1061,7 @@ MSG.NULL .HS 00
*--------------------------------------
EscChars .AS 'DBAC'
EscChars.Cnt .EQ *-EscChars
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#21
*--------------------------------------
IRC.REP.NOIDENT .AZ "*** No Ident response"
IRC.REP.JOIN .AZ "JOIN"

View File

@ -113,12 +113,12 @@ DumpFD.BDEV >PUSHW L.MSG.DEV
adc /S.FD.DEV
>PUSHYA
ldy #S.FD.DEV.DRVPTR+1
ldy #S.FD.DEV.BUSPTR+1
>PUSHB (ZPFDPtr),y
dey
>PUSHB (ZPFDPtr),y
>PUSHBI 7
>PUSHBI 8
>SYSCALL PrintF
bcs .9
@ -223,6 +223,17 @@ DumpFD.PIPE >PUSHW L.MSG.PIPE
DumpFD.T ldx Index
>PUSHB hFDs,x
ldy #S.FD.DEV.BUSID
lda (ZPFDPtr),y
asl
asl
asl
asl
iny #S.FD.DEV.DEVID
ora (ZPFDPtr),y
>PUSHA
lda (ZPFDPtr) S.FD.T
tax
>PUSHW L.FD.T,x
@ -246,10 +257,10 @@ CS.QUIT clc
rts
*--------------------------------------
CS.END
MSG0 .CZ "hFD Type Name Addr Status Typ/Sub IDString Version Size (BLK)"
MSG.DEV .CZ "%3d %4s %12s %H "
MSG0 .CZ "hFD ID Type Name Addr Status TP.ST IDString Version Size (BLK)"
MSG.DEV .CZ "%3d %h %4s %12s %H "
MSG.DEV.ERR .CZ "[%h] Device Error.\r\n"
MSG.DEV.DIB .CZ "%s $%h/$%h %16S %03d.%03d "
MSG.DEV.DIB .CZ "%s %h.%h %16S %3d.%3d "
MSG.DEV.B .CZ "%10u\r\n"
MSG.DEV.C .CZ "n/a\r\n"
MSG.PIPE .CZ "%3d %5s %s\r\n"

View File

@ -54,20 +54,21 @@ CL.CHARIN tax
sta (pData),y Y=bEscMode
txa
ldx #EscChars.Cnt-1
ldx #IN.EscCharsCnt-1
.1 cmp EscChars,x
.1 cmp IN.EscChars,x
beq .2
dex
bpl .1
.8 rts invalid \e[ sequence
.8 clc
rts invalid \e[ sequence
.2 >LDA.G CL.MaxCnt
bne .3
lda EscChars.Remap,x
lda IN.EscCodes,x
bra CL.READN0A
.3 txa
@ -103,10 +104,15 @@ CL.CHARIN tax
>LDA.G CL.bSilent
bmi .6
lda #C.BS
jsr CL.BS.OUT
lda #C.SPACE
>SYSCALL PutChar
jsr CL.BS.OUT
.6 >DEC.G CL.Ptr
jmp CL.DEL
*--------------------------------------
CL.Insert >LDA.G CL.Len
@ -163,17 +169,18 @@ CL.CHARIN.CTRL cpx #C.CR
cpx #C.EOF
beq .19
cpx #3 Ctrl-C
beq CL.CLR
cpx #C.TAB
bne .1
jmp HIS.Select
.1 cpx #26 Ctrl-Z
beq CL.SUPPR
cpx #3 Ctrl-C
bne .8
jmp CL.SUPPR
jmp CL.CLR
.18 jsr CheckLFAfterCR Check for any extra LF
bcs .9
@ -184,6 +191,98 @@ CL.CHARIN.CTRL cpx #C.CR
.8 clc
.9 rts
*--------------------------------------
* Erase char UNDER cursor
*--------------------------------------
CL.SUPPR >LDA.G CL.Len
beq CL.PrintEOL.8
>LDA.G CL.Ptr
>CMP.G CL.Len
beq CL.PrintEOL.8
*--------------------------------------
CL.DEL pha CL.Ptr
.1 ply
iny
lda (ZPCLBuf),y
dey
sta (ZPCLBuf),y
iny
phy
tya
>CMP.G CL.Len
bne .1
pla
>DEC.G CL.Len
>LDA.G CL.bSilent
bmi CL.PrintEOL.8
*--------------------------------------
CL.PrintEOL >LDA.G CL.Ptr
>CMP.G CL.Len
beq CL.PrintEOL.8
.1 pha
tay
lda (ZPCLBuf),y
>SYSCALL PutChar
pla
inc
>CMP.G CL.Len
bne .1
lda #C.SPACE
>SYSCALL PutChar
>LDA.G CL.Ptr
.3 >CMP.G CL.Len
beq .4
pha
jsr CL.BS.OUT
pla
inc
bra .3
.4 jmp CL.BS.OUT
CL.PrintEOL.8 clc
rts
*--------------------------------------
CL.BS >LDA.G CL.Ptr
beq CL.BS.8
dec
sta (pData),y
>LDA.G CL.bSilent
bpl CL.BS.OUT
CL.BS.8 clc
rts
CL.BS.OUT lda #C.BS
>SYSCALL PutChar
rts
*--------------------------------------
CL.FS >LDA.G CL.Ptr
>CMP.G CL.Len
beq CL.BS.8
inc
>STA.G CL.Ptr
>LDA.G CL.bSilent
bmi CL.BS.8
CL.FS.OUT >LDYA L.MSG.FS
jmp PrintYANoCR
*--------------------------------------
CL.CLR >STZ.G HIS.Ptr
CL.CLR.1 lda (ZPCLBuf)
@ -198,8 +297,8 @@ CL.CLR.1 lda (ZPCLBuf)
inc
>STA.G CL.Ptr
lda #C.FS
>SYSCALL PutChar
jsr CL.FS.OUT
bra .1
.2 ldy #0
@ -239,95 +338,6 @@ CL.ReadReset lda #$ff
sta (pData),y
rts
*--------------------------------------
CL.BS >LDA.G CL.Ptr
beq .9
dec
sta (pData),y
>LDA.G CL.bSilent
bmi .9
lda #C.BS
>SYSCALL PutChar
.9 rts
*--------------------------------------
CL.NAK >LDA.G CL.Ptr
>CMP.G CL.Len
beq .9
inc
>STA.G CL.Ptr
>LDA.G CL.bSilent
bmi .9
lda #C.FS
>SYSCALL PutChar
.9 rts
*--------------------------------------
* Erase char UNDER cursor
*--------------------------------------
CL.SUPPR >LDA.G CL.Len
beq CL.PrintEOL.8
>LDA.G CL.Ptr
>CMP.G CL.Len
beq CL.PrintEOL.8
*--------------------------------------
CL.DEL pha
.1 ply
iny
lda (ZPCLBuf),y
dey
sta (ZPCLBuf),y
iny
phy
tya
>CMP.G CL.Len
bne .1
pla
>DEC.G CL.Len
>LDA.G CL.bSilent
bmi CL.PrintEOL.8
*--------------------------------------
CL.PrintEOL >LDA.G CL.Ptr
.1 >CMP.G CL.Len
beq .2
pha
tay
lda (ZPCLBuf),y
>SYSCALL PutChar
pla
inc
bra .1
.2 lda #C.SPACE
>SYSCALL PutChar
>LDA.G CL.Ptr
.3 >CMP.G CL.Len
beq .4
pha
lda #C.BS
>SYSCALL PutChar
pla
inc
bra .3
.4 lda #C.BS
>SYSCALL PutChar
CL.PrintEOL.8 clc
rts
*--------------------------------------
MAN
SAVE usr/src/bin/sh.s.cl
LOAD usr/src/bin/sh.s

View File

@ -171,6 +171,7 @@ CMD.CD.YA >PUSHYA
>PUSHWZ Allocate
>SYSCALL RealPath
bcs CMD.POPD.RTS
>STYA ZPPtr1
stx ZPTmpW Save hMem
@ -563,6 +564,7 @@ CMD.REN lda (ZPArgVBufPtr)
>SYSCALL GetMem
bcs .90
>STYA ZPPtr2
stx ZPTmpW+1
@ -630,6 +632,7 @@ CMD.FUNCTION lda (ZPArgVBufPtr)
jsr CORE.ArgV.Next nothing after function name
beq .10
cmp #'{'
bne .9
@ -1109,6 +1112,7 @@ CMD.NEXT.LIST.TOKEN
lda (pData),y
sta ZPPtr1+1
ldy #0
.10 jsr GetPtr1NextChar
beq .3
@ -1117,11 +1121,13 @@ CMD.NEXT.LIST.TOKEN
sta (ZPCLBuf),y
iny
.1 jsr GetPtr1NextChar
beq .3
cmp #C.SPACE
beq .3
sta (ZPCLBuf),y
iny
bra .1

View File

@ -130,13 +130,14 @@ L.MSG.BATCHERR .DA MSG.BATCHERR
L.MSG.ERROR .DA MSG.ERROR
L.MSG.PID .DA MSG.PID
L.MSG.ALIAS .DA MSG.ALIAS
L.MSG.FS .DA MSG.FS
L.FMT.DATE .DA FMT.DATE
L.FMT.Long .DA FMT.Long
L.FMT.Byte .DA FMT.Byte
J.ESC .DA CL.BS left arrow
J.ESC .DA CL.BS
.DA HIS.GetPrev up
.DA HIS.GetNext down
.DA CL.NAK right
.DA CL.FS
L.CD.. .DA CD..
L.IN .DA IN
L.CMD .DA CMD
@ -623,6 +624,7 @@ MSG.ERROR .CS "[$%h]:%s."
MSG.ECHOCRLF .CZ "\r\n"
MSG.PID .CZ "PID=%d\r\n"
MSG.ALIAS .CZ '%s = "%s"\r\n'
MSG.FS .CZ "\e[C"
*--------------------------------------
FMT.DATE .AZ "%A, %B %d %Y %H:%M:%S"
FMT.Long .AZ "%L"
@ -634,9 +636,22 @@ PS1 .AZ "${PS1}"
HOME .AZ "${HOME}"
EXECC .AZ "%s -C %s"
*--------------------------------------
EscChars .AS "DABC"
EscChars.Cnt .EQ *-EscChars
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
IN.EscChars .AS "DABC"
IN.EscCharsCnt .EQ *-EscChars
IN.EscCodes .DA #C.BS,#C.VT,#C.LF,#21
*--------------------------------------
* \e[1~ - Home
* \e[2~ - Insert
* \e[3~ - Delete
* \e[4~ - End
* \e[5~ - PgUp
* \e[6~ - PgDn
*--------------------------------------
OUT.EscChars .AS "abefnrtv"
.HS 5C27223F \'"?
OUT.EscCharsCnt .EQ *-OUT.EscChars
OUT.EscCodes .HS 07081B0C0A0D090B
.HS 5C27223F
*--------------------------------------
CD.. .AZ ".."
*--------------------------------------

View File

@ -147,7 +147,6 @@ C.SO .EQ 14
C.SI .EQ 15
C.XON .EQ 17
C.XOFF .EQ 19
C.FS .EQ 21
C.ESC .EQ 27
C.SPACE .EQ 32
C.DEL .EQ 127

View File

@ -180,22 +180,23 @@ S.SOCKET.TCP.S.TIMEWT .EQ 11
S.SOCKET.TCP.O .EQ S.SOCKET+1
*
S.SOCKET.TCP.INSEQNUM .EQ S.SOCKET+2 Recv:Last SEQ received from remote
S.SOCKET.TCP.OUTNEXTSEQ .EQ S.SOCKET+6 Send:Next SEQ to send
S.SOCKET.TCP.OUTSENTSEQ .EQ S.SOCKET+10 Send:SEQ sent not yet ACKed (retransmit)
S.SOCKET.TCP.INACKNUM .EQ S.SOCKET+6
S.SOCKET.TCP.OUTNEXTSEQ .EQ S.SOCKET+10 Send:Next SEQ to send
S.SOCKET.TCP.OUTSENTSEQ .EQ S.SOCKET+14 Send:SEQ sent not yet ACKed (retransmit)
*
S.SOCKET.TCP.INTAIL .EQ S.SOCKET+14
S.SOCKET.TCP.INHEAD .EQ S.SOCKET+16
S.SOCKET.TCP.INFREE .EQ S.SOCKET+18
S.SOCKET.TCP.INUSED .EQ S.SOCKET+20
S.SOCKET.TCP.INTAIL .EQ S.SOCKET+18
S.SOCKET.TCP.INHEAD .EQ S.SOCKET+20
S.SOCKET.TCP.INFREE .EQ S.SOCKET+22
S.SOCKET.TCP.INUSED .EQ S.SOCKET+24
*
S.SOCKET.TCP.OUTTAIL .EQ S.SOCKET+22
S.SOCKET.TCP.OUTTAILSENT .EQ S.SOCKET+24
S.SOCKET.TCP.OUTHEAD .EQ S.SOCKET+26
S.SOCKET.TCP.OUTFREE .EQ S.SOCKET+28
S.SOCKET.TCP.OUTTOSEND .EQ S.SOCKET+30
S.SOCKET.TCP.OUTUSED .EQ S.SOCKET+32
S.SOCKET.TCP.OUTTAIL .EQ S.SOCKET+26
S.SOCKET.TCP.OUTTAILSENT .EQ S.SOCKET+28
S.SOCKET.TCP.OUTHEAD .EQ S.SOCKET+30
S.SOCKET.TCP.OUTFREE .EQ S.SOCKET+32
S.SOCKET.TCP.OUTTOSEND .EQ S.SOCKET+34
S.SOCKET.TCP.OUTUSED .EQ S.SOCKET+36
*
S.SOCKET.TCP .EQ S.SOCKET+34
S.SOCKET.TCP .EQ S.SOCKET+38
*--------------------------------------
MAN
SAVE inc/libtcpip.i

View File

@ -333,16 +333,16 @@ SKT.shutdown pha
ldy #S.SOCKET.TCP.S
lda (ZPPtrSKT),y
cmp #S.SOCKET.TCP.S.CLOSING
cmp #S.SOCKET.TCP.S.CLWAIT
bne .10
inc S.SOCKET.TCP.S.TIMEWT
lda #S.SOCKET.TCP.S.TIMEWT
sta (ZPPtrSKT),y
pla
clc
rts
*--------------------------------------
.10 pla
jsr SKT.GetTCB
ldy #S.SOCKET.TCP.S
@ -350,15 +350,15 @@ SKT.shutdown pha
cmp #S.SOCKET.TCP.S.ESTBLSH
bne .1
jsr SKT.SendOptFIN
jsr SKT.OUT.SendFINACK
lda #S.SOCKET.TCP.S.FINWT1
jmp SKT.StoreTCB.S
.1 cmp #S.SOCKET.TCP.S.CLWAIT
.1 cmp #S.SOCKET.TCP.S.FINWT2
bne .2
jsr SKT.SendOptFIN
jsr SKT.OUT.SendFINACK
lda #S.SOCKET.TCP.S.LASTACK
jmp SKT.StoreTCB.S
@ -390,19 +390,6 @@ SKT.shutdown.HQ jsr SKT.GetFromQueue
>SYSCALL2 freemem
* clc
rts
*--------------------------------------
SKT.SendOptFIN lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
jsr TCP.OUT.SendOptA Send FIN/ACK
ldx #3
.1 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
bne .8
dex
bpl .1
.8 rts
*/--------------------------------------
* # Read (STREAM)
* ## C
@ -419,12 +406,14 @@ SKT.SendOptFIN lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
*\--------------------------------------
SKT.Read jsr SKT.PullhFDDataInPtrLen
jsr SKT.GetTCB
ldy #S.SOCKET.TCP.INUSED
lda (ZPPtrSKT),y
tax
iny
ora (ZPPtrSKT),y
beq .7 no data, go check SKT status
beq .8 no data, go check SKT status
cpx ZPDataInLen XA = Data in pipe
lda (ZPPtrSKT),y
@ -436,13 +425,6 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
sta ZPDataInLen+1
bra SKT.GetDataFromSktIn
.7 ldy #S.SOCKET.TCP.O
lda (ZPPtrSKT),y
and #S.TCP.OPTIONS.ACK
beq .8
jmp TCP.OUT.SendOptA
.8 jsr SKT.CheckStream
bcs .99 I/O error
@ -457,7 +439,6 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
* Y,A = bytes read
*--------------------------------------
SKT.GetDataFromSktIn
jsr SKT.GetTCB
ldy #S.SOCKET.SQ.hInMem
lda (ZPPtrSKT),y
.DO AUXPIPE=1
@ -473,6 +454,7 @@ SKT.GetDataFromSktIn
jsr SKT.GetNotDataInLen
pha
.DO AUXPIPE=1
jsr SKT.SetupZPCode
.FIN
@ -525,11 +507,15 @@ SKT.GetDataFromSktIn
ldx #S.SOCKET.TCP.INUSED
jsr SKT.SubDataInLenAtSktX
jsr SKT.StoreTCB
jsr TCP.SetSocketTCPO.ACK ACK=1 -> send WSIZE
lda ZPDataInLen
ldy ZPDataInLen+1
ldx #S.SOCKET.TCP.INACKNUM
jsr TCP.AddAYToSktCacheAtX
* lda #S.TCP.OPTIONS.ACK
* jsr TCP.OUT.SendOptA
jsr SKT.StoreTCB
lda #S.TCP.OPTIONS.ACK
jsr TCP.SetSocketTCPO
>LDYA ZPDataInLen
clc
@ -576,6 +562,7 @@ SKT.AddDataToSktIn
.2 inx
bne .3
pla
inc
beq .8
@ -586,10 +573,12 @@ SKT.AddDataToSktIn
sta (ZPTmpPtr1),y
inc ZPDataInPtr
bne .4
inc ZPDataInPtr+1
.4 iny
bne .2
.DO AUXPIPE=1
sta CLRWRITEAUX
.FIN
@ -676,6 +665,7 @@ SKT.AddDataToSktOut
jsr SKT.GetNotDataInLen
pha
.1 .DO AUXPIPE=1
sta SETWRITEAUX
.FIN
@ -694,6 +684,7 @@ SKT.AddDataToSktOut
inc ZPDataInPtr
bne .4
inc ZPDataInPtr+1
.4 iny
@ -816,6 +807,7 @@ SKT.GetDataFromSktOut
.3 iny
bne .1
inc ZPTmpPtr1+1
inc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
lda SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
@ -837,7 +829,7 @@ SKT.GetDataFromSktOut
clc
rts
*/--------------------------------------
* # RecvFrom (RAW,DGRAM,SEQPKT)
* # RecvFrom (RAW,DGRAM)
* ## C
* `hMem recvfrom(hFD fd, struct sockaddr *addr);`
* ## ASM
@ -874,12 +866,36 @@ SKT.Recv clc
cmp #S.SOCKET.T.SEQPKT
bcc .10 RAW,DGRAM
bne .99 STREAM
bne .98 STREAM
jsr SKT.GetFromQueue SEQPKT
bcc .1
bcs .1
jsr SKT.CheckTCP
pha
>SYSCALL2 GetMemPtr
>STYA ZPFrameInPtr
jsr TCP.IN.SetDataInPtrAndLen
jsr SKT.GetTCB
lda ZPDataInLen
ldy ZPDataInLen+1
ldx #S.SOCKET.TCP.INACKNUM
jsr TCP.AddAYToSktCacheAtX
jsr SKT.StoreTCB
lda #S.TCP.OPTIONS.ACK
* jsr TCP.OUT.SendOptA
jsr TCP.SetSocketTCPO
pla
plp
clc
rts
.1 jsr SKT.CheckTCP
bcs .91
.90 lda #E.NODATA
@ -887,10 +903,15 @@ SKT.Recv clc
sec
rts
.98 plp
.99 lda #ERR.SKT.BAD
sec
rts
*--------------------------------------
.10 jsr SKT.GetFromQueue
bcs .90
.1 plp if CS, RecvFrom
plp if CS, RecvFrom
bcc .9 CC, Recv : Exit with CC and A=hFrame
pha
@ -937,11 +958,6 @@ SKT.Recv clc
pla
clc
.9 rts
.99 lda #ERR.SKT.BAD
plp
sec
rts
*/--------------------------------------
* # SendTo (RAW,DGRAM,SEQPKT)
* ## C
@ -976,6 +992,8 @@ SKT.Send jsr SKT.PullhFDDataInPtrLen
ldy #S.SOCKET.T
lda (ZPPtrSKT),y
cmp #S.SOCKET.T.STREAM
bcs *
tax
jmp (J.SKT.send,x)
*--------------------------------------
@ -985,12 +1003,14 @@ SKT.Send.RAW ldy #S.SOCKET.PROTO
>LDYA ZPDataInLen
jsr FRM.NewIP
bcc SKT.Send.8
rts
*--------------------------------------
SKT.Send.DGRAM ldx #S.IP.PROTOCOL.UDP
>LDYA ZPDataInLen
jsr FRM.NewIP
bcs SKT.Send.9
jsr SKT.SetFrameOutTCPUDPPorts
SKT.Send.8 jsr SKT.SetFrameOutDstIP
@ -1478,6 +1498,7 @@ SKT.CopyDataInToOut
sta (ZPDataOutPtr),y
iny
bne .1
inc ZPDataInPtr+1
inc ZPDataOutPtr+1
bne .1

View File

@ -97,7 +97,7 @@ TCP.IN.JMP.SYNSENT
.9 lda #S.TCP.OPTIONS.RST
jsr TCP.OUT.SendOptA Send RST
jmp TCP.IN.RST
*--------------------------------------
TCP.IN.JMP.SYNRCVD
@ -137,7 +137,9 @@ TCP.IN.JMP.ESTBLSH
lda (ZPFrameInPtr),y
and #S.TCP.OPTIONS.ACK Remote side ACKed data ?
beq .4
*--------------------------------------
* Ack sent data
*--------------------------------------
ldy #S.TCP.ACKNUM+3 Get new ACK number from FrameIn...
ldx #3 Substract old ACK from socket
@ -153,7 +155,7 @@ TCP.IN.JMP.ESTBLSH
dex
bpl .1
bcc .70 ACK > SENT SEQ ????
bcc .7 ACK > SENT SEQ ????
lda TmpDWord+3
ldx TmpDWord+2
@ -189,7 +191,9 @@ TCP.IN.JMP.ESTBLSH
sta SKT.Cache+S.SOCKET.TCP.OUTUSED+1
jsr SKT.StoreTCB
*--------------------------------------
* Store incoming data
*--------------------------------------
.4 jsr TCP.IN.SetDataInPtrAndLen
lda ZPDataInLen Incoming Data in this frame ?
ora ZPDataInLen+1
@ -228,9 +232,6 @@ TCP.IN.JMP.ESTBLSH
jsr TCP.AddAYToSktCacheAtX
jsr SKT.StoreTCB update socket
* bra .7
.70 jsr TCP.SetSocketTCPO.ACK ...and ack data
.7 ldy #S.TCP.OPTIONS
lda (ZPFrameInPtr),y
@ -238,8 +239,10 @@ TCP.IN.JMP.ESTBLSH
beq .8
jsr TCP.IN.ACKTheFIN
lda #S.SOCKET.TCP.S.CLWAIT
jsr SKT.OUT.SendFINACK
lda #S.SOCKET.TCP.S.LASTACK
jmp SKT.StoreTCB.S
.8 ldy #S.SOCKET.TCP.O
@ -267,16 +270,14 @@ TCP.IN.JMP.LASTACK
ldy #S.TCP.OPTIONS only accept ACK packet
lda (ZPFrameInPtr),y
bit #S.TCP.OPTIONS.ACK
beq .8
beq TCP.IN.JMP.CLWAIT
jsr SKT.GetTCB
* jsr TCP.OUT.SendACK
ldy #S.SOCKET.TCP.S
lda #S.SOCKET.TCP.S.TIMEWT
sta (ZPPtrSKT),y
.8 clc
rts
lda #S.SOCKET.TCP.S.CLWAIT
jmp SKT.StoreTCB.S
*--------------------------------------
TCP.IN.JMP.FINWT1
ldy #S.TCP.OPTIONS FIN sent, accept ACK or FIN/ACK packet
@ -323,6 +324,7 @@ TCP.IN.ACKTheSYN
.3 lda (ZPFrameInPtr),y Set OUTACK=SEQ+1 for new socket...
adc #0
sta SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
sta SKT.Cache+S.SOCKET.TCP.INACKNUM,x
dey
dex
bpl .3
@ -332,24 +334,13 @@ TCP.IN.ACKTheSYN
TCP.IN.ACKTheFIN
ldx #3
.1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
.1 inc SKT.Cache+S.SOCKET.TCP.INACKNUM,x
bne .2
dex
bpl .1
.2 rts
* ldx #3
*.3 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
* bne .4
* dex
* bpl .3
*.4 rts
*--------------------------------------
TCP.IN.SetDataInPtrAndLen
ldy #S.IP.TOTAL.LENGTH+1
@ -421,16 +412,24 @@ TCP.SENDCLOSE ldx #0
beq .4
cmp #S.SOCKET.TCP.S.ESTBLSH
bne .2
bne .3
cpx #S.SOCKET.T.SEQPKT
beq .8
beq .2
jsr SKT.GetTCB
jsr TCP.OUT
bra .8
.2 ldy #S.SOCKET.TCP.O
lda (ZPPtrSKT),y
and #S.TCP.OPTIONS.ACK
beq .8
jsr SKT.GetTCB
jsr TCP.OUT.SendOpt
bra .8
.2 cmp #S.SOCKET.TCP.S.OPENED
.3 cmp #S.SOCKET.TCP.S.OPENED
bne .8
jsr SKT.GetTCB
@ -484,17 +483,20 @@ TCP.SENDCLOSE.PIPE
.FIN
.8 rts
*--------------------------------------
TCP.OUT lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
TCP.OUT jsr SKT.GetTCB
lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
ldy SKT.Cache+S.SOCKET.TCP.OUTTOSEND
bne .1
tax
bne .1
* Y,A=0 : no data to send
ldy #S.SOCKET.TCP.O
lda (ZPPtrSKT),y
bne TCP.OUT.SendOptA a least an option...
bne TCP.OUT.SendOpt a least an option...
clc No data, no flag....exit
.9 rts
@ -529,12 +531,27 @@ TCP.OUT.SEQSEND ldy #S.TCP.WINDOW
jmp SKT.StoreTCB exits with CC
*--------------------------------------
SKT.OUT.SendFINACK
lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
jsr TCP.OUT.SendOptA Send FIN/ACK
bcs .9
ldx #3
.1 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
bne .9
dex
bpl .1
.9 rts
*--------------------------------------
TCP.OUT.SendACK lda #S.TCP.OPTIONS.ACK
TCP.OUT.SendOptA
jsr TCP.SetSocketTCPO
>LDYAI 0
TCP.OUT.SendOpt >LDYAI 0
jsr TCP.NewFrame
bcs TCP.OUT.Send.RTS
@ -552,15 +569,22 @@ TCP.OUT.SendOptA
ldy #S.SOCKET.TCP.O
lda (ZPPtrSKT),y
TCP.OUT.Send ldy #S.TCP.OPTIONS
sec DONT Queue if fail
.HS 90 BCC
TCP.OUT.Send clc Queue if fail
php
ldy #S.TCP.OPTIONS
sta (ZPFrameOutPtr),y
bit #S.TCP.OPTIONS.ACK
beq .2
* bit #S.TCP.OPTIONS.ACK
* beq .2
ldx #3
ldy #S.TCP.ACKNUM+3
.1 lda SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
.1 lda SKT.Cache+S.SOCKET.TCP.INACKNUM,x
sta (ZPFrameOutPtr),y
dey
dex
@ -575,11 +599,11 @@ TCP.OUT.Send ldy #S.TCP.OPTIONS
dex
bpl .3
clc
* sec DONT Queue if fail
plp Get back Queue status
jsr FRM.SendIP
bcs TCP.OUT.Send.RTS
ldy #S.SOCKET.TCP.O
lda #0
sta (ZPPtrSKT),y
@ -588,8 +612,6 @@ TCP.OUT.Send ldy #S.TCP.OPTIONS
TCP.OUT.Send.RTS
rts
*--------------------------------------
TCP.SetSocketTCPO.ACK
lda #S.TCP.OPTIONS.ACK
TCP.SetSocketTCPO
ldy #S.SOCKET.TCP.O
ora (ZPPtrSKT),y

View File

@ -34,9 +34,7 @@ CTX.Init >LDYA L.SEQ.INIT
jsr IO.GetC.Reset
.1 >SLEEP
jsr IO.GetC
.1 jsr IO.GetC
bcs .98
.2 ldy #S.CTX.W
@ -50,7 +48,6 @@ CTX.Init >LDYA L.SEQ.INIT
bne .1
lda #80
ldy #S.CTX.W
sta (ZPCtxPtr),y

View File

@ -2,26 +2,7 @@ NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
IO.GetC ldx ZPCtxPtr
phx
ldx ZPCtxPtr+1
phx
ldx ZPObjPtr
phx
ldx ZPObjPtr+1
phx
jsr IO.GetChar
plx
stx ZPObjPtr+1
plx
stx ZPObjPtr
plx
stx ZPCtxPtr+1
plx
stx ZPCtxPtr
IO.GetC jsr IO.GetChar
bcs .9
tax
@ -241,7 +222,16 @@ IO.GetC.ToBuf ldy #S.CTX.InBufPtr
.9 rts
*--------------------------------------
IO.GetChar >SYSCALL GetChar
IO.GetChar ldx ZPCtxPtr
phx
ldx ZPCtxPtr+1
phx
ldx ZPObjPtr
phx
ldx ZPObjPtr+1
phx
>SYSCALL GetChar
bcs .9
cmp #C.CR
@ -261,7 +251,16 @@ IO.GetChar >SYSCALL GetChar
.8 lda #C.CR
.9 rts
.9 plx
stx ZPObjPtr+1
plx
stx ZPObjPtr
plx
stx ZPCtxPtr+1
plx
stx ZPCtxPtr
rts
*--------------------------------------
IO.fputs ldx ZPCtxPtr
phx

View File

@ -185,9 +185,7 @@ OBJ.Exec >PUSHA hOBJ
jsr LIB.GetCTX
.1 >SLEEP
jsr IO.GetC
.1 jsr IO.GetC
bcs .9
cmp #EV.RESIZE
@ -764,7 +762,7 @@ OBJ.CurUpdPos ldy #S.OBJ.F
OBJ.CurOn ldy #S.OBJ.F
lda (ZPObjPtr),y
and #S.OBJ.F.bEdit
* beq .8
beq .8
ldy #S.OBJ.S
lda (ZPObjPtr),y S.OBJ.S.bActive
@ -805,7 +803,7 @@ OBJ.CurOn ldy #S.OBJ.F
OBJ.CurOff ldy #S.OBJ.F
lda (ZPObjPtr),y
and #S.OBJ.F.bEdit
* beq .8
beq .8
ldy #S.OBJ.S
lda (ZPObjPtr),y S.OBJ.S.bActive

View File

@ -54,7 +54,7 @@ TLINE.Run ldy #S.OBJ.S
cmp #C.BS
beq TLINE.RUN.BS
cmp #C.FS
cmp #21 Forward Space
beq TLINE.RUN.FS
.9 lda #0

View File

@ -266,7 +266,7 @@ LIB.Destroy ldx ZPObjPtr
jsr OBJ.Destroy
pla
>SYSCALL FreeMem
>SYSCALL2 FreeMem
ply
.2 iny
@ -280,7 +280,7 @@ LIB.Destroy ldx ZPObjPtr
.3 jsr .7
pla
>SYSCALL FreeMem
>SYSCALL2 FreeMem
plx
stx ZPObjPtr+1
@ -336,7 +336,7 @@ hLineBuf .BS 1
LineBuf .BS 2
*--------------------------------------
ESC.In .AS "DABC"
ESC.Out .DA #C.BS,#C.VT,#C.LF,#C.FS
ESC.Out .DA #C.BS,#C.VT,#C.LF,#21
*--------------------------------------
FMT.ESCCSI.R .AZ "%d;%d"
*--------------------------------------

View File

@ -673,7 +673,7 @@ LDR.BlkDevScan bit RROMBNK2 write protect lc ram.
stz LDR.SlotDevType-1,x
jsr LDR.CheckDiskID
bcs .8 if no ProDOS device in this slot.
bcs .4 if no ProDOS device in this slot.
ldy #$ff
lda (idxl),y check last byte of $Cn rom (y = $ff)
@ -686,35 +686,31 @@ LDR.BlkDevScan bit RROMBNK2 write protect lc ram.
sta LDR.driveradr+1
sec 2 devices
jsr LDR.AddBlkDevs
bra .7
bra .4
.2 cmp #$FF if = $FF then 13 sector disk II.
beq .8 ignore if 13 sector boot ROM
beq .4 ignore if 13 sector boot ROM
ldy #$07 check for a smartport device.
lda (idxl),y
bne .3 no smartport
jsr LDR.AddSPDevs
bra .7
bra .4
.3 ldy #$FE BLK device...
lda (idxl),y get attributes.
and #$03 verify it provides read and status calls.
cmp #$03
bne .7 assume it's an off-brand disk
bne .4 assume it's an off-brand disk
lda (idxl),y get back ID byte
lsr
lsr
lsr
lsr
sta devid ->DEV LIST NIBBLE
jsr LDR.SetDevID
and #$3 Device count minus 1
inc
ldx LDR.SlotIdx
sta LDR.SlotDevCnt-1,x
dec LDR.SlotDevType-1,x set as BlockDeb
tax
iny $CnFF
@ -726,13 +722,10 @@ LDR.BlkDevScan bit RROMBNK2 write protect lc ram.
cpx #2 CS if 2 devs or more
jsr LDR.AddBlkDevs install 1 or 2 devices from this slot.
.7
.8 dec idxl+1 next lower slot.
.4 dec idxl+1 next lower slot.
dec LDR.SlotIdx have all slots been checked ?
bne .1
*--------------------------------------
LDR.AddExtraDevs
* stz idxl
lda #$C7
sta idxl+1
@ -740,7 +733,7 @@ LDR.AddExtraDevs
lda #7
sta LDR.SlotIdx
.1 ldx LDR.SlotIdx
.5 ldx LDR.SlotIdx
lda LDR.SlotDevType-1,x
beq .8
@ -748,11 +741,17 @@ LDR.AddExtraDevs
cmp #3
bcc .8
jsr LDR.AddExtraSPDevs
bit LDR.SlotDevType-1,x
bpl .6 type = smartport
jsr LDR.AddExtraBLKDevs
bra .8
.6 jsr LDR.AddExtraSPDevs
.8 dec idxl+1
dec LDR.SlotIdx
bne .1
bne .5
LDR.AddExtraDevs.RTS
rts
@ -797,8 +796,9 @@ LDR.AddSPDevs jsr LDR.SetDevID setup the devid byte from attributes
jsr LDR.SPStatusCall status of Cocoon : A = device = 2 for SCSI
.2 lda #0 set unit# = 0
jsr LDR.SPStatusCall
lda #0 set unit# = 0
.2 jsr LDR.SPStatusCall
lda LDR.SPStatusBuf Device count
beq LDR.AddExtraDevs.RTS no devices, so done.
@ -856,19 +856,84 @@ LDR.AddBlkDevs php how many drives (carry).
lda LDR.driveradr get high address of device driver.
sta DEVPTRS,y device driver table 1.
bcc .2 branch if single drive.
sta DEVPTRS+16,y device driver table 2.
.2 lda LDR.driveradr+1
sta DEVPTRS+1,y
bcc .3
sta DEVPTRS+17,y
.3
LDR.AddBlkDevs.RTS
rts
*--------------------------------------
LDR.AddExtraBLKDevs
dec
dec
sta LDR.DevCnt
jsr LDR.SetDevID set up device attributes
jsr LDR.FindFreeDevPtr
bcs .9
.1 cpy #$10
bcc .2 must be Drive 1
.10 jsr LDR.FindFreeDevPtrNext
bcc .1
rts
.2 lda LDR.DevCnt
dec
beq .4 only one to add
tya
ora #$10
tay
lda DEVPTRS,y device driver table 1
cmp #nodevice
bne .10
lda DEVPTRS+1,y
cmp /nodevice
bne .10 Drive 1 & 2 free
jsr LDR.AddY2DEVLST Y = index in DEVPTRS
jsr .8
tya
and #$F
tay
.4 jsr LDR.AddY2DEVLST Y = index in DEVPTRS
.8 phy
ldy #$ff
lda (idxl),y BLK entry point
ply
sta DEVPTRS,y
lda idxl+1
sta DEVPTRS+1,y
* clc
.9 rts
*--------------------------------------
LDR.AddExtraSPDevs
ldy #$FF get smartport address.
jsr LDR.SetDevID set up device attributes
iny ldy #$fe from SetDevID
* ldy #$FF
lda (idxl),y
clc
adc #$03 add 3 for smartport call
@ -876,8 +941,6 @@ LDR.AddExtraSPDevs
lda idxl+1
sta LDR.SPVect+2
jsr LDR.SetDevID set up device attributes
lda #0
jsr LDR.SPStatusCall do a status call on smartport itself
@ -898,34 +961,10 @@ LDR.AddExtraSPDevs
lda LDR.SPStatusBuf is this a block device?
bpl .2
jsr LDR.MountSPDevs
jsr LDR.FindFreeDevPtr
bcs .8
.2 inc LDR.SPStatus.U
dec LDR.DevCnt
bne .1
.8 rts
*--------------------------------------
LDR.MountSPDevs ldx #LDR.DEVPTRS.CNT-1
.1 ldy LDR.DEVPTRS.IDX,x
lda DEVPTRS,y device driver table 1
cmp #nodevice
bne .2
lda DEVPTRS+1,y
cmp /nodevice
beq .3
.2 dex
bpl .1
sec
rts
.3 jsr LDR.LCBNK1
jsr LDR.LCBNK1
tya divide index by 2
lsr
@ -942,23 +981,19 @@ LDR.MountSPDevs ldx #LDR.DEVPTRS.CNT-1
bit RROMBNK2 write protect lc ram.
inc DEVCNT
ldx DEVCNT
tya
asl convert to DSSS0000
asl
asl
ora devid include device attributes
sta DEVLST,x in the active device list.
jsr LDR.AddY2DEVLST
lda #XDOS.SPREMAP
sta DEVPTRS,y device driver table 1
sta DEVPTRS,y
lda /XDOS.SPREMAP
sta DEVPTRS+1,y
clc
rts
.2 inc LDR.SPStatus.U
dec LDR.DevCnt
bne .1
.8 rts
*--------------------------------------
LDR.SPStatusCall
sta LDR.SPStatus.U
@ -1008,6 +1043,28 @@ LDR.CheckDiskID ldy #5
bra .8
*--------------------------------------
LDR.FindFreeDevPtr
ldx #LDR.DEVPTRS.CNT-1
LDR.FindFreeDevPtrNext
.1 ldy LDR.DEVPTRS.IDX,x
lda DEVPTRS,y device driver table 1
cmp #nodevice
bne .2
lda DEVPTRS+1,y
cmp /nodevice
beq .8
.2 dex
bpl .1
sec
rts
.8 clc
rts
*--------------------------------------
LDR.SetDevID ldy #$FE check attributes byte.
lda (idxl),y
@ -1018,6 +1075,19 @@ LDR.SetDevID ldy #$FE check attributes byte.
sta devid
rts
*--------------------------------------
LDR.AddY2DEVLST inc DEVCNT
ldx DEVCNT
tya
asl convert to DSSS0000
asl
asl
ora devid include device attributes
sta DEVLST,x in the active device list.
rts
*--------------------------------------
LDR.Scr80Init phx Save LDR.MSG
jsr LDR.IsIIc
@ -1322,14 +1392,14 @@ LDR.SPStatus.U .DA #$00 unit number (code for smartport stat)
LDR.DEVPTRS.CNT .EQ 14
LDR.DEVPTRS.IDX .DA #$16 S3D2
LDR.DEVPTRS.IDX .DA #$16 S3D2 /RAM
.DA #$06 S3D1
.DA #$12 S1D2
.DA #$02 S1D1
.DA #$14 S2D2
.DA #$04 S2D1
.DA #$18 S4D2
.DA #$08 S4D1
.DA #$06 S3D1
.DA #$1A S5D2
.DA #$0A S5D1
.DA #$1C S6D2

View File

@ -68,7 +68,7 @@ CS.INIT >LDYA L.LIBTUI
CS.INIT.RTS rts
*--------------------------------------
CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init
CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init
bcs CS.RUN.RTS
sta hCTX
@ -100,9 +100,14 @@ CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init
*--------------------------------------
CS.RUN.LOOP lda hSCRN
>LIBCALL hLIBTUI,LIBTUI.Exec
bcs .9
bcc .10
tay
beq CS.RUN.LOOP
rts
cmp #EV.RESIZE
.10 cmp #EV.RESIZE
bne .1
jsr CS.SCRN.Draw

View File

@ -206,8 +206,8 @@ S.DCB.TTY.bCURON .EQ 9
S.DCB.TTY.bTITLE .EQ 10
S.DCB.TTY.bNORMAL .EQ 11
S.DCB.TTY.bLINEWRAP .EQ 12
S.DCB.TTY.bCRLF .EQ 13
S.DCB.TTY.bDECAWM .EQ 12
S.DCB.TTY.bLNM .EQ 13
S.DCB.TTY.bG0G1 .EQ 14
S.DCB.TTY.bG0G1ALT .EQ 15

View File

@ -133,10 +133,10 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,ptr1=fd
lda (pFD),y
bne .5
lda /DRV.SmartPort
lda /DRV.SP
sta (pFD),y
dey
lda #DRV.SmartPort
lda #DRV.SP
sta (pFD),y
.5 jsr DEV.GetPDrv

View File

@ -7,7 +7,8 @@ NEW
*--------------------------------------
DRV.DiskII cld
cpx #IOCTL.FORMAT
bcs DRV.RamDrive.9
bcs DRV.BadCall
>STYA pIOCTL
jmp (.1,x)
@ -27,33 +28,35 @@ DRV.DiskII.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
.DA #0
.DA K.VER
*--------------------------------------
* DRV.RamDrive
* DRV.RAM
* X = IOCTL
* Y,A = PTR to S.IOCTL
*--------------------------------------
DRV.RamDrive cld
DRV.RAM cld
cpx #IOCTL.CONTROL
bcs DRV.RamDrive.9
bcs DRV.BadCall
>STYA pIOCTL
jmp (.1,x)
.1 .DA DRV.RamDrive.S
.1 .DA DRV.RAM.S
.DA DRV.BLK READ
.DA DRV.BLK WRITE
.DA DRV.BLK FORMAT
DRV.RamDrive.9 jmp A2osX.BadCall
DRV.BadCall jmp A2osX.BadCall
*--------------------------------------
DRV.RamDrive.S jsr DRV.Blk
DRV.RAM.S jsr DRV.Blk
bcs .9
stx DRV.RamDrive.DIB+S.DIB.SIZE
sty DRV.RamDrive.DIB+S.DIB.SIZE+1
>LDYAI DRV.RamDrive.DIB
stx DRV.RAM.DIB+S.DIB.SIZE
sty DRV.RAM.DIB+S.DIB.SIZE+1
>LDYAI DRV.RAM.DIB
jmp DRV.STATUS.YA
.9 rts
*--------------------------------------
DRV.RamDrive.DIB
.DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
DRV.RAM.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
.BS 3
.PS "ProDOS /RAM Disk"
.DA #S.DIB.T.RAM
@ -66,14 +69,28 @@ DRV.RamDrive.DIB
*--------------------------------------
DRV.BlkDev cld
cpx #IOCTL.CONTROL
bcs DRV.RamDrive.9
bcs DRV.BadCall
>STYA pIOCTL
jmp (.1,x)
.1 .DA DRV.BlkDev.S
.DA DRV.BLK READ
.DA DRV.BLK WRITE
.DA DRV.BLK FORMAT
*--------------------------------------
DRV.RSP cld
cpx #IOCTL.CONTROL
bcs DRV.BadCall
>STYA pIOCTL
jmp (.1,x)
.1 .DA DRV.RSP.S
.DA DRV.BLK READ
.DA DRV.BLK WRITE
.DA DRV.BLK FORMAT
*--------------------------------------
DRV.BlkDev.S jsr DRV.Blk
bcs .9
@ -91,12 +108,31 @@ DRV.BlkDev.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
.DA #0
.DA K.VER
*--------------------------------------
DRV.RSP.S jsr DRV.Blk
bcs .9
stx DRV.RSP.DIB+S.DIB.SIZE
sty DRV.RSP.DIB+S.DIB.SIZE+1
>LDYAI DRV.RSP.DIB
jmp DRV.STATUS.YA
.9 rts
*--------------------------------------
DRV.RSP.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
.BS 3
.PS "Remapped SP Dev "
.DA #S.DIB.T.PRODOS
.DA #0
.DA K.VER
*--------------------------------------
* IOCTL to BLK protocol converter
* in : pIOCTL
*--------------------------------------
DRV.BLK txa
lsr
sta DRV.BLK.P CMD
ldy #S.FD.DEV.DEVID Drive 1, or 2
lda (pFD),y
dec O or 1
@ -147,7 +183,7 @@ DRV.BLK.P .BS 6
*--------------------------------------
* Smartport Driver
*--------------------------------------
DRV.SmartPort cld
DRV.SP cld
>STYA pIOCTL
>STYA .3 smartport Params
@ -155,7 +191,7 @@ DRV.SmartPort cld
lsr
sta .2
tax
lda DRV.SmartPort.Cnt,x
lda DRV.SP.Cnt,x
sta (pIOCTL) S.IOCTL.CNT
ldy #S.FD.DEV.DEVID
@ -179,8 +215,7 @@ DRV.SmartPort cld
jsr GO.A2osX
rts
DRV.SmartPort.Cnt
.HS 03030301030101010404
DRV.SP.Cnt .HS 03030301030101010404
*--------------------------------------
* NULL DEVICE
* - OPEN,WRITE,CLOSE always succeed.

View File

@ -268,7 +268,7 @@ KConfigLoad >LDYAI MSG.KCREAD
lda A2osX.FSID
beq .99
>LDYAI MSG.PRODOSFX
>LDYAI MSG.FX
jsr PrintFYA
.99 rts
@ -716,7 +716,7 @@ DevMgrInit >LDYAI MSG.DEV
lda #A2osX.S.DII
bra .7 Go mark slot as USED
.3 bcs .53 > $D0, Some BLK remapped DRV
.3 bcs .53 > $D0, Some SP remapped DRV
cmp #$C0
bcs .4 $C0 .. $CF, in slot ROM
@ -755,6 +755,7 @@ DevMgrInit >LDYAI MSG.DEV
bmi .80
jmp .1
.80 clc
rts
*--------------------------------------
@ -768,6 +769,9 @@ DevMgr.USR ldx #4
.HS 2C BIT ABS
*--------------------------------------
DevMgr.BLK ldx #6
.HS 2C BIT ABS
*--------------------------------------
DevMgr.RSP ldx #10
bra DevMgr.AddBDev
*--------------------------------------
DevMgr.SP ldy #$ff
@ -777,9 +781,6 @@ DevMgr.SP ldy #$ff
sta FD.BDEV+S.FD.DEV.BUSPTR
ldx #8
.HS 2C BIT ABS
DevMgr.RSP ldx #10
*--------------------------------------
DevMgr.AddBDev >LDYA DRV.BLKDEVX,x
>STYA FD.BDEV+S.FD.DEV.DRVPTR
@ -1283,7 +1284,7 @@ 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.FX .CZ "!!!Running under ProDOS.FX!!! Enabling lowercase mode.\r"
MSG.Init2.OK .CZ "A2osX[Stage2]:Complete."
*--------------------------------------
MSG.Init3 .CZ "A2osX[Stage3]:Init *** Press Ctrl-R for entering ROOT Mode ***\r\n"
@ -1299,14 +1300,14 @@ MSG.BLKDEV.RAM .AZ "/RAM Disk"
MSG.BLKDEV.DII .AZ "Disk ]["
MSG.BLKDEV.USR .AZ "User"
MSG.BLKDEV.BLK .AZ "Generic Block"
MSG.BLKDEV.SP .AZ "Smart Port"
MSG.BLKDEV.RSP .AZ "Remapped SP"
DRV.BLKDEVX .DA DRV.RamDrive
MSG.BLKDEV.SP .AZ "SmartPort"
MSG.BLKDEV.RSP .AZ "SmartPort (Remapped)"
DRV.BLKDEVX .DA DRV.RAM
.DA DRV.DiskII
.DA DRV.BlkDev
.DA DRV.BlkDev
.DA DRV.SmartPort
.DA DRV.BlkDev
.DA DRV.SP
.DA DRV.RSP
*--------------------------------------
MSG.IRQ .AZ "Interrupt Manager..."
MSG.IRQGS .AZ " Apple IIgs VBL IRQ Activated."

View File

@ -23,7 +23,7 @@ TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
bra TERM.TOAUX
*--------------------------------------
TERM.OPEN
* sta ZPhFD hFD in A for OPEN
* hFD in A for OPEN
TERM.CONTROL
TERM.CLOSE jsr TERM.GetDCB

File diff suppressed because it is too large Load Diff