mirror of https://github.com/A2osX/A2osX.git
**LOT of mods*** TESTING REQUESTED around....everything :-)
This commit is contained in:
parent
82f1cb8630
commit
9aea9939ee
172
.Docs/TERM.md
172
.Docs/TERM.md
|
@ -1,94 +1,92 @@
|
||||||
# A2osX Terminal Codes Guide
|
# 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.
|
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 Sequence | Description | DEC Code | A2osX TERM |
|
||||||
|--------------|-------------|----------|------------|
|
|---------------|-------------|----------|------------|
|
||||||
|Esc[20h |Set new line mode|LMN|OK|
|
|Esc[20h |Set new line mode|LMN|OK|
|
||||||
|Esc[?1h |Set cursor key to application|DECCKM||
|
|Esc[?1h |Set cursor key to application|DECCKM||
|
||||||
|Esc[?3h |Set number of columns to 132|DECCOLM||
|
|Esc[?3h |Set number of columns to 132|DECCOLM||
|
||||||
|Esc[?4h |Set smooth scrolling|DECSCLM||
|
|Esc[?4h |Set smooth scrolling|DECSCLM||
|
||||||
|Esc[?5h |Set reverse video on screen|DECSCNM|OK|
|
|Esc[?5h |Set reverse video on screen|DECSCNM|OK|
|
||||||
|Esc[?6h |Set origin to relative|DECOM||
|
|Esc[?6h |Set origin to relative|DECOM||
|
||||||
|Esc[?7h |Set auto-wrap mode|DECAWM|OK|
|
|Esc[?7h |Set auto-wrap mode|DECAWM|OK|
|
||||||
|Esc[?8h |Set auto-repeat mode|DECARM||
|
|Esc[?8h |Set auto-repeat mode|DECARM||
|
||||||
|Esc[?9h |Set interlacing mode|DECINLM||
|
|Esc[?9h |Set interlacing mode|DECINLM||
|
||||||
|Esc[20l |Set line feed mode|LMN|OK|
|
|Esc[20l |Set line feed mode|LMN|OK|
|
||||||
|Esc[?1l |Set cursor key to cursor|DECCKM||
|
|Esc[?1l |Set cursor key to cursor|DECCKM||
|
||||||
|Esc[?2l |Set VT52 (versus ANSI) DECANM||
|
|Esc[?2l |Set VT52 (versus ANSI) |DECANM||
|
||||||
|Esc[?3l |Set number of columns to 80|DECCOLM
|
|Esc[?3l |Set number of columns to 80|DECCOLM ||
|
||||||
|Esc[?4l |Set jump scrolling| DECSCLM
|
|Esc[?4l |Set jump scrolling| DECSCLM ||
|
||||||
|Esc[?5l |Set normal video on screen| DECSCNM |OK|
|
|Esc[?5l |Set normal video on screen| DECSCNM |OK|
|
||||||
|Esc[?6l |Set origin to absolute| DECOM
|
|Esc[?6l |Set origin to absolute| DECOM ||
|
||||||
|Esc[?7l |Reset auto-wrap mode| DECAWM |OK|
|
|Esc[?7l |Reset auto-wrap mode| DECAWM |OK|
|
||||||
|Esc[?8l |Reset auto-repeat mode| DECARM
|
|Esc[?8l |Reset auto-repeat mode| DECARM ||
|
||||||
|Esc[?9l |Reset interlacing mode| DECINLM ||
|
|Esc[?9l |Reset interlacing mode| DECINLM ||
|
||||||
|Esc= |Set alternate keypad mode| DECKPAM ||
|
|Esc= |Set alternate keypad mode| DECKPAM ||
|
||||||
|Esc> |Set numeric keypad mode| DECKPNM ||
|
|Esc> |Set numeric keypad mode| DECKPNM ||
|
||||||
|Esc(A |Set United Kingdom G0 character set| setukg0 |OK|
|
|Esc(A |Set United Kingdom G0 character set| setukg0 |OK|
|
||||||
|Esc)A |Set United Kingdom G1 character set| setukg1 |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 G0 character set| setusg0 |OK|
|
||||||
|Esc)B |Set United States G1 character set| setusg1 |OK|
|
|Esc)B |Set United States G1 character set| setusg1 |OK|
|
||||||
|Esc(0 |Set G0 special chars. & line set| setspecg0 |OK|
|
|Esc(0 |Set G0 special chars. & line set| setspecg0 |OK|
|
||||||
|Esc)0 |Set G1 special chars. & line set| setspecg1 |OK|
|
|Esc)0 |Set G1 special chars. & line set| setspecg1 |OK|
|
||||||
|Esc(1 |Set G0 alternate character ROM| setaltg0 |OK|
|
|Esc(1 |Set G0 alternate character ROM| setaltg0 |OK|
|
||||||
|Esc)1 |Set G1 alternate character ROM| setaltg1 |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 G0 alt char ROM and spec. graphics| setaltspecg0 |OK|
|
||||||
|Esc)2 |Set G1 alt char ROM and spec. graphics| setaltspecg1 |OK|
|
|Esc)2 |Set G1 alt char ROM and spec. graphics| setaltspecg1 |OK|
|
||||||
|EscN |Set single shift 2| SS2
|
|EscN |Set single shift 2| SS2
|
||||||
|EscO |Set single shift 3| SS3
|
|EscO |Set single shift 3| SS3
|
||||||
|Esc[m |Turn off character attributes| SGR0 |OK|
|
|Esc[m |Turn off character attributes| SGR0 |OK|
|
||||||
|Esc[0m |Turn off character attributes| SGR0 |OK|
|
|Esc[0m |Turn off character attributes| SGR0 |OK|
|
||||||
|Esc[1m |Turn bold mode on| SGR1
|
|Esc[1m |Turn bold mode on| SGR1 ||
|
||||||
|Esc[2m |Turn low intensity mode on| SGR2
|
|Esc[2m |Turn low intensity mode on| SGR2 ||
|
||||||
|Esc[4m |Turn underline mode on| SGR4
|
|Esc[4m |Turn underline mode on| SGR4 ||
|
||||||
|Esc[5m |Turn blinking mode on| SGR5
|
|Esc[5m |Turn blinking mode on| SGR5 ||
|
||||||
|Esc[7m |Turn reverse video on| SGR7 |OK|
|
|Esc[7m |Turn reverse video on| SGR7 |OK|
|
||||||
|Esc[8m |Turn invisible text mode on| SGR8 ||
|
|Esc[8m |Turn invisible text mode on| SGR8 ||
|
||||||
|Esc[FG;BGm| Set Text Color to FG and BG |OK|
|
|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[Line;Liner |Set top and bottom lines of a window| DECSTBM |OK|
|
||||||
|Esc[ValueA |Move cursor up n lines| CUU ||
|
|Esc[ValueA |Move cursor up n lines| CUU |OK|
|
||||||
|Esc[ValueB |Move cursor down n lines| CUD ||
|
|Esc[ValueB |Move cursor down n lines| CUD |OK|
|
||||||
|Esc[ValueC |Move cursor right n lines| CUF||
|
|Esc[ValueC |Move cursor right n lines| CUF |OK|
|
||||||
|Esc[ValueD |Move cursor left n lines| CUB ||
|
|Esc[ValueD |Move cursor left n lines| CUB |OK|
|
||||||
|Esc[H |Move cursor to upper left corner| cursorhome||
|
|Esc[H |Move cursor to upper left corner| CUP |OK|
|
||||||
|Esc[;H |Move cursor to upper left corner| cursorhome||
|
|Esc[Line;ColH |Move cursor to screen location v,h| CUP |OK|
|
||||||
|Esc[Line;ColumnH |Move cursor to screen location v,h| CUP |OK|
|
|Esc[f |Move cursor to upper left corner| HVP|OK|
|
||||||
|Esc[f |Move cursor to upper left corner| hvhome ||
|
|Esc[Line;Colf |Move cursor to screen location v,h| HVP|OK|
|
||||||
|Esc[;f |Move cursor to upper left corner| hvhome ||
|
|EscD |Move/scroll window up one line| IND |OK|
|
||||||
|Esc[Line;Columnf |Move cursor to screen location v,h| CUP||
|
|EscE |Move to next line| NEL |OK|
|
||||||
|EscD |Move/scroll window up one line| IND ||
|
|EscM |Move/scroll window down one line| RI |OK|
|
||||||
|EscM |Move/scroll window down one line| RI ||
|
|Esc7 |Save cursor position and attributes| DECSC | OK |
|
||||||
|EscE |Move to next line| NEL ||
|
|Esc8 |Restore cursor position and attributes| DECSC | OK |
|
||||||
|Esc7 |Save cursor position and attributes| DECSC | OK |
|
|EscH |Set a tab at the current column| HTS ||
|
||||||
|Esc8 |Restore cursor position and attributes| DECSC | OK |
|
|Esc[g |Clear a tab at the current column| TBC||
|
||||||
|EscH |Set a tab at the current column| HTS ||
|
|Esc[0g |Clear a tab at the current column| TBC||
|
||||||
|Esc[g |Clear a tab at the current column| TBC||
|
|Esc[3g |Clear all tabs| TBC||
|
||||||
|Esc[0g |Clear a tab at the current column| TBC||
|
|Esc#3 |Double-height letters, top half| DECDHL ||
|
||||||
|Esc[3g |Clear all tabs| TBC||
|
|Esc#4 |Double-height letters, bottom half| DECDHL||
|
||||||
|Esc#3 |Double-height letters, top half| DECDHL ||
|
|Esc#5 |Single width, single height letters| DECSWL||
|
||||||
|Esc#4 |Double-height letters, bottom half| DECDHL||
|
|Esc#6 |Double width, single height letters| DECDWL||
|
||||||
|Esc#5 |Single width, single height letters| DECSWL||
|
|Esc[K |Clear line from cursor right| EL0 |OK|
|
||||||
|Esc#6 |Double width, single height letters| DECDWL||
|
|Esc[0K |Clear line from cursor right| EL0 |OK|
|
||||||
|Esc[K |Clear line from cursor right| EL0 |OK|
|
|Esc[1K |Clear line from cursor left | EL1 |OK|
|
||||||
|Esc[0K |Clear line from cursor right| EL0 |OK|
|
|Esc[2K |Clear entire line| EL2 |OK|
|
||||||
|Esc[1K |Clear line from cursor left | EL1 |OK|
|
|Esc[J |Clear screen from cursor down| ED0 |OK|
|
||||||
|Esc[2K |Clear entire line| EL2 |OK|
|
|Esc[0J |Clear screen from cursor down | ED0 |OK|
|
||||||
|Esc[J |Clear screen from cursor down| ED0 |OK|
|
|Esc[1J |Clear screen from cursor up | ED1 |OK|
|
||||||
|Esc[0J |Clear screen from cursor down | ED0 |OK|
|
|Esc[2J |Clear entire screen | ED2 |OK|
|
||||||
|Esc[1J |Clear screen from cursor up | ED1 |OK|
|
|Esc5n |Device status report | DSR ||
|
||||||
|Esc[2J |Clear entire screen | ED2 |OK|
|
|Esc0n |Response: terminal is OK | DSR||
|
||||||
|Esc5n |Device status report | DSR ||
|
|Esc3n |Response: terminal is not OK | DSR||
|
||||||
|Esc0n |Response: terminal is OK | DSR||
|
|Esc6n |Get cursor position | DSR |OK|
|
||||||
|Esc3n |Response: terminal is not OK | DSR||
|
|EscLine;ColR |Response: cursor is at v,h | CPR |OK|
|
||||||
|Esc6n |Get cursor position | DSR |OK|
|
|Esc[c |Identify what terminal type | DA ||
|
||||||
|EscLine;ColumnR |Response: cursor is at v,h | CPR |OK|
|
|Esc[0c |Identify what terminal type (another)| DA||
|
||||||
|Esc[c |Identify what terminal type | DA ||
|
|Esc[?1;Value0c |Response: terminal type code n | DA ||
|
||||||
|Esc[0c |Identify what terminal type (another)| DA||
|
|Escc |Reset terminal to initial state| RIS |OK|
|
||||||
|Esc[?1;Value0c |Response: terminal type code n | DA ||
|
|
||||||
|Escc |Reset terminal to initial state| RIS |OK|
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
A2osX is licensed under the GNU General Public 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
|
||||||
|
|
||||||
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.
|
Copyright 2015 - 2023, Remy Gibert and the A2osX contributors.
|
||||||
|
|
Binary file not shown.
|
@ -692,7 +692,7 @@ ENV.LIB .AZ "LIB"
|
||||||
LIB.O .AZ ".o"
|
LIB.O .AZ ".o"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CC.EscChars .AS "abefnrtv"
|
CC.EscChars .AS "abefnrtv"
|
||||||
.HS 5C27223F
|
.HS 5C27223F \'"?
|
||||||
CC.EscChars.Cnt .EQ *-CC.EscChars
|
CC.EscChars.Cnt .EQ *-CC.EscChars
|
||||||
CC.EscCodes .HS 07081B0C0A0D090B
|
CC.EscCodes .HS 07081B0C0A0D090B
|
||||||
.HS 5C27223F
|
.HS 5C27223F
|
||||||
|
|
|
@ -36,6 +36,7 @@ Ctrl.DEL jsr BUF.ComputeCOffset
|
||||||
|
|
||||||
jsr Ctrl.BS
|
jsr Ctrl.BS
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp Ctrl.Z
|
jmp Ctrl.Z
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
|
@ -255,60 +256,40 @@ Ctrl.L jsr BUF.GetLine
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Ctrl.CR lda #C.CR
|
Ctrl.CR lda #C.CR
|
||||||
jsr BUF.InsertA
|
jsr BUF.InsertA
|
||||||
bcs .99
|
bcs .9
|
||||||
|
|
||||||
jsr SCRN.LineBufInitEdit CEOL
|
|
||||||
|
|
||||||
>STZ.G FileX
|
|
||||||
>INCW.G FileY
|
>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
|
>STZ.G CurX
|
||||||
|
|
||||||
>LDA.G CurY
|
jsr SCRN.InsLineAtCurY
|
||||||
>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
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.6 jsr SCRN.LineBufOut
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>INC.G CurY
|
|
||||||
jsr BUF.ComputeCOffset
|
|
||||||
jsr SCRN.UpdateCurrentLine
|
jsr SCRN.UpdateCurrentLine
|
||||||
|
bcs .9
|
||||||
|
|
||||||
jmp SCRN.GotoCurXCurY
|
jmp SCRN.GotoCurXCurY
|
||||||
|
|
||||||
|
* jmp SCRN.UpdateViewPort
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Ctrl.O ldy #FileY+1
|
Ctrl.O ldy #FileY+1
|
||||||
|
@ -405,24 +386,7 @@ Ctrl.Y jsr BUF.GetNextLine
|
||||||
tya Y = line length
|
tya Y = line length
|
||||||
>STA.G FileX
|
>STA.G FileX
|
||||||
|
|
||||||
>LDA.G FileY
|
jmp SCRN.UpdateViewPort
|
||||||
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
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Ctrl.F >LDYA L.DLG.FIND
|
Ctrl.F >LDYA L.DLG.FIND
|
||||||
jsr DLG.Open
|
jsr DLG.Open
|
||||||
|
@ -600,6 +564,7 @@ Ctrl.D jsr BUF.DelSel
|
||||||
bcs Ctrl.D.8
|
bcs Ctrl.D.8
|
||||||
|
|
||||||
jsr BUF.ResetSel
|
jsr BUF.ResetSel
|
||||||
|
|
||||||
jsr SCRN.CursorAdjust
|
jsr SCRN.CursorAdjust
|
||||||
jsr SCRN.UpdateViewPort
|
jsr SCRN.UpdateViewPort
|
||||||
jsr SCRN.UnSaved will update TopBar
|
jsr SCRN.UnSaved will update TopBar
|
||||||
|
@ -648,18 +613,17 @@ Ctrl.Z jsr BUF.ComputeCOffset
|
||||||
jsr SCRN.ResetScrollRgn
|
jsr SCRN.ResetScrollRgn
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr SCRN.UpdateCurrentLine
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr SCRN.UpdateLast
|
jsr SCRN.UpdateLast
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.8 jsr SCRN.UpdateCurrentLine
|
.8 jsr SCRN.UpdateCurrentLine
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.80 jsr SCRN.UnSaved
|
.80 jsr SCRN.CursorAdjust
|
||||||
jsr SCRN.GotoCurXCurY
|
jsr SCRN.UpdateViewPort
|
||||||
jmp SCRN.UpdateStatusBar
|
jsr SCRN.UnSaved will update TopBar
|
||||||
|
jmp SCRN.UpdateMainAndStatus
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -8,64 +8,65 @@ DLG.Open >STYA ZPPTR2
|
||||||
lda #0
|
lda #0
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
txa
|
txa
|
||||||
>STA.G hDLG
|
>STA.G hDLG
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda (ZPPTR2),y
|
.1 lda (ZPPTR2),y
|
||||||
sta (ZPPTR1),y
|
sta (ZPPTR1),y
|
||||||
iny
|
iny
|
||||||
tya
|
tya
|
||||||
cmp (ZPPTR2)
|
cmp (ZPPTR2)
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr DLG.SetOrigin
|
jsr DLG.SetOrigin
|
||||||
|
|
||||||
sty TmpByte
|
sty TmpByte
|
||||||
|
|
||||||
jsr SCRN.GotoXY
|
jsr SCRN.GotoXY
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #S.DLG.Title
|
jsr DLG.DrawTBar
|
||||||
jsr DLG.DrawBar
|
|
||||||
.99 bcs .9
|
.99 bcs .9
|
||||||
|
|
||||||
jsr SCRN.LineBufInitDLG
|
jsr SCRN.LineBufInitDLG
|
||||||
|
|
||||||
ldy #S.DLG.W
|
ldy #S.DLG.W
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
dec
|
dec
|
||||||
|
dec
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
|
|
||||||
.3 jsr SCRN.ToLineBuf
|
.3 jsr SCRN.ToLineBuf
|
||||||
dex
|
dex
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jsr DLG.VBarToLineBuf
|
jsr DLG.VBarToLineBuf
|
||||||
|
|
||||||
ldy #S.DLG.H
|
ldy #S.DLG.H
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
dec
|
dec
|
||||||
dec
|
dec
|
||||||
tax
|
tax
|
||||||
|
|
||||||
.4 phx
|
.4 phx
|
||||||
inc TmpByte
|
inc TmpByte
|
||||||
|
|
||||||
ldy #S.DLG.X
|
ldy #S.DLG.X
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tax
|
tax
|
||||||
ldy TmpByte
|
ldy TmpByte
|
||||||
jsr SCRN.GotoXY
|
jsr SCRN.GotoXY
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr SCRN.LineBufOut
|
jsr SCRN.LineBufOut
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
plx
|
plx
|
||||||
dex
|
dex
|
||||||
bne .4
|
bne .4
|
||||||
|
@ -75,42 +76,42 @@ DLG.Open >STYA ZPPTR2
|
||||||
ldy #S.DLG.X
|
ldy #S.DLG.X
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
ldy TmpByte
|
ldy TmpByte
|
||||||
jsr SCRN.GotoXY
|
jsr SCRN.GotoXY
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #S.DLG.Status
|
jsr DLG.DrawSBar
|
||||||
jsr DLG.DrawBar
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp DLG.CTRL.DrawAll
|
jmp DLG.CTRL.DrawAll
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.Run jsr IO.GetCh
|
DLG.Run jsr IO.GetCh
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #3
|
cmp #3
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #C.TAB
|
cmp #C.TAB
|
||||||
beq DLG.NextFocus
|
beq DLG.NextFocus
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
ldy #S.DLG.Focus
|
ldy #S.DLG.Focus
|
||||||
lda (ZPPTR1),y get actual focused Ctrl
|
lda (ZPPTR1),y get actual focused Ctrl
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
||||||
pla
|
pla
|
||||||
jsr DLG.CTRL.CharIn
|
jsr DLG.CTRL.CharIn
|
||||||
|
|
||||||
bra DLG.Run
|
bra DLG.Run
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -119,7 +120,7 @@ DLG.NextFocus ldy #S.DLG.Focus
|
||||||
|
|
||||||
pha save it...
|
pha save it...
|
||||||
tax
|
tax
|
||||||
|
|
||||||
.1 inx next one
|
.1 inx next one
|
||||||
|
|
||||||
.2 txa
|
.2 txa
|
||||||
|
@ -137,50 +138,50 @@ DLG.NextFocus ldy #S.DLG.Focus
|
||||||
txa
|
txa
|
||||||
ldy #S.DLG.Focus
|
ldy #S.DLG.Focus
|
||||||
sta (ZPPTR1),y
|
sta (ZPPTR1),y
|
||||||
|
|
||||||
pla get old focused
|
pla get old focused
|
||||||
|
|
||||||
phx save new focused
|
phx save new focused
|
||||||
jsr DLG.CTRL.Focus
|
jsr DLG.CTRL.Focus
|
||||||
|
|
||||||
pla
|
pla
|
||||||
jsr DLG.CTRL.Focus
|
jsr DLG.CTRL.Focus
|
||||||
jmp DLG.Run
|
jmp DLG.Run
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.Close ldy #S.DLG.Y
|
DLG.Close ldy #S.DLG.Y
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
|
|
||||||
sta TmpByte
|
sta TmpByte
|
||||||
|
|
||||||
>LDA.G ScreenY
|
>LDA.G ScreenY
|
||||||
clc
|
clc
|
||||||
ldy #S.DLG.Y
|
ldy #S.DLG.Y
|
||||||
adc (ZPPTR1),y
|
adc (ZPPTR1),y
|
||||||
sta TmpIndex
|
sta TmpIndex
|
||||||
|
|
||||||
>LDA.G ScreenY+1
|
>LDA.G ScreenY+1
|
||||||
adc #0
|
adc #0
|
||||||
sta TmpIndex+1
|
sta TmpIndex+1
|
||||||
|
|
||||||
ldy #S.DLG.H
|
ldy #S.DLG.H
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
|
|
||||||
jsr SCRN.UpdateMain.1
|
jsr SCRN.UpdateMain.1
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDA.G hDLG
|
>LDA.G hDLG
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
>STZ.G hDLG
|
>STZ.G hDLG
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.CTRL.DrawAll
|
DLG.CTRL.DrawAll
|
||||||
ldy #S.DLG.Ctrls
|
ldy #S.DLG.Ctrls
|
||||||
|
|
||||||
.5 lda (ZPPTR1),y
|
.5 lda (ZPPTR1),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
phy
|
phy
|
||||||
jsr DLG.CTRL.Draw
|
jsr DLG.CTRL.Draw
|
||||||
ply
|
ply
|
||||||
|
@ -192,7 +193,7 @@ DLG.CTRL.DrawAll
|
||||||
.8 ldy #S.DLG.Focus
|
.8 ldy #S.DLG.Focus
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
jmp DLG.CTRL.Focus
|
jmp DLG.CTRL.Focus
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.CTRL.Draw sty TmpByte Y=CtrlID
|
DLG.CTRL.Draw sty TmpByte Y=CtrlID
|
||||||
|
@ -208,24 +209,24 @@ DLG.CTRL.Draw.LBL
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoOrg
|
jsr DLG.CTRL.GotoOrg
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy TmpByte CtrlID
|
ldy TmpByte CtrlID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
|
||||||
.1 lda (ZPPTR1),y
|
.1 lda (ZPPTR1),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
iny
|
iny
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 jmp SCRN.LineBufOut
|
.8 jmp SCRN.LineBufOut
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.CTRL.Draw.TB
|
DLG.CTRL.Draw.TB
|
||||||
|
@ -233,17 +234,17 @@ DLG.CTRL.Draw.TB
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoOrg
|
jsr DLG.CTRL.GotoOrg
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy TmpByte
|
ldy TmpByte
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
|
@ -252,38 +253,38 @@ DLG.CTRL.Draw.TB
|
||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPTR2
|
>STYA ZPPTR2
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda (ZPPTR2),y
|
.1 lda (ZPPTR2),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
iny
|
iny
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 tya
|
.2 tya
|
||||||
tax
|
tax
|
||||||
|
|
||||||
ldy TmpByte
|
ldy TmpByte
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
|
||||||
txa
|
txa
|
||||||
sta (ZPPTR1),y CURPOS
|
sta (ZPPTR1),y CURPOS
|
||||||
iny
|
iny
|
||||||
|
|
||||||
.3 txa
|
.3 txa
|
||||||
eor (ZPPTR1),y MAXCHAR
|
eor (ZPPTR1),y MAXCHAR
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
inx
|
inx
|
||||||
|
@ -291,7 +292,7 @@ DLG.CTRL.Draw.TB
|
||||||
|
|
||||||
.8 lda #C.SPACE
|
.8 lda #C.SPACE
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
jmp SCRN.LineBufOut
|
jmp SCRN.LineBufOut
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -300,55 +301,62 @@ DLG.CTRL.Draw.OL
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoOrg
|
jsr DLG.CTRL.GotoOrg
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy TmpByte
|
ldy TmpByte
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay S.DLG.Ctrl.OL
|
tay S.DLG.Ctrl.OL
|
||||||
|
|
||||||
iny X
|
iny X
|
||||||
iny Y
|
iny Y
|
||||||
iny shortcut
|
iny shortcut
|
||||||
|
|
||||||
iny varptr
|
iny varptr
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
phy
|
phy
|
||||||
tay
|
tay
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
ply
|
ply
|
||||||
|
|
||||||
iny value
|
iny value
|
||||||
|
|
||||||
eor (ZPPTR1),y
|
eor (ZPPTR1),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
iny label
|
iny label
|
||||||
|
|
||||||
lda #"("
|
lda #'('
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
lda #"o"
|
lda #C.SO
|
||||||
cpx #0
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
|
lda #'`'
|
||||||
|
cpx #0
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
|
|
||||||
.2 jsr SCRN.ToLineBuf
|
.2 jsr SCRN.ToLineBuf
|
||||||
lda #")"
|
|
||||||
|
lda #C.SI
|
||||||
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
|
lda #')'
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
.3 lda (ZPPTR1),y
|
.3 lda (ZPPTR1),y
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
iny
|
iny
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.4 lda #C.SPACE
|
.4 lda #C.SPACE
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
.8 jmp SCRN.LineBufOut
|
.8 jmp SCRN.LineBufOut
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -358,27 +366,27 @@ DLG.CTRL.Draw.BUT
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoOrg
|
jsr DLG.CTRL.GotoOrg
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy TmpByte CtrlID
|
ldy TmpByte CtrlID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
.1 lda (ZPPTR1),y
|
.1 lda (ZPPTR1),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
iny
|
iny
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 lda #C.SPACE
|
.8 lda #C.SPACE
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
|
@ -386,7 +394,7 @@ DLG.CTRL.Draw.BUT
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.CTRL.Focus sta TmpByte A=CtrlID
|
DLG.CTRL.Focus sta TmpByte A=CtrlID
|
||||||
|
|
||||||
tay
|
tay
|
||||||
lda (ZPPTR1),y Ctrl Definition
|
lda (ZPPTR1),y Ctrl Definition
|
||||||
tay
|
tay
|
||||||
|
@ -400,28 +408,28 @@ DLG.CTRL.Focus.LBL
|
||||||
rts
|
rts
|
||||||
DLG.CTRL.Focus.TB
|
DLG.CTRL.Focus.TB
|
||||||
jsr SCRN.LineBufInitTB
|
jsr SCRN.LineBufInitTB
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoOrg
|
jsr DLG.CTRL.GotoOrg
|
||||||
|
|
||||||
ldy #S.DLG.Focus
|
ldy #S.DLG.Focus
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
eor TmpByte
|
eor TmpByte
|
||||||
bne .1
|
bne .1
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.1 lda #C.SPACE
|
.1 lda #C.SPACE
|
||||||
bcc .2
|
bcc .2
|
||||||
lda #'['
|
lda #'['
|
||||||
.2 jsr SCRN.ToLineBuf
|
.2 jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoEnd
|
jsr DLG.CTRL.GotoEnd
|
||||||
|
|
||||||
ldy #S.DLG.Focus
|
ldy #S.DLG.Focus
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
eor TmpByte
|
eor TmpByte
|
||||||
bne .3
|
bne .3
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.3 lda #C.SPACE
|
.3 lda #C.SPACE
|
||||||
bcc .4
|
bcc .4
|
||||||
lda #']'
|
lda #']'
|
||||||
|
@ -432,68 +440,68 @@ DLG.CTRL.Focus.TB
|
||||||
ldy TmpByte CtrlID
|
ldy TmpByte CtrlID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny skip Ctrl Type
|
iny skip Ctrl Type
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
clc
|
clc
|
||||||
|
|
||||||
ldy #S.DLG.X
|
ldy #S.DLG.X
|
||||||
adc (ZPPTR1),y
|
adc (ZPPTR1),y
|
||||||
pha
|
pha
|
||||||
|
|
||||||
ldy TmpByte CtrlID
|
ldy TmpByte CtrlID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
pla
|
pla
|
||||||
|
|
||||||
sec +1
|
sec +1
|
||||||
adc (ZPPTR1),y
|
adc (ZPPTR1),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
ldy TmpByte CtrlID
|
ldy TmpByte CtrlID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny skip Ctrl Type
|
iny skip Ctrl Type
|
||||||
iny skip X
|
iny skip X
|
||||||
|
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
clc
|
clc
|
||||||
ldy #S.DLG.Y
|
ldy #S.DLG.Y
|
||||||
adc (ZPPTR1),y
|
adc (ZPPTR1),y
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
||||||
jmp SCRN.GotoXY
|
jmp SCRN.GotoXY
|
||||||
|
|
||||||
DLG.CTRL.Focus.OL
|
DLG.CTRL.Focus.OL
|
||||||
jsr SCRN.LineBufInitLBL
|
jsr SCRN.LineBufInitLBL
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoOrg
|
jsr DLG.CTRL.GotoOrg
|
||||||
|
|
||||||
ldy #S.DLG.Focus
|
ldy #S.DLG.Focus
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
eor TmpByte
|
eor TmpByte
|
||||||
bne .1
|
bne .1
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.1 lda #'('
|
.1 lda #'('
|
||||||
bcc .2
|
bcc .2
|
||||||
lda #'['
|
lda #'['
|
||||||
.2 jsr SCRN.ToLineBuf
|
.2 jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoEnd
|
jsr DLG.CTRL.GotoEnd
|
||||||
|
|
||||||
ldy #S.DLG.Focus
|
ldy #S.DLG.Focus
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
eor TmpByte
|
eor TmpByte
|
||||||
bne .3
|
bne .3
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.3 lda #')'
|
.3 lda #')'
|
||||||
bcc .4
|
bcc .4
|
||||||
lda #']'
|
lda #']'
|
||||||
|
@ -503,31 +511,31 @@ DLG.CTRL.Focus.OL
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
jmp SCRN.LineBufOut
|
jmp SCRN.LineBufOut
|
||||||
|
|
||||||
DLG.CTRL.Focus.BUT
|
DLG.CTRL.Focus.BUT
|
||||||
jsr SCRN.LineBufInitBut
|
jsr SCRN.LineBufInitBut
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoOrg
|
jsr DLG.CTRL.GotoOrg
|
||||||
|
|
||||||
ldy #S.DLG.Focus
|
ldy #S.DLG.Focus
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
eor TmpByte
|
eor TmpByte
|
||||||
bne .1
|
bne .1
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.1 lda #C.SPACE
|
.1 lda #C.SPACE
|
||||||
bcc .2
|
bcc .2
|
||||||
lda #'['
|
lda #'['
|
||||||
.2 jsr SCRN.ToLineBuf
|
.2 jsr SCRN.ToLineBuf
|
||||||
|
|
||||||
jsr DLG.CTRL.GotoEnd
|
jsr DLG.CTRL.GotoEnd
|
||||||
|
|
||||||
ldy #S.DLG.Focus
|
ldy #S.DLG.Focus
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
eor TmpByte
|
eor TmpByte
|
||||||
bne .3
|
bne .3
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.3 lda #C.SPACE
|
.3 lda #C.SPACE
|
||||||
bcc .4
|
bcc .4
|
||||||
lda #']'
|
lda #']'
|
||||||
|
@ -538,45 +546,45 @@ DLG.CTRL.Focus.BUT
|
||||||
DLG.CTRL.GotoOrg
|
DLG.CTRL.GotoOrg
|
||||||
clc
|
clc
|
||||||
.HS B0 BCS
|
.HS B0 BCS
|
||||||
DLG.CTRL.GotoEnd
|
DLG.CTRL.GotoEnd
|
||||||
sec
|
sec
|
||||||
php
|
php
|
||||||
|
|
||||||
ldy TmpByte CtrlID
|
ldy TmpByte CtrlID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny skip Ctrl Type
|
iny skip Ctrl Type
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
clc
|
clc
|
||||||
|
|
||||||
ldy #S.DLG.X
|
ldy #S.DLG.X
|
||||||
adc (ZPPTR1),y
|
adc (ZPPTR1),y
|
||||||
plp
|
plp
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
jsr DLG.CTRL.GetWitdh
|
jsr DLG.CTRL.GetWitdh
|
||||||
clc
|
clc
|
||||||
adc (pStack)
|
adc (pStack)
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
.1 tax
|
.1 tax
|
||||||
|
|
||||||
ldy TmpByte CtrlID
|
ldy TmpByte CtrlID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
iny skip Ctrl Type
|
iny skip Ctrl Type
|
||||||
iny skip X
|
iny skip X
|
||||||
|
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
clc
|
clc
|
||||||
ldy #S.DLG.Y
|
ldy #S.DLG.Y
|
||||||
adc (ZPPTR1),y
|
adc (ZPPTR1),y
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
||||||
DLG.CTRL.GotoXY >PUSHW LineBufPtr
|
DLG.CTRL.GotoXY >PUSHW LineBufPtr
|
||||||
>PUSHW L.MSG.GOTOXY
|
>PUSHW L.MSG.GOTOXY
|
||||||
tya
|
tya
|
||||||
|
@ -588,41 +596,41 @@ DLG.CTRL.GotoXY >PUSHW LineBufPtr
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL SPrintF
|
>SYSCALL SPrintF
|
||||||
|
|
||||||
.2 lda (LineBufPtr)
|
.2 lda (LineBufPtr)
|
||||||
beq .8
|
beq .8
|
||||||
inc LineBufPtr
|
inc LineBufPtr
|
||||||
bne .2
|
bne .2
|
||||||
inc LineBufPtr+1
|
inc LineBufPtr+1
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.SetOrigin ldy #S.DLG.X
|
DLG.SetOrigin ldy #S.DLG.X
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDA.G ScreenW
|
>LDA.G ScreenW
|
||||||
ldy #S.DLG.W
|
ldy #S.DLG.W
|
||||||
sec
|
sec
|
||||||
sbc (ZPPTR1),y
|
sbc (ZPPTR1),y
|
||||||
|
|
||||||
lsr
|
lsr
|
||||||
|
|
||||||
ldy #S.DLG.X
|
ldy #S.DLG.X
|
||||||
sta (ZPPTR1),y
|
sta (ZPPTR1),y
|
||||||
|
|
||||||
.1 tax
|
.1 tax
|
||||||
|
|
||||||
ldy #S.DLG.Y
|
ldy #S.DLG.Y
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>LDA.G ViewPortHm1
|
>LDA.G ViewPortHm1
|
||||||
ldy #S.DLG.H
|
ldy #S.DLG.H
|
||||||
sec
|
sec
|
||||||
sbc (ZPPTR1),y
|
sbc (ZPPTR1),y
|
||||||
|
|
||||||
lsr
|
lsr
|
||||||
ldy #S.DLG.Y
|
ldy #S.DLG.Y
|
||||||
sta (ZPPTR1),y
|
sta (ZPPTR1),y
|
||||||
|
@ -635,12 +643,12 @@ DLG.CTRL.GetWitdh
|
||||||
ldy TmpByte CtrlID
|
ldy TmpByte CtrlID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
jmp (J.DLG.CTRL.GetWitdh,x)
|
jmp (J.DLG.CTRL.GetWitdh,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.CTRL.GetWitdh.LBL
|
DLG.CTRL.GetWitdh.LBL
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -661,35 +669,35 @@ DLG.CTRL.GetWitdh.OL
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
iny
|
iny
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
rts
|
rts
|
||||||
|
|
||||||
DLG.CTRL.GetWitdh.BUT
|
DLG.CTRL.GetWitdh.BUT
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
iny
|
iny
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.CTRL.CharIn sty TmpByte A=CtrlID
|
DLG.CTRL.CharIn sty TmpByte A=CtrlID
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda (ZPPTR1),y Ctrl Definition
|
lda (ZPPTR1),y Ctrl Definition
|
||||||
tay
|
tay
|
||||||
lda (ZPPTR1),y Ctrl Type
|
lda (ZPPTR1),y Ctrl Type
|
||||||
|
@ -704,10 +712,10 @@ DLG.CTRL.CharIn.LBL
|
||||||
DLG.CTRL.CharIn.TB
|
DLG.CTRL.CharIn.TB
|
||||||
cmp #C.DEL
|
cmp #C.DEL
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bcc .9
|
bcc .9
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
@ -717,13 +725,13 @@ DLG.CTRL.CharIn.TB
|
||||||
iny
|
iny
|
||||||
cmp (ZPPTR1),y MAXCHAR
|
cmp (ZPPTR1),y MAXCHAR
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
inc
|
inc
|
||||||
dey
|
dey
|
||||||
sta (ZPPTR1),y CURPOS
|
sta (ZPPTR1),y CURPOS
|
||||||
|
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
|
||||||
|
@ -747,7 +755,7 @@ DLG.CTRL.CharIn.TB
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.5 iny
|
.5 iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
@ -775,12 +783,12 @@ DLG.CTRL.CharIn.TB
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.7 pla
|
.7 pla
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -802,9 +810,9 @@ DLG.CTRL.CharIn.OL
|
||||||
|
|
||||||
ply
|
ply
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
jmp DLG.CTRL.DrawAll
|
jmp DLG.CTRL.DrawAll
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -812,40 +820,72 @@ DLG.CTRL.CharIn.BUT
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.DrawBar phy
|
DLG.DrawTBar ldx #SEQ.DLG.TBAR-SEQS
|
||||||
jsr SCRN.LineBufInitDLGBar
|
jsr SCRN.LineBufInit
|
||||||
|
|
||||||
ldy #S.DLG.W
|
ldy #S.DLG.W
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
|
dec
|
||||||
|
dec
|
||||||
tax
|
tax
|
||||||
|
|
||||||
ply
|
ldy #S.DLG.Title
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
.1 lda (ZPPTR1),y
|
.1 lda (ZPPTR1),y
|
||||||
beq .11
|
beq .11
|
||||||
|
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
dex
|
dex
|
||||||
|
beq .3
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.11 lda #C.SPACE
|
.11 lda #C.SPACE
|
||||||
|
|
||||||
.2 jsr SCRN.ToLineBuf
|
.2 jsr SCRN.ToLineBuf
|
||||||
dex
|
dex
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
.3 lda SEQ.NORM,y
|
.3 ldx #SEQ.DLG.TBAR.E-SEQS
|
||||||
beq .4
|
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
|
jsr SCRN.ToLineBuf
|
||||||
iny
|
dex
|
||||||
bra .3
|
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
|
.4 jmp SCRN.LineBufOut
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.VBarToLineBuf
|
DLG.VBarToLineBuf
|
||||||
|
@ -857,7 +897,7 @@ DLG.VBarToLineBuf
|
||||||
jsr SCRN.ToLineBuf
|
jsr SCRN.ToLineBuf
|
||||||
iny
|
iny
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -57,7 +57,7 @@ IO.GetCh.1 tax
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.11 lda (pData) #EscBufferPtr
|
.11 lda (pData) #EscBufferPtr
|
||||||
cmp #15
|
cmp #21
|
||||||
bcc .10
|
bcc .10
|
||||||
|
|
||||||
.19 >STZ.G bEscMode
|
.19 >STZ.G bEscMode
|
||||||
|
|
|
@ -9,22 +9,8 @@ SCRN.Init >PUSHW L.SEQ.INIT
|
||||||
>PUSHBI 1
|
>PUSHBI 1
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
bcs SCRN.Init.9
|
bcs SCRN.Init.9
|
||||||
|
|
||||||
jmp SCRN.Home
|
jsr SCRN.ResetScrollRgn
|
||||||
*--------------------------------------
|
|
||||||
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
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.Home lda #0
|
SCRN.Home lda #0
|
||||||
|
|
||||||
|
@ -35,6 +21,53 @@ SCRN.Home lda #0
|
||||||
|
|
||||||
cpy #CurY+1
|
cpy #CurY+1
|
||||||
bne .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
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.ResetScrollRgn
|
SCRN.ResetScrollRgn
|
||||||
|
@ -47,42 +80,18 @@ SCRN.ResetScrollRgn
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.UnSaved >LDA.G bUnSaved
|
SCRN.UnSaved >LDA.G bUnSaved
|
||||||
bne SCRN.UpdateTopBar.8
|
bne SCRN.Init.8
|
||||||
|
|
||||||
dec
|
dec
|
||||||
sta (pData),y
|
sta (pData),y bUnSaved
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.UpdateTopBar
|
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
|
ldx #SEQ.CURSAVE-SEQS
|
||||||
jsr SCRN.SEQS.ToLineBuf
|
jsr SCRN.LineBufInit
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
jsr SCRN.LineBufGotoLineY
|
jsr SCRN.LineBufGotoLineY
|
||||||
bcs .9
|
jsr SCRN.ResetBar
|
||||||
|
|
||||||
>LDA.G ScreenW
|
|
||||||
tax
|
|
||||||
|
|
||||||
lda #C.SPACE
|
|
||||||
|
|
||||||
.1 jsr SCRN.ToLineBuf
|
|
||||||
dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
lda #C.CR
|
|
||||||
jsr SCRN.ToLineBuf
|
|
||||||
|
|
||||||
>PUSHW LineBufPtr
|
>PUSHW LineBufPtr
|
||||||
>PUSHW L.MSG.TOPBAR
|
>PUSHW L.MSG.TOPBAR
|
||||||
|
@ -111,7 +120,6 @@ SCRN.UpdateTopBar.1
|
||||||
|
|
||||||
jmp SCRN.LineBufOut
|
jmp SCRN.LineBufOut
|
||||||
|
|
||||||
.8 clc
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.UpdateViewPort
|
SCRN.UpdateViewPort
|
||||||
|
@ -189,6 +197,7 @@ SCRN.UpdateViewPort
|
||||||
|
|
||||||
jsr SCRN.scrollUp ...and move content one line up
|
jsr SCRN.scrollUp ...and move content one line up
|
||||||
bcc .41
|
bcc .41
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.6 >LDA.G FileX
|
.6 >LDA.G FileX
|
||||||
|
@ -251,6 +260,7 @@ SCRN.UpdateMain.1
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
inc TmpIndex+1
|
inc TmpIndex+1
|
||||||
|
|
||||||
.4 dec TmpCount
|
.4 dec TmpCount
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
@ -261,7 +271,7 @@ SCRN.UpdateMain.1
|
||||||
jsr SCRN.GotoXY
|
jsr SCRN.GotoXY
|
||||||
bcs SCRN.UpdateMain.9
|
bcs SCRN.UpdateMain.9
|
||||||
|
|
||||||
>PUSHW L.SEQ.CEOL
|
>PUSHW L.SEQ.EDIT
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
bcs SCRN.UpdateMain.9
|
bcs SCRN.UpdateMain.9
|
||||||
|
@ -356,6 +366,7 @@ SCRN.UpdateLineAtBufPtr
|
||||||
.5 lda (BufPtr)
|
.5 lda (BufPtr)
|
||||||
cmp #'\'
|
cmp #'\'
|
||||||
beq .50
|
beq .50
|
||||||
|
|
||||||
cmp #'%'
|
cmp #'%'
|
||||||
bne .51
|
bne .51
|
||||||
|
|
||||||
|
@ -413,7 +424,7 @@ SCRN.UpdateStatusBar
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
jsr SCRN.ResetStatusBar
|
jsr SCRN.ResetStatusBar
|
||||||
|
|
||||||
>PUSHW LineBufPtr
|
>PUSHW LineBufPtr
|
||||||
>PUSHW L.MSG.STATUSBAR
|
>PUSHW L.MSG.STATUSBAR
|
||||||
|
|
||||||
|
@ -451,15 +462,16 @@ SCRN.UpdateStatusBar
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.ResetStatusBar
|
SCRN.ResetStatusBar
|
||||||
jsr SCRN.LineBufInitBar
|
|
||||||
|
|
||||||
ldx #SEQ.CURSAVE-SEQS
|
ldx #SEQ.CURSAVE-SEQS
|
||||||
jsr SCRN.SEQS.ToLineBuf
|
jsr SCRN.LineBufInit
|
||||||
|
|
||||||
>LDA.G ScreenH
|
>LDA.G ScreenH
|
||||||
tay
|
tay
|
||||||
jsr SCRN.LineBufGotoLineY
|
jsr SCRN.LineBufGotoLineY
|
||||||
|
|
||||||
|
SCRN.ResetBar ldx #SEQ.BAR-SEQS
|
||||||
|
jsr SCRN.SEQS.ToLineBuf
|
||||||
|
|
||||||
>LDA.G ScreenW
|
>LDA.G ScreenW
|
||||||
tax
|
tax
|
||||||
|
|
||||||
|
@ -483,9 +495,9 @@ SCRN.CursorAdjust
|
||||||
.2 tya
|
.2 tya
|
||||||
>CMP.G FileX
|
>CMP.G FileX
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
>STA.G FileX
|
>STA.G FileX
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -555,40 +567,26 @@ SCRN.scrollDn >PUSHW L.SEQ.SCROLLDN
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.LineBufInitBar
|
SCRN.LineBufInitBar
|
||||||
phx
|
|
||||||
ldx #SEQ.BAR-SEQS
|
ldx #SEQ.BAR-SEQS
|
||||||
bra SCRN.LineBufInit
|
bra SCRN.LineBufInit
|
||||||
SCRN.LineBufInitDLGBar
|
|
||||||
phx
|
|
||||||
ldx #SEQ.DLG.BAR-SEQS
|
|
||||||
bra SCRN.LineBufInit
|
|
||||||
SCRN.LineBufInitDLG
|
SCRN.LineBufInitDLG
|
||||||
phx
|
|
||||||
ldx #SEQ.DLG-SEQS
|
ldx #SEQ.DLG-SEQS
|
||||||
bra SCRN.LineBufInit
|
bra SCRN.LineBufInit
|
||||||
SCRN.LineBufInitLBL
|
SCRN.LineBufInitLBL
|
||||||
phx
|
|
||||||
ldx #SEQ.DLG.LBL-SEQS
|
ldx #SEQ.DLG.LBL-SEQS
|
||||||
bra SCRN.LineBufInit
|
bra SCRN.LineBufInit
|
||||||
SCRN.LineBufInitTB
|
SCRN.LineBufInitTB
|
||||||
phx
|
|
||||||
ldx #SEQ.DLG.TB-SEQS
|
ldx #SEQ.DLG.TB-SEQS
|
||||||
bra SCRN.LineBufInit
|
bra SCRN.LineBufInit
|
||||||
SCRN.LineBufInitBut
|
SCRN.LineBufInitBut
|
||||||
phx
|
|
||||||
ldx #SEQ.DLG.BUT-SEQS
|
ldx #SEQ.DLG.BUT-SEQS
|
||||||
bra SCRN.LineBufInit
|
bra SCRN.LineBufInit
|
||||||
SCRN.LineBufInitEdit
|
SCRN.LineBufInitEdit
|
||||||
phx
|
|
||||||
ldx #SEQ.EDIT-SEQS
|
ldx #SEQ.EDIT-SEQS
|
||||||
|
|
||||||
SCRN.LineBufInit
|
SCRN.LineBufInit
|
||||||
>LDYA.G LineBufBase
|
>LDYA.G LineBufBase
|
||||||
>STYA LineBufPtr
|
>STYA LineBufPtr
|
||||||
|
|
||||||
jsr SCRN.SEQS.ToLineBuf
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.SEQS.ToLineBuf
|
SCRN.SEQS.ToLineBuf
|
||||||
lda SEQS,x
|
lda SEQS,x
|
||||||
|
@ -597,6 +595,7 @@ SCRN.SEQS.ToLineBuf
|
||||||
inx
|
inx
|
||||||
lda SEQS,x
|
lda SEQS,x
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCRN.LineBufGotoLineY
|
SCRN.LineBufGotoLineY
|
||||||
|
@ -625,6 +624,7 @@ SCRN.LineBufSprintf
|
||||||
SCRN.ToLineBuf sta (LineBufPtr)
|
SCRN.ToLineBuf sta (LineBufPtr)
|
||||||
inc LineBufPtr
|
inc LineBufPtr
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
inc LineBufPtr+1
|
inc LineBufPtr+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -69,7 +69,7 @@ L.SEQ.SCROLLUP .DA SEQ.SCROLLUP
|
||||||
L.SEQ.SCROLLDN .DA SEQ.SCROLLDN
|
L.SEQ.SCROLLDN .DA SEQ.SCROLLDN
|
||||||
L.SEQ.SCROLLCURUP .DA SEQ.SCROLLCURUP
|
L.SEQ.SCROLLCURUP .DA SEQ.SCROLLCURUP
|
||||||
L.SEQ.SCROLLCURDN .DA SEQ.SCROLLCURDN
|
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.TERMCAP .DA MSG.TERMCAP
|
||||||
L.MSG.TOPBAR .DA MSG.TOPBAR
|
L.MSG.TOPBAR .DA MSG.TOPBAR
|
||||||
L.MSG.FILETYPES .DA MSG.TXTCR
|
L.MSG.FILETYPES .DA MSG.TXTCR
|
||||||
|
@ -147,18 +147,13 @@ CS.INIT.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >PUSHW L.MSG.TERMCAP
|
CS.RUN >PUSHW L.MSG.TERMCAP
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF Send Query for term W & H
|
>SYSCALL PrintF Send Query for term W & H
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
.1 jsr IO.GetCh
|
.1 jsr IO.GetCh
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
* beq .11
|
>LDA.G ScreenW Wait for Response from terminal for W & H
|
||||||
|
|
||||||
* >SYSCALL PutChar
|
|
||||||
* bcs CS.INIT.RTS
|
|
||||||
|
|
||||||
.11 >LDA.G ScreenW Wait for Response from terminal for W & H
|
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
jsr SCRN.Init
|
jsr SCRN.Init
|
||||||
|
@ -260,7 +255,6 @@ CS.DOEVENT lda (pEvent)
|
||||||
asl
|
asl
|
||||||
bpl .9
|
bpl .9
|
||||||
|
|
||||||
>STA.G bUpdateTop
|
|
||||||
>STA.G bUpdateStatus
|
>STA.G bUpdateStatus
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
|
@ -304,16 +298,25 @@ CS.QUIT ldy #hLineBuf
|
||||||
CS.END
|
CS.END
|
||||||
SEQS .EQ *
|
SEQS .EQ *
|
||||||
SEQ.BAR .CZ "\e[7m\e[37;40m"
|
SEQ.BAR .CZ "\e[7m\e[37;40m"
|
||||||
SEQ.DLG.BAR .CS "\e[0m\e[37;40m"
|
SEQ.DLG.TBAR .CS "\e[0m\e[93;104m"
|
||||||
.DA #C.SO,#'x',#C.SI
|
.DA #C.SO,#'l',#C.SI
|
||||||
.CZ "\e[7m\e[37;40m"
|
.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 #C.SO,#'x',#C.SI
|
||||||
.DA #0
|
.DA #0
|
||||||
SEQ.DLG.VBAR .CS "\e[37;40m"
|
SEQ.DLG.VBAR .CS "\e[93;104m"
|
||||||
.DA #C.SO,#'x',#C.SI
|
.DA #C.SO,#'x',#C.SI
|
||||||
.DA #0
|
.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.TB .CZ "\e[0m\e[93;44m"
|
||||||
SEQ.DLG.BUT .CZ "\e[7m\e[93;44m"
|
SEQ.DLG.BUT .CZ "\e[7m\e[93;44m"
|
||||||
SEQ.EDIT .CS "\e[0m\e[93;44m" +CEOL
|
SEQ.EDIT .CS "\e[0m\e[93;44m" +CEOL
|
||||||
|
@ -323,12 +326,16 @@ SEQ.INV .CZ "\e[7m"
|
||||||
SEQ.CURSAVE .CZ "\e7"
|
SEQ.CURSAVE .CZ "\e7"
|
||||||
SEQ.CURRESTORE .CZ "\e8"
|
SEQ.CURRESTORE .CZ "\e8"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SEQ.RESET .CZ "\ec"
|
SEQ.INIT .CS "\ec"
|
||||||
SEQ.INIT .CS "\ec\e(B\e)0"
|
.CS "\e(B" font select
|
||||||
SEQ.SCROLLRGN .CZ "\e[?7l\e[2;%dr"
|
.CS "\e)0" font select
|
||||||
SEQ.SCROLLCURUP .CS "\e[?7l\e[%d;%dr"
|
.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.SCROLLUP .CZ "\eD"
|
||||||
SEQ.SCROLLCURDN .CS "\e[?7l\e[%d;%dr"
|
SEQ.SCROLLCURDN .CS "\e[%d;%dr"
|
||||||
SEQ.SCROLLDN .CZ "\eM"
|
SEQ.SCROLLDN .CZ "\eM"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.TERMCAP .CZ "\r\n\e[999;999H\e[6n"
|
MSG.TERMCAP .CZ "\r\n\e[999;999H\e[6n"
|
||||||
|
@ -371,7 +378,7 @@ MSG.HELP .PS "All commands:"
|
||||||
MSG.NEWFILE .AZ "newfile"
|
MSG.NEWFILE .AZ "newfile"
|
||||||
EscChars .AS "DABC"
|
EscChars .AS "DABC"
|
||||||
EscChars.Cnt .EQ *-EscChars
|
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.Size .EQ 0
|
||||||
S.DLG.X .EQ 1
|
S.DLG.X .EQ 1
|
||||||
|
@ -495,7 +502,7 @@ bEscMode .BS 1
|
||||||
bCSIMode .BS 1
|
bCSIMode .BS 1
|
||||||
bExit .BS 1
|
bExit .BS 1
|
||||||
bUnSaved .BS 1
|
bUnSaved .BS 1
|
||||||
bUpdateTop .BS 1
|
|
||||||
bUpdateStatus .BS 1
|
bUpdateStatus .BS 1
|
||||||
|
|
||||||
hFileName .BS 1
|
hFileName .BS 1
|
||||||
|
|
|
@ -14,9 +14,8 @@ CL.READN0X >PUSHW ZPCLBuf
|
||||||
>PUSHBI 1
|
>PUSHBI 1
|
||||||
>SYSCALL SPrintF
|
>SYSCALL SPrintF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #$ff
|
dec CL.bReady
|
||||||
sta CL.bReady
|
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -39,14 +38,15 @@ CL.CHARIN tax
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
.8 rts invalid \e[ sequence
|
.8 clc
|
||||||
|
rts invalid \e[ sequence
|
||||||
|
|
||||||
.2 lda CL.MaxCnt
|
.2 lda CL.MaxCnt
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
lda EscChars.Remap,x
|
lda EscChars.Remap,x
|
||||||
bra CL.READN0A
|
bra CL.READN0A
|
||||||
|
|
||||||
.3 txa
|
.3 txa
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
|
@ -63,7 +63,7 @@ CL.CHARIN tax
|
||||||
|
|
||||||
.5 lda CL.MaxCnt
|
.5 lda CL.MaxCnt
|
||||||
beq CL.READN0X
|
beq CL.READN0X
|
||||||
|
|
||||||
cpx #C.SPACE
|
cpx #C.SPACE
|
||||||
bcc CL.CHARIN.CTRL
|
bcc CL.CHARIN.CTRL
|
||||||
|
|
||||||
|
@ -74,12 +74,11 @@ CL.CHARIN tax
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
lda CL.Len
|
lda CL.Len
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
lda CL.Ptr
|
lda CL.Ptr
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
lda #C.BS
|
jsr CL.BS.OUT
|
||||||
>SYSCALL PutChar
|
|
||||||
|
|
||||||
dec CL.Ptr
|
dec CL.Ptr
|
||||||
jmp CL.DEL
|
jmp CL.DEL
|
||||||
|
@ -101,26 +100,30 @@ CL.Insert ldy CL.Len
|
||||||
|
|
||||||
txa
|
txa
|
||||||
sta (ZPCLBuf),y
|
sta (ZPCLBuf),y
|
||||||
inc CL.Ptr
|
|
||||||
|
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
inc CL.Ptr
|
||||||
|
|
||||||
jsr CL.PrintEOL
|
jsr CL.PrintEOL
|
||||||
|
bcs .9
|
||||||
|
|
||||||
lda CL.MaxCnt
|
lda CL.MaxCnt
|
||||||
dec MaxCnt = 1, don't wait for CR
|
dec MaxCnt = 1, don't wait for CR
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda #$ff
|
dec CL.bReady
|
||||||
sta CL.bReady
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.CHARIN.CTRL cpx #C.CR
|
CL.CHARIN.CTRL cpx #C.CR
|
||||||
beq .8
|
beq .70
|
||||||
|
|
||||||
cpx #C.EOF
|
cpx #C.EOF
|
||||||
beq .9
|
beq .71
|
||||||
|
|
||||||
cpx #3 Ctrl-C
|
cpx #3 Ctrl-C
|
||||||
beq CL.CLR
|
beq CL.CLR
|
||||||
|
@ -134,14 +137,13 @@ CL.CHARIN.CTRL cpx #C.CR
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
jmp CL.SUPPR
|
jmp CL.SUPPR
|
||||||
|
|
||||||
.8 jsr CheckLFAfterCR
|
.70 jsr CheckLFAfterCR
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #$ff
|
.71 dec CL.bReady
|
||||||
sta CL.bReady
|
|
||||||
|
|
||||||
clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.CLR lda (ZPCLBuf)
|
CL.CLR lda (ZPCLBuf)
|
||||||
|
@ -151,12 +153,12 @@ CL.CLR lda (ZPCLBuf)
|
||||||
cmp CL.Len
|
cmp CL.Len
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
inc
|
inc CL.Ptr
|
||||||
sta CL.Ptr
|
|
||||||
|
|
||||||
lda #C.FS
|
jsr CL.FS.OUT
|
||||||
>SYSCALL PutChar
|
bcc .1
|
||||||
bra .1
|
|
||||||
|
rts
|
||||||
|
|
||||||
.2 ldy #0
|
.2 ldy #0
|
||||||
|
|
||||||
|
@ -170,9 +172,9 @@ CL.CLR lda (ZPCLBuf)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.Reset lda #0
|
CL.Reset lda #0
|
||||||
sta (ZPCLBuf)
|
sta (ZPCLBuf)
|
||||||
|
|
||||||
CL.Reset.1 ldx #CL.Ptr
|
CL.Reset.1 ldx #CL.Ptr
|
||||||
|
|
||||||
.1 stz 0,x
|
.1 stz 0,x
|
||||||
inx
|
inx
|
||||||
cpx #CL.bEscMode+1
|
cpx #CL.bEscMode+1
|
||||||
|
@ -181,38 +183,45 @@ CL.Reset.1 ldx #CL.Ptr
|
||||||
>LDYA ZPCLBuf
|
>LDYA ZPCLBuf
|
||||||
>STYA ZPCLBufPtr
|
>STYA ZPCLBufPtr
|
||||||
|
|
||||||
|
CL.Reset.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.BS lda CL.Ptr
|
CL.BS lda CL.Ptr
|
||||||
beq .9
|
beq CL.Reset.8
|
||||||
|
|
||||||
dec CL.Ptr
|
dec CL.Ptr
|
||||||
|
|
||||||
lda #C.BS
|
CL.BS.OUT lda #C.BS
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
.9 rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.NAK lda CL.Ptr
|
CL.FS lda CL.Ptr
|
||||||
cmp CL.Len
|
cmp CL.Len
|
||||||
beq .9
|
beq CL.Reset.8
|
||||||
|
|
||||||
inc
|
inc
|
||||||
sta CL.Ptr
|
sta CL.Ptr
|
||||||
|
|
||||||
lda #C.FS
|
CL.FS.OUT lda #C.ESC
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
.9 rts
|
lda #'['
|
||||||
|
>SYSCALL PutChar
|
||||||
|
|
||||||
|
lda #'C'
|
||||||
|
>SYSCALL PutChar
|
||||||
|
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Erase char UNDER cursor
|
* Erase char UNDER cursor
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.SUPPR lda CL.Len
|
CL.SUPPR lda CL.Len
|
||||||
beq CL.PrintEOL.8
|
beq CL.Reset.8
|
||||||
|
|
||||||
lda CL.Ptr
|
lda CL.Ptr
|
||||||
cmp CL.Len
|
cmp CL.Len
|
||||||
beq CL.PrintEOL.8
|
beq CL.Reset.8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.DEL ldy CL.Ptr
|
CL.DEL ldy CL.Ptr
|
||||||
|
|
||||||
|
@ -226,38 +235,42 @@ CL.DEL ldy CL.Ptr
|
||||||
|
|
||||||
dec CL.Len
|
dec CL.Len
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.PrintEOL lda CL.Ptr
|
CL.PrintEOL ldy CL.Ptr
|
||||||
|
|
||||||
.1 cmp CL.Len
|
.1 cpy CL.Len
|
||||||
beq .2
|
beq .8
|
||||||
|
|
||||||
pha
|
phy
|
||||||
tay
|
|
||||||
lda (ZPCLBuf),y
|
lda (ZPCLBuf),y
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
pla
|
ply
|
||||||
inc
|
bcs .9
|
||||||
|
|
||||||
|
iny
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 lda #C.SPACE
|
.2 lda #C.SPACE
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
lda CL.Ptr
|
bcs .9
|
||||||
|
|
||||||
.3 cmp CL.Len
|
jsr CL.BS.OUT
|
||||||
beq .4
|
bcs .9
|
||||||
|
|
||||||
pha
|
ldy CL.Ptr
|
||||||
lda #C.BS
|
|
||||||
>SYSCALL PutChar
|
.3 cpy CL.Len
|
||||||
pla
|
beq .8
|
||||||
inc
|
|
||||||
|
phy
|
||||||
|
jsr CL.BS.OUT
|
||||||
|
ply
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
iny
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.4 lda #C.BS
|
|
||||||
>SYSCALL PutChar
|
|
||||||
|
|
||||||
CL.PrintEOL.8 clc
|
.8 clc
|
||||||
rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.Print ldy #S.PS.hStdOut
|
CL.Print ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
|
|
@ -101,7 +101,7 @@ L.FMT.int32 .DA FMT.int32
|
||||||
J.ESC .DA CL.BS left arrow
|
J.ESC .DA CL.BS left arrow
|
||||||
.DA HIS.GetNext
|
.DA HIS.GetNext
|
||||||
.DA HIS.GetPrev
|
.DA HIS.GetPrev
|
||||||
.DA CL.NAK right arrow
|
.DA CL.FS right arrow
|
||||||
L.KEYWORDS .DA KEYWORDS
|
L.KEYWORDS .DA KEYWORDS
|
||||||
I.KEYWORDS .DA GFX.TEXT
|
I.KEYWORDS .DA GFX.TEXT
|
||||||
.DA GFX.GR
|
.DA GFX.GR
|
||||||
|
@ -411,8 +411,8 @@ CS.RUN.LOOP >SLEEP
|
||||||
.7 cmp #MLI.E.EOF
|
.7 cmp #MLI.E.EOF
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #3
|
cmp #24 Ctrl-X
|
||||||
beq .99
|
beq .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
>LDA.G hFile
|
>LDA.G hFile
|
||||||
|
@ -461,10 +461,11 @@ CS.FORTH.Run jsr CL.Reset
|
||||||
.1 >SYSCALL GetChar
|
.1 >SYSCALL GetChar
|
||||||
bcs .9 I/O error
|
bcs .9 I/O error
|
||||||
|
|
||||||
.2 cmp #3 Ctrl-C
|
.2 cmp #24 Ctrl-X
|
||||||
beq .9 CS
|
beq .9 CS
|
||||||
|
|
||||||
jsr CL.CHARIN
|
jsr CL.CHARIN
|
||||||
|
bcs .9
|
||||||
|
|
||||||
bit CL.bReady Something to execute ?
|
bit CL.bReady Something to execute ?
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -938,7 +939,7 @@ OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EscChars .AS 'DBAC'
|
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,#21
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KEYWORDS .AT "TEXT"
|
KEYWORDS .AT "TEXT"
|
||||||
.AT "GR"
|
.AT "GR"
|
||||||
|
|
|
@ -165,7 +165,9 @@ CS.RUN.LOOP0 jsr CS.Scr.SetStatusConn
|
||||||
jsr CS.Scr.SetBuf
|
jsr CS.Scr.SetBuf
|
||||||
jsr CS.Scr.SetStatusOkErr
|
jsr CS.Scr.SetStatusOkErr
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.LOOP lda hSCR
|
CS.RUN.LOOP >SLEEP
|
||||||
|
|
||||||
|
lda hSCR
|
||||||
>LIBCALL hLIBTUI,LIBTUI.Exec
|
>LIBCALL hLIBTUI,LIBTUI.Exec
|
||||||
bcs CS.RUN.LOOP.9
|
bcs CS.RUN.LOOP.9
|
||||||
|
|
||||||
|
|
|
@ -980,8 +980,15 @@ CS.RUN.CHARIN.RIGHT
|
||||||
inc
|
inc
|
||||||
sta TextPtr
|
sta TextPtr
|
||||||
|
|
||||||
lda #C.FS
|
lda #C.ESC
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
|
lda #'['
|
||||||
|
>SYSCALL PutChar
|
||||||
|
|
||||||
|
lda #'C'
|
||||||
|
>SYSCALL PutChar
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT lda (pEvent)
|
CS.DOEVENT lda (pEvent)
|
||||||
|
@ -1054,7 +1061,7 @@ MSG.NULL .HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EscChars .AS 'DBAC'
|
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,#21
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IRC.REP.NOIDENT .AZ "*** No Ident response"
|
IRC.REP.NOIDENT .AZ "*** No Ident response"
|
||||||
IRC.REP.JOIN .AZ "JOIN"
|
IRC.REP.JOIN .AZ "JOIN"
|
||||||
|
|
|
@ -113,12 +113,12 @@ DumpFD.BDEV >PUSHW L.MSG.DEV
|
||||||
adc /S.FD.DEV
|
adc /S.FD.DEV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
ldy #S.FD.DEV.DRVPTR+1
|
ldy #S.FD.DEV.BUSPTR+1
|
||||||
>PUSHB (ZPFDPtr),y
|
>PUSHB (ZPFDPtr),y
|
||||||
dey
|
dey
|
||||||
>PUSHB (ZPFDPtr),y
|
>PUSHB (ZPFDPtr),y
|
||||||
|
|
||||||
>PUSHBI 7
|
>PUSHBI 8
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -223,6 +223,17 @@ DumpFD.PIPE >PUSHW L.MSG.PIPE
|
||||||
DumpFD.T ldx Index
|
DumpFD.T ldx Index
|
||||||
>PUSHB hFDs,x
|
>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
|
lda (ZPFDPtr) S.FD.T
|
||||||
tax
|
tax
|
||||||
>PUSHW L.FD.T,x
|
>PUSHW L.FD.T,x
|
||||||
|
@ -246,10 +257,10 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 .CZ "hFD Type Name Addr Status Typ/Sub IDString Version Size (BLK)"
|
MSG0 .CZ "hFD ID Type Name Addr Status TP.ST IDString Version Size (BLK)"
|
||||||
MSG.DEV .CZ "%3d %4s %12s %H "
|
MSG.DEV .CZ "%3d %h %4s %12s %H "
|
||||||
MSG.DEV.ERR .CZ "[%h] Device Error.\r\n"
|
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.B .CZ "%10u\r\n"
|
||||||
MSG.DEV.C .CZ "n/a\r\n"
|
MSG.DEV.C .CZ "n/a\r\n"
|
||||||
MSG.PIPE .CZ "%3d %5s %s\r\n"
|
MSG.PIPE .CZ "%3d %5s %s\r\n"
|
||||||
|
|
210
BIN/SH.S.CL.txt
210
BIN/SH.S.CL.txt
|
@ -54,20 +54,21 @@ CL.CHARIN tax
|
||||||
sta (pData),y Y=bEscMode
|
sta (pData),y Y=bEscMode
|
||||||
txa
|
txa
|
||||||
|
|
||||||
ldx #EscChars.Cnt-1
|
ldx #IN.EscCharsCnt-1
|
||||||
|
|
||||||
.1 cmp EscChars,x
|
.1 cmp IN.EscChars,x
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
.8 rts invalid \e[ sequence
|
.8 clc
|
||||||
|
rts invalid \e[ sequence
|
||||||
|
|
||||||
.2 >LDA.G CL.MaxCnt
|
.2 >LDA.G CL.MaxCnt
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
lda EscChars.Remap,x
|
lda IN.EscCodes,x
|
||||||
bra CL.READN0A
|
bra CL.READN0A
|
||||||
|
|
||||||
.3 txa
|
.3 txa
|
||||||
|
@ -103,10 +104,15 @@ CL.CHARIN tax
|
||||||
>LDA.G CL.bSilent
|
>LDA.G CL.bSilent
|
||||||
bmi .6
|
bmi .6
|
||||||
|
|
||||||
lda #C.BS
|
jsr CL.BS.OUT
|
||||||
|
|
||||||
|
lda #C.SPACE
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
|
jsr CL.BS.OUT
|
||||||
|
|
||||||
.6 >DEC.G CL.Ptr
|
.6 >DEC.G CL.Ptr
|
||||||
|
|
||||||
jmp CL.DEL
|
jmp CL.DEL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.Insert >LDA.G CL.Len
|
CL.Insert >LDA.G CL.Len
|
||||||
|
@ -163,17 +169,18 @@ CL.CHARIN.CTRL cpx #C.CR
|
||||||
cpx #C.EOF
|
cpx #C.EOF
|
||||||
beq .19
|
beq .19
|
||||||
|
|
||||||
cpx #3 Ctrl-C
|
|
||||||
beq CL.CLR
|
|
||||||
|
|
||||||
cpx #C.TAB
|
cpx #C.TAB
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jmp HIS.Select
|
jmp HIS.Select
|
||||||
|
|
||||||
.1 cpx #26 Ctrl-Z
|
.1 cpx #26 Ctrl-Z
|
||||||
|
beq CL.SUPPR
|
||||||
|
|
||||||
|
cpx #3 Ctrl-C
|
||||||
bne .8
|
bne .8
|
||||||
jmp CL.SUPPR
|
|
||||||
|
jmp CL.CLR
|
||||||
|
|
||||||
.18 jsr CheckLFAfterCR Check for any extra LF
|
.18 jsr CheckLFAfterCR Check for any extra LF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -184,6 +191,98 @@ CL.CHARIN.CTRL cpx #C.CR
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.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 >STZ.G HIS.Ptr
|
||||||
|
|
||||||
CL.CLR.1 lda (ZPCLBuf)
|
CL.CLR.1 lda (ZPCLBuf)
|
||||||
|
@ -198,8 +297,8 @@ CL.CLR.1 lda (ZPCLBuf)
|
||||||
|
|
||||||
inc
|
inc
|
||||||
>STA.G CL.Ptr
|
>STA.G CL.Ptr
|
||||||
lda #C.FS
|
|
||||||
>SYSCALL PutChar
|
jsr CL.FS.OUT
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 ldy #0
|
.2 ldy #0
|
||||||
|
@ -239,95 +338,6 @@ CL.ReadReset lda #$ff
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
rts
|
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
|
MAN
|
||||||
SAVE usr/src/bin/sh.s.cl
|
SAVE usr/src/bin/sh.s.cl
|
||||||
LOAD usr/src/bin/sh.s
|
LOAD usr/src/bin/sh.s
|
||||||
|
|
|
@ -171,6 +171,7 @@ CMD.CD.YA >PUSHYA
|
||||||
>PUSHWZ Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs CMD.POPD.RTS
|
bcs CMD.POPD.RTS
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
stx ZPTmpW Save hMem
|
stx ZPTmpW Save hMem
|
||||||
|
|
||||||
|
@ -563,6 +564,7 @@ CMD.REN lda (ZPArgVBufPtr)
|
||||||
|
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
stx ZPTmpW+1
|
stx ZPTmpW+1
|
||||||
|
|
||||||
|
@ -630,6 +632,7 @@ CMD.FUNCTION lda (ZPArgVBufPtr)
|
||||||
|
|
||||||
jsr CORE.ArgV.Next nothing after function name
|
jsr CORE.ArgV.Next nothing after function name
|
||||||
beq .10
|
beq .10
|
||||||
|
|
||||||
cmp #'{'
|
cmp #'{'
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
|
@ -1109,6 +1112,7 @@ CMD.NEXT.LIST.TOKEN
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.10 jsr GetPtr1NextChar
|
.10 jsr GetPtr1NextChar
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
|
@ -1117,11 +1121,13 @@ CMD.NEXT.LIST.TOKEN
|
||||||
|
|
||||||
sta (ZPCLBuf),y
|
sta (ZPCLBuf),y
|
||||||
iny
|
iny
|
||||||
|
|
||||||
.1 jsr GetPtr1NextChar
|
.1 jsr GetPtr1NextChar
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
sta (ZPCLBuf),y
|
sta (ZPCLBuf),y
|
||||||
iny
|
iny
|
||||||
bra .1
|
bra .1
|
||||||
|
|
25
BIN/SH.S.txt
25
BIN/SH.S.txt
|
@ -130,13 +130,14 @@ L.MSG.BATCHERR .DA MSG.BATCHERR
|
||||||
L.MSG.ERROR .DA MSG.ERROR
|
L.MSG.ERROR .DA MSG.ERROR
|
||||||
L.MSG.PID .DA MSG.PID
|
L.MSG.PID .DA MSG.PID
|
||||||
L.MSG.ALIAS .DA MSG.ALIAS
|
L.MSG.ALIAS .DA MSG.ALIAS
|
||||||
|
L.MSG.FS .DA MSG.FS
|
||||||
L.FMT.DATE .DA FMT.DATE
|
L.FMT.DATE .DA FMT.DATE
|
||||||
L.FMT.Long .DA FMT.Long
|
L.FMT.Long .DA FMT.Long
|
||||||
L.FMT.Byte .DA FMT.Byte
|
L.FMT.Byte .DA FMT.Byte
|
||||||
J.ESC .DA CL.BS left arrow
|
J.ESC .DA CL.BS
|
||||||
.DA HIS.GetPrev up
|
.DA HIS.GetPrev up
|
||||||
.DA HIS.GetNext down
|
.DA HIS.GetNext down
|
||||||
.DA CL.NAK right
|
.DA CL.FS
|
||||||
L.CD.. .DA CD..
|
L.CD.. .DA CD..
|
||||||
L.IN .DA IN
|
L.IN .DA IN
|
||||||
L.CMD .DA CMD
|
L.CMD .DA CMD
|
||||||
|
@ -623,6 +624,7 @@ MSG.ERROR .CS "[$%h]:%s."
|
||||||
MSG.ECHOCRLF .CZ "\r\n"
|
MSG.ECHOCRLF .CZ "\r\n"
|
||||||
MSG.PID .CZ "PID=%d\r\n"
|
MSG.PID .CZ "PID=%d\r\n"
|
||||||
MSG.ALIAS .CZ '%s = "%s"\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.DATE .AZ "%A, %B %d %Y %H:%M:%S"
|
||||||
FMT.Long .AZ "%L"
|
FMT.Long .AZ "%L"
|
||||||
|
@ -634,9 +636,22 @@ PS1 .AZ "${PS1}"
|
||||||
HOME .AZ "${HOME}"
|
HOME .AZ "${HOME}"
|
||||||
EXECC .AZ "%s -C %s"
|
EXECC .AZ "%s -C %s"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EscChars .AS "DABC"
|
IN.EscChars .AS "DABC"
|
||||||
EscChars.Cnt .EQ *-EscChars
|
IN.EscCharsCnt .EQ *-EscChars
|
||||||
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
|
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 ".."
|
CD.. .AZ ".."
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -147,7 +147,6 @@ C.SO .EQ 14
|
||||||
C.SI .EQ 15
|
C.SI .EQ 15
|
||||||
C.XON .EQ 17
|
C.XON .EQ 17
|
||||||
C.XOFF .EQ 19
|
C.XOFF .EQ 19
|
||||||
C.FS .EQ 21
|
|
||||||
C.ESC .EQ 27
|
C.ESC .EQ 27
|
||||||
C.SPACE .EQ 32
|
C.SPACE .EQ 32
|
||||||
C.DEL .EQ 127
|
C.DEL .EQ 127
|
||||||
|
|
|
@ -180,22 +180,23 @@ S.SOCKET.TCP.S.TIMEWT .EQ 11
|
||||||
S.SOCKET.TCP.O .EQ S.SOCKET+1
|
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.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.INACKNUM .EQ S.SOCKET+6
|
||||||
S.SOCKET.TCP.OUTSENTSEQ .EQ S.SOCKET+10 Send:SEQ sent not yet ACKed (retransmit)
|
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.INTAIL .EQ S.SOCKET+18
|
||||||
S.SOCKET.TCP.INHEAD .EQ S.SOCKET+16
|
S.SOCKET.TCP.INHEAD .EQ S.SOCKET+20
|
||||||
S.SOCKET.TCP.INFREE .EQ S.SOCKET+18
|
S.SOCKET.TCP.INFREE .EQ S.SOCKET+22
|
||||||
S.SOCKET.TCP.INUSED .EQ S.SOCKET+20
|
S.SOCKET.TCP.INUSED .EQ S.SOCKET+24
|
||||||
*
|
*
|
||||||
S.SOCKET.TCP.OUTTAIL .EQ S.SOCKET+22
|
S.SOCKET.TCP.OUTTAIL .EQ S.SOCKET+26
|
||||||
S.SOCKET.TCP.OUTTAILSENT .EQ S.SOCKET+24
|
S.SOCKET.TCP.OUTTAILSENT .EQ S.SOCKET+28
|
||||||
S.SOCKET.TCP.OUTHEAD .EQ S.SOCKET+26
|
S.SOCKET.TCP.OUTHEAD .EQ S.SOCKET+30
|
||||||
S.SOCKET.TCP.OUTFREE .EQ S.SOCKET+28
|
S.SOCKET.TCP.OUTFREE .EQ S.SOCKET+32
|
||||||
S.SOCKET.TCP.OUTTOSEND .EQ S.SOCKET+30
|
S.SOCKET.TCP.OUTTOSEND .EQ S.SOCKET+34
|
||||||
S.SOCKET.TCP.OUTUSED .EQ S.SOCKET+32
|
S.SOCKET.TCP.OUTUSED .EQ S.SOCKET+36
|
||||||
*
|
*
|
||||||
S.SOCKET.TCP .EQ S.SOCKET+34
|
S.SOCKET.TCP .EQ S.SOCKET+38
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE inc/libtcpip.i
|
SAVE inc/libtcpip.i
|
||||||
|
|
|
@ -333,16 +333,16 @@ SKT.shutdown pha
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.S
|
ldy #S.SOCKET.TCP.S
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
cmp #S.SOCKET.TCP.S.CLOSING
|
cmp #S.SOCKET.TCP.S.CLWAIT
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
inc S.SOCKET.TCP.S.TIMEWT
|
lda #S.SOCKET.TCP.S.TIMEWT
|
||||||
|
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
pla
|
pla
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
.10 pla
|
.10 pla
|
||||||
jsr SKT.GetTCB
|
jsr SKT.GetTCB
|
||||||
ldy #S.SOCKET.TCP.S
|
ldy #S.SOCKET.TCP.S
|
||||||
|
@ -350,15 +350,15 @@ SKT.shutdown pha
|
||||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr SKT.SendOptFIN
|
jsr SKT.OUT.SendFINACK
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.FINWT1
|
lda #S.SOCKET.TCP.S.FINWT1
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
.1 cmp #S.SOCKET.TCP.S.CLWAIT
|
.1 cmp #S.SOCKET.TCP.S.FINWT2
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
jsr SKT.SendOptFIN
|
jsr SKT.OUT.SendFINACK
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.LASTACK
|
lda #S.SOCKET.TCP.S.LASTACK
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
@ -390,19 +390,6 @@ SKT.shutdown.HQ jsr SKT.GetFromQueue
|
||||||
>SYSCALL2 freemem
|
>SYSCALL2 freemem
|
||||||
* clc
|
* clc
|
||||||
rts
|
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)
|
* # Read (STREAM)
|
||||||
* ## C
|
* ## C
|
||||||
|
@ -419,12 +406,14 @@ SKT.SendOptFIN lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.Read jsr SKT.PullhFDDataInPtrLen
|
SKT.Read jsr SKT.PullhFDDataInPtrLen
|
||||||
|
|
||||||
|
jsr SKT.GetTCB
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.INUSED
|
ldy #S.SOCKET.TCP.INUSED
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
tax
|
tax
|
||||||
iny
|
iny
|
||||||
ora (ZPPtrSKT),y
|
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
|
cpx ZPDataInLen XA = Data in pipe
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
@ -436,13 +425,6 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
|
||||||
sta ZPDataInLen+1
|
sta ZPDataInLen+1
|
||||||
bra SKT.GetDataFromSktIn
|
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
|
.8 jsr SKT.CheckStream
|
||||||
bcs .99 I/O error
|
bcs .99 I/O error
|
||||||
|
|
||||||
|
@ -457,7 +439,6 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
|
||||||
* Y,A = bytes read
|
* Y,A = bytes read
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.GetDataFromSktIn
|
SKT.GetDataFromSktIn
|
||||||
jsr SKT.GetTCB
|
|
||||||
ldy #S.SOCKET.SQ.hInMem
|
ldy #S.SOCKET.SQ.hInMem
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
.DO AUXPIPE=1
|
.DO AUXPIPE=1
|
||||||
|
@ -473,6 +454,7 @@ SKT.GetDataFromSktIn
|
||||||
|
|
||||||
jsr SKT.GetNotDataInLen
|
jsr SKT.GetNotDataInLen
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.DO AUXPIPE=1
|
.DO AUXPIPE=1
|
||||||
jsr SKT.SetupZPCode
|
jsr SKT.SetupZPCode
|
||||||
.FIN
|
.FIN
|
||||||
|
@ -525,11 +507,15 @@ SKT.GetDataFromSktIn
|
||||||
ldx #S.SOCKET.TCP.INUSED
|
ldx #S.SOCKET.TCP.INUSED
|
||||||
jsr SKT.SubDataInLenAtSktX
|
jsr SKT.SubDataInLenAtSktX
|
||||||
|
|
||||||
jsr SKT.StoreTCB
|
lda ZPDataInLen
|
||||||
jsr TCP.SetSocketTCPO.ACK ACK=1 -> send WSIZE
|
ldy ZPDataInLen+1
|
||||||
|
ldx #S.SOCKET.TCP.INACKNUM
|
||||||
|
jsr TCP.AddAYToSktCacheAtX
|
||||||
|
|
||||||
* lda #S.TCP.OPTIONS.ACK
|
jsr SKT.StoreTCB
|
||||||
* jsr TCP.OUT.SendOptA
|
|
||||||
|
lda #S.TCP.OPTIONS.ACK
|
||||||
|
jsr TCP.SetSocketTCPO
|
||||||
|
|
||||||
>LDYA ZPDataInLen
|
>LDYA ZPDataInLen
|
||||||
clc
|
clc
|
||||||
|
@ -576,6 +562,7 @@ SKT.AddDataToSktIn
|
||||||
|
|
||||||
.2 inx
|
.2 inx
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
beq .8
|
beq .8
|
||||||
|
@ -586,10 +573,12 @@ SKT.AddDataToSktIn
|
||||||
sta (ZPTmpPtr1),y
|
sta (ZPTmpPtr1),y
|
||||||
inc ZPDataInPtr
|
inc ZPDataInPtr
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
inc ZPDataInPtr+1
|
inc ZPDataInPtr+1
|
||||||
|
|
||||||
.4 iny
|
.4 iny
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.DO AUXPIPE=1
|
.DO AUXPIPE=1
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
.FIN
|
.FIN
|
||||||
|
@ -676,6 +665,7 @@ SKT.AddDataToSktOut
|
||||||
|
|
||||||
jsr SKT.GetNotDataInLen
|
jsr SKT.GetNotDataInLen
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.1 .DO AUXPIPE=1
|
.1 .DO AUXPIPE=1
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
.FIN
|
.FIN
|
||||||
|
@ -694,6 +684,7 @@ SKT.AddDataToSktOut
|
||||||
|
|
||||||
inc ZPDataInPtr
|
inc ZPDataInPtr
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
inc ZPDataInPtr+1
|
inc ZPDataInPtr+1
|
||||||
|
|
||||||
.4 iny
|
.4 iny
|
||||||
|
@ -816,6 +807,7 @@ SKT.GetDataFromSktOut
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
inc ZPTmpPtr1+1
|
inc ZPTmpPtr1+1
|
||||||
inc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
inc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
||||||
lda SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
lda SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
||||||
|
@ -837,7 +829,7 @@ SKT.GetDataFromSktOut
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # RecvFrom (RAW,DGRAM,SEQPKT)
|
* # RecvFrom (RAW,DGRAM)
|
||||||
* ## C
|
* ## C
|
||||||
* `hMem recvfrom(hFD fd, struct sockaddr *addr);`
|
* `hMem recvfrom(hFD fd, struct sockaddr *addr);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
|
@ -874,12 +866,36 @@ SKT.Recv clc
|
||||||
cmp #S.SOCKET.T.SEQPKT
|
cmp #S.SOCKET.T.SEQPKT
|
||||||
bcc .10 RAW,DGRAM
|
bcc .10 RAW,DGRAM
|
||||||
|
|
||||||
bne .99 STREAM
|
bne .98 STREAM
|
||||||
|
|
||||||
jsr SKT.GetFromQueue SEQPKT
|
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
|
bcs .91
|
||||||
|
|
||||||
.90 lda #E.NODATA
|
.90 lda #E.NODATA
|
||||||
|
@ -887,10 +903,15 @@ SKT.Recv clc
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.98 plp
|
||||||
|
.99 lda #ERR.SKT.BAD
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
.10 jsr SKT.GetFromQueue
|
.10 jsr SKT.GetFromQueue
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
.1 plp if CS, RecvFrom
|
plp if CS, RecvFrom
|
||||||
bcc .9 CC, Recv : Exit with CC and A=hFrame
|
bcc .9 CC, Recv : Exit with CC and A=hFrame
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
@ -937,11 +958,6 @@ SKT.Recv clc
|
||||||
pla
|
pla
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.99 lda #ERR.SKT.BAD
|
|
||||||
plp
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # SendTo (RAW,DGRAM,SEQPKT)
|
* # SendTo (RAW,DGRAM,SEQPKT)
|
||||||
* ## C
|
* ## C
|
||||||
|
@ -976,6 +992,8 @@ SKT.Send jsr SKT.PullhFDDataInPtrLen
|
||||||
|
|
||||||
ldy #S.SOCKET.T
|
ldy #S.SOCKET.T
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
cmp #S.SOCKET.T.STREAM
|
||||||
|
bcs *
|
||||||
tax
|
tax
|
||||||
jmp (J.SKT.send,x)
|
jmp (J.SKT.send,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -985,12 +1003,14 @@ SKT.Send.RAW ldy #S.SOCKET.PROTO
|
||||||
>LDYA ZPDataInLen
|
>LDYA ZPDataInLen
|
||||||
jsr FRM.NewIP
|
jsr FRM.NewIP
|
||||||
bcc SKT.Send.8
|
bcc SKT.Send.8
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.Send.DGRAM ldx #S.IP.PROTOCOL.UDP
|
SKT.Send.DGRAM ldx #S.IP.PROTOCOL.UDP
|
||||||
>LDYA ZPDataInLen
|
>LDYA ZPDataInLen
|
||||||
jsr FRM.NewIP
|
jsr FRM.NewIP
|
||||||
bcs SKT.Send.9
|
bcs SKT.Send.9
|
||||||
|
|
||||||
jsr SKT.SetFrameOutTCPUDPPorts
|
jsr SKT.SetFrameOutTCPUDPPorts
|
||||||
|
|
||||||
SKT.Send.8 jsr SKT.SetFrameOutDstIP
|
SKT.Send.8 jsr SKT.SetFrameOutDstIP
|
||||||
|
@ -1478,6 +1498,7 @@ SKT.CopyDataInToOut
|
||||||
sta (ZPDataOutPtr),y
|
sta (ZPDataOutPtr),y
|
||||||
iny
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
inc ZPDataInPtr+1
|
inc ZPDataInPtr+1
|
||||||
inc ZPDataOutPtr+1
|
inc ZPDataOutPtr+1
|
||||||
bne .1
|
bne .1
|
||||||
|
|
|
@ -97,7 +97,7 @@ TCP.IN.JMP.SYNSENT
|
||||||
|
|
||||||
.9 lda #S.TCP.OPTIONS.RST
|
.9 lda #S.TCP.OPTIONS.RST
|
||||||
jsr TCP.OUT.SendOptA Send RST
|
jsr TCP.OUT.SendOptA Send RST
|
||||||
|
|
||||||
jmp TCP.IN.RST
|
jmp TCP.IN.RST
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.JMP.SYNRCVD
|
TCP.IN.JMP.SYNRCVD
|
||||||
|
@ -137,7 +137,9 @@ TCP.IN.JMP.ESTBLSH
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
and #S.TCP.OPTIONS.ACK Remote side ACKed data ?
|
and #S.TCP.OPTIONS.ACK Remote side ACKed data ?
|
||||||
beq .4
|
beq .4
|
||||||
|
*--------------------------------------
|
||||||
* Ack sent data
|
* Ack sent data
|
||||||
|
*--------------------------------------
|
||||||
ldy #S.TCP.ACKNUM+3 Get new ACK number from FrameIn...
|
ldy #S.TCP.ACKNUM+3 Get new ACK number from FrameIn...
|
||||||
ldx #3 Substract old ACK from socket
|
ldx #3 Substract old ACK from socket
|
||||||
|
|
||||||
|
@ -153,7 +155,7 @@ TCP.IN.JMP.ESTBLSH
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
bcc .70 ACK > SENT SEQ ????
|
bcc .7 ACK > SENT SEQ ????
|
||||||
|
|
||||||
lda TmpDWord+3
|
lda TmpDWord+3
|
||||||
ldx TmpDWord+2
|
ldx TmpDWord+2
|
||||||
|
@ -189,7 +191,9 @@ TCP.IN.JMP.ESTBLSH
|
||||||
sta SKT.Cache+S.SOCKET.TCP.OUTUSED+1
|
sta SKT.Cache+S.SOCKET.TCP.OUTUSED+1
|
||||||
|
|
||||||
jsr SKT.StoreTCB
|
jsr SKT.StoreTCB
|
||||||
|
*--------------------------------------
|
||||||
* Store incoming data
|
* Store incoming data
|
||||||
|
*--------------------------------------
|
||||||
.4 jsr TCP.IN.SetDataInPtrAndLen
|
.4 jsr TCP.IN.SetDataInPtrAndLen
|
||||||
lda ZPDataInLen Incoming Data in this frame ?
|
lda ZPDataInLen Incoming Data in this frame ?
|
||||||
ora ZPDataInLen+1
|
ora ZPDataInLen+1
|
||||||
|
@ -228,9 +232,6 @@ TCP.IN.JMP.ESTBLSH
|
||||||
jsr TCP.AddAYToSktCacheAtX
|
jsr TCP.AddAYToSktCacheAtX
|
||||||
|
|
||||||
jsr SKT.StoreTCB update socket
|
jsr SKT.StoreTCB update socket
|
||||||
* bra .7
|
|
||||||
|
|
||||||
.70 jsr TCP.SetSocketTCPO.ACK ...and ack data
|
|
||||||
|
|
||||||
.7 ldy #S.TCP.OPTIONS
|
.7 ldy #S.TCP.OPTIONS
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
|
@ -238,8 +239,10 @@ TCP.IN.JMP.ESTBLSH
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr TCP.IN.ACKTheFIN
|
jsr TCP.IN.ACKTheFIN
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.CLWAIT
|
jsr SKT.OUT.SendFINACK
|
||||||
|
|
||||||
|
lda #S.SOCKET.TCP.S.LASTACK
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
.8 ldy #S.SOCKET.TCP.O
|
.8 ldy #S.SOCKET.TCP.O
|
||||||
|
@ -267,16 +270,14 @@ TCP.IN.JMP.LASTACK
|
||||||
ldy #S.TCP.OPTIONS only accept ACK packet
|
ldy #S.TCP.OPTIONS only accept ACK packet
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
bit #S.TCP.OPTIONS.ACK
|
bit #S.TCP.OPTIONS.ACK
|
||||||
beq .8
|
beq TCP.IN.JMP.CLWAIT
|
||||||
|
|
||||||
|
jsr SKT.GetTCB
|
||||||
|
|
||||||
* jsr TCP.OUT.SendACK
|
* jsr TCP.OUT.SendACK
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.S
|
lda #S.SOCKET.TCP.S.CLWAIT
|
||||||
lda #S.SOCKET.TCP.S.TIMEWT
|
jmp SKT.StoreTCB.S
|
||||||
sta (ZPPtrSKT),y
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.JMP.FINWT1
|
TCP.IN.JMP.FINWT1
|
||||||
ldy #S.TCP.OPTIONS FIN sent, accept ACK or FIN/ACK packet
|
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...
|
.3 lda (ZPFrameInPtr),y Set OUTACK=SEQ+1 for new socket...
|
||||||
adc #0
|
adc #0
|
||||||
sta SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
|
sta SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
|
||||||
|
sta SKT.Cache+S.SOCKET.TCP.INACKNUM,x
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .3
|
bpl .3
|
||||||
|
@ -332,24 +334,13 @@ TCP.IN.ACKTheSYN
|
||||||
TCP.IN.ACKTheFIN
|
TCP.IN.ACKTheFIN
|
||||||
ldx #3
|
ldx #3
|
||||||
|
|
||||||
.1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
|
.1 inc SKT.Cache+S.SOCKET.TCP.INACKNUM,x
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
.2 rts
|
.2 rts
|
||||||
|
|
||||||
|
|
||||||
* ldx #3
|
|
||||||
|
|
||||||
*.3 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
|
||||||
* bne .4
|
|
||||||
|
|
||||||
* dex
|
|
||||||
* bpl .3
|
|
||||||
|
|
||||||
*.4 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.SetDataInPtrAndLen
|
TCP.IN.SetDataInPtrAndLen
|
||||||
ldy #S.IP.TOTAL.LENGTH+1
|
ldy #S.IP.TOTAL.LENGTH+1
|
||||||
|
@ -421,16 +412,24 @@ TCP.SENDCLOSE ldx #0
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||||
bne .2
|
bne .3
|
||||||
|
|
||||||
cpx #S.SOCKET.T.SEQPKT
|
cpx #S.SOCKET.T.SEQPKT
|
||||||
beq .8
|
beq .2
|
||||||
|
|
||||||
jsr SKT.GetTCB
|
|
||||||
jsr TCP.OUT
|
jsr TCP.OUT
|
||||||
bra .8
|
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
|
bne .8
|
||||||
|
|
||||||
jsr SKT.GetTCB
|
jsr SKT.GetTCB
|
||||||
|
@ -484,17 +483,20 @@ TCP.SENDCLOSE.PIPE
|
||||||
.FIN
|
.FIN
|
||||||
.8 rts
|
.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
|
ldy SKT.Cache+S.SOCKET.TCP.OUTTOSEND
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
tax
|
tax
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
* Y,A=0 : no data to send
|
* Y,A=0 : no data to send
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.O
|
ldy #S.SOCKET.TCP.O
|
||||||
lda (ZPPtrSKT),y
|
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
|
clc No data, no flag....exit
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -529,12 +531,27 @@ TCP.OUT.SEQSEND ldy #S.TCP.WINDOW
|
||||||
|
|
||||||
jmp SKT.StoreTCB exits with CC
|
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.SendACK lda #S.TCP.OPTIONS.ACK
|
||||||
|
|
||||||
TCP.OUT.SendOptA
|
TCP.OUT.SendOptA
|
||||||
jsr TCP.SetSocketTCPO
|
jsr TCP.SetSocketTCPO
|
||||||
|
|
||||||
>LDYAI 0
|
TCP.OUT.SendOpt >LDYAI 0
|
||||||
jsr TCP.NewFrame
|
jsr TCP.NewFrame
|
||||||
bcs TCP.OUT.Send.RTS
|
bcs TCP.OUT.Send.RTS
|
||||||
|
|
||||||
|
@ -552,15 +569,22 @@ TCP.OUT.SendOptA
|
||||||
ldy #S.SOCKET.TCP.O
|
ldy #S.SOCKET.TCP.O
|
||||||
lda (ZPPtrSKT),y
|
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
|
sta (ZPFrameOutPtr),y
|
||||||
bit #S.TCP.OPTIONS.ACK
|
* bit #S.TCP.OPTIONS.ACK
|
||||||
beq .2
|
* beq .2
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
ldy #S.TCP.ACKNUM+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
|
sta (ZPFrameOutPtr),y
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
|
@ -575,11 +599,11 @@ TCP.OUT.Send ldy #S.TCP.OPTIONS
|
||||||
dex
|
dex
|
||||||
bpl .3
|
bpl .3
|
||||||
|
|
||||||
clc
|
plp Get back Queue status
|
||||||
* sec DONT Queue if fail
|
|
||||||
|
|
||||||
jsr FRM.SendIP
|
jsr FRM.SendIP
|
||||||
bcs TCP.OUT.Send.RTS
|
bcs TCP.OUT.Send.RTS
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.O
|
ldy #S.SOCKET.TCP.O
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
|
@ -588,8 +612,6 @@ TCP.OUT.Send ldy #S.TCP.OPTIONS
|
||||||
TCP.OUT.Send.RTS
|
TCP.OUT.Send.RTS
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.SetSocketTCPO.ACK
|
|
||||||
lda #S.TCP.OPTIONS.ACK
|
|
||||||
TCP.SetSocketTCPO
|
TCP.SetSocketTCPO
|
||||||
ldy #S.SOCKET.TCP.O
|
ldy #S.SOCKET.TCP.O
|
||||||
ora (ZPPtrSKT),y
|
ora (ZPPtrSKT),y
|
||||||
|
|
|
@ -34,9 +34,7 @@ CTX.Init >LDYA L.SEQ.INIT
|
||||||
|
|
||||||
jsr IO.GetC.Reset
|
jsr IO.GetC.Reset
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 jsr IO.GetC
|
||||||
|
|
||||||
jsr IO.GetC
|
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
.2 ldy #S.CTX.W
|
.2 ldy #S.CTX.W
|
||||||
|
@ -50,7 +48,6 @@ CTX.Init >LDYA L.SEQ.INIT
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #80
|
lda #80
|
||||||
|
|
||||||
ldy #S.CTX.W
|
ldy #S.CTX.W
|
||||||
sta (ZPCtxPtr),y
|
sta (ZPCtxPtr),y
|
||||||
|
|
||||||
|
|
|
@ -2,26 +2,7 @@ NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.GetC ldx ZPCtxPtr
|
IO.GetC jsr IO.GetChar
|
||||||
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
|
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
tax
|
tax
|
||||||
|
@ -241,7 +222,16 @@ IO.GetC.ToBuf ldy #S.CTX.InBufPtr
|
||||||
|
|
||||||
.9 rts
|
.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
|
bcs .9
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
|
@ -261,7 +251,16 @@ IO.GetChar >SYSCALL GetChar
|
||||||
|
|
||||||
.8 lda #C.CR
|
.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
|
IO.fputs ldx ZPCtxPtr
|
||||||
phx
|
phx
|
||||||
|
|
|
@ -185,9 +185,7 @@ OBJ.Exec >PUSHA hOBJ
|
||||||
|
|
||||||
jsr LIB.GetCTX
|
jsr LIB.GetCTX
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 jsr IO.GetC
|
||||||
|
|
||||||
jsr IO.GetC
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #EV.RESIZE
|
cmp #EV.RESIZE
|
||||||
|
@ -764,7 +762,7 @@ OBJ.CurUpdPos ldy #S.OBJ.F
|
||||||
OBJ.CurOn ldy #S.OBJ.F
|
OBJ.CurOn ldy #S.OBJ.F
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
and #S.OBJ.F.bEdit
|
and #S.OBJ.F.bEdit
|
||||||
* beq .8
|
beq .8
|
||||||
|
|
||||||
ldy #S.OBJ.S
|
ldy #S.OBJ.S
|
||||||
lda (ZPObjPtr),y S.OBJ.S.bActive
|
lda (ZPObjPtr),y S.OBJ.S.bActive
|
||||||
|
@ -805,7 +803,7 @@ OBJ.CurOn ldy #S.OBJ.F
|
||||||
OBJ.CurOff ldy #S.OBJ.F
|
OBJ.CurOff ldy #S.OBJ.F
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
and #S.OBJ.F.bEdit
|
and #S.OBJ.F.bEdit
|
||||||
* beq .8
|
beq .8
|
||||||
|
|
||||||
ldy #S.OBJ.S
|
ldy #S.OBJ.S
|
||||||
lda (ZPObjPtr),y S.OBJ.S.bActive
|
lda (ZPObjPtr),y S.OBJ.S.bActive
|
||||||
|
|
|
@ -54,7 +54,7 @@ TLINE.Run ldy #S.OBJ.S
|
||||||
cmp #C.BS
|
cmp #C.BS
|
||||||
beq TLINE.RUN.BS
|
beq TLINE.RUN.BS
|
||||||
|
|
||||||
cmp #C.FS
|
cmp #21 Forward Space
|
||||||
beq TLINE.RUN.FS
|
beq TLINE.RUN.FS
|
||||||
|
|
||||||
.9 lda #0
|
.9 lda #0
|
||||||
|
|
|
@ -266,7 +266,7 @@ LIB.Destroy ldx ZPObjPtr
|
||||||
jsr OBJ.Destroy
|
jsr OBJ.Destroy
|
||||||
|
|
||||||
pla
|
pla
|
||||||
>SYSCALL FreeMem
|
>SYSCALL2 FreeMem
|
||||||
ply
|
ply
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
|
@ -280,7 +280,7 @@ LIB.Destroy ldx ZPObjPtr
|
||||||
.3 jsr .7
|
.3 jsr .7
|
||||||
|
|
||||||
pla
|
pla
|
||||||
>SYSCALL FreeMem
|
>SYSCALL2 FreeMem
|
||||||
|
|
||||||
plx
|
plx
|
||||||
stx ZPObjPtr+1
|
stx ZPObjPtr+1
|
||||||
|
@ -336,7 +336,7 @@ hLineBuf .BS 1
|
||||||
LineBuf .BS 2
|
LineBuf .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ESC.In .AS "DABC"
|
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"
|
FMT.ESCCSI.R .AZ "%d;%d"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -673,7 +673,7 @@ LDR.BlkDevScan bit RROMBNK2 write protect lc ram.
|
||||||
stz LDR.SlotDevType-1,x
|
stz LDR.SlotDevType-1,x
|
||||||
|
|
||||||
jsr LDR.CheckDiskID
|
jsr LDR.CheckDiskID
|
||||||
bcs .8 if no ProDOS device in this slot.
|
bcs .4 if no ProDOS device in this slot.
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
lda (idxl),y check last byte of $Cn rom (y = $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
|
sta LDR.driveradr+1
|
||||||
sec 2 devices
|
sec 2 devices
|
||||||
jsr LDR.AddBlkDevs
|
jsr LDR.AddBlkDevs
|
||||||
bra .7
|
bra .4
|
||||||
|
|
||||||
.2 cmp #$FF if = $FF then 13 sector disk II.
|
.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.
|
ldy #$07 check for a smartport device.
|
||||||
lda (idxl),y
|
lda (idxl),y
|
||||||
bne .3 no smartport
|
bne .3 no smartport
|
||||||
|
|
||||||
jsr LDR.AddSPDevs
|
jsr LDR.AddSPDevs
|
||||||
bra .7
|
bra .4
|
||||||
|
|
||||||
.3 ldy #$FE BLK device...
|
.3 ldy #$FE BLK device...
|
||||||
lda (idxl),y get attributes.
|
lda (idxl),y get attributes.
|
||||||
and #$03 verify it provides read and status calls.
|
and #$03 verify it provides read and status calls.
|
||||||
cmp #$03
|
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
|
jsr LDR.SetDevID
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
sta devid ->DEV LIST NIBBLE
|
|
||||||
|
|
||||||
and #$3 Device count minus 1
|
and #$3 Device count minus 1
|
||||||
inc
|
inc
|
||||||
ldx LDR.SlotIdx
|
ldx LDR.SlotIdx
|
||||||
sta LDR.SlotDevCnt-1,x
|
sta LDR.SlotDevCnt-1,x
|
||||||
|
dec LDR.SlotDevType-1,x set as BlockDeb
|
||||||
tax
|
tax
|
||||||
|
|
||||||
iny $CnFF
|
iny $CnFF
|
||||||
|
@ -726,13 +722,10 @@ LDR.BlkDevScan bit RROMBNK2 write protect lc ram.
|
||||||
cpx #2 CS if 2 devs or more
|
cpx #2 CS if 2 devs or more
|
||||||
jsr LDR.AddBlkDevs install 1 or 2 devices from this slot.
|
jsr LDR.AddBlkDevs install 1 or 2 devices from this slot.
|
||||||
|
|
||||||
.7
|
.4 dec idxl+1 next lower slot.
|
||||||
|
|
||||||
.8 dec idxl+1 next lower slot.
|
|
||||||
dec LDR.SlotIdx have all slots been checked ?
|
dec LDR.SlotIdx have all slots been checked ?
|
||||||
bne .1
|
bne .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.AddExtraDevs
|
|
||||||
* stz idxl
|
* stz idxl
|
||||||
lda #$C7
|
lda #$C7
|
||||||
sta idxl+1
|
sta idxl+1
|
||||||
|
@ -740,7 +733,7 @@ LDR.AddExtraDevs
|
||||||
lda #7
|
lda #7
|
||||||
sta LDR.SlotIdx
|
sta LDR.SlotIdx
|
||||||
|
|
||||||
.1 ldx LDR.SlotIdx
|
.5 ldx LDR.SlotIdx
|
||||||
lda LDR.SlotDevType-1,x
|
lda LDR.SlotDevType-1,x
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
|
@ -748,11 +741,17 @@ LDR.AddExtraDevs
|
||||||
cmp #3
|
cmp #3
|
||||||
bcc .8
|
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
|
.8 dec idxl+1
|
||||||
dec LDR.SlotIdx
|
dec LDR.SlotIdx
|
||||||
bne .1
|
bne .5
|
||||||
|
|
||||||
LDR.AddExtraDevs.RTS
|
LDR.AddExtraDevs.RTS
|
||||||
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
|
jsr LDR.SPStatusCall status of Cocoon : A = device = 2 for SCSI
|
||||||
|
|
||||||
.2 lda #0 set unit# = 0
|
lda #0 set unit# = 0
|
||||||
jsr LDR.SPStatusCall
|
|
||||||
|
.2 jsr LDR.SPStatusCall
|
||||||
|
|
||||||
lda LDR.SPStatusBuf Device count
|
lda LDR.SPStatusBuf Device count
|
||||||
beq LDR.AddExtraDevs.RTS no devices, so done.
|
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.
|
lda LDR.driveradr get high address of device driver.
|
||||||
sta DEVPTRS,y device driver table 1.
|
sta DEVPTRS,y device driver table 1.
|
||||||
bcc .2 branch if single drive.
|
bcc .2 branch if single drive.
|
||||||
|
|
||||||
sta DEVPTRS+16,y device driver table 2.
|
sta DEVPTRS+16,y device driver table 2.
|
||||||
|
|
||||||
.2 lda LDR.driveradr+1
|
.2 lda LDR.driveradr+1
|
||||||
sta DEVPTRS+1,y
|
sta DEVPTRS+1,y
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
sta DEVPTRS+17,y
|
sta DEVPTRS+17,y
|
||||||
|
|
||||||
.3
|
.3
|
||||||
LDR.AddBlkDevs.RTS
|
LDR.AddBlkDevs.RTS
|
||||||
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
|
LDR.AddExtraSPDevs
|
||||||
ldy #$FF get smartport address.
|
jsr LDR.SetDevID set up device attributes
|
||||||
|
|
||||||
|
iny ldy #$fe from SetDevID
|
||||||
|
|
||||||
|
* ldy #$FF
|
||||||
|
|
||||||
lda (idxl),y
|
lda (idxl),y
|
||||||
clc
|
clc
|
||||||
adc #$03 add 3 for smartport call
|
adc #$03 add 3 for smartport call
|
||||||
|
@ -876,8 +941,6 @@ LDR.AddExtraSPDevs
|
||||||
lda idxl+1
|
lda idxl+1
|
||||||
sta LDR.SPVect+2
|
sta LDR.SPVect+2
|
||||||
|
|
||||||
jsr LDR.SetDevID set up device attributes
|
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
jsr LDR.SPStatusCall do a status call on smartport itself
|
jsr LDR.SPStatusCall do a status call on smartport itself
|
||||||
|
|
||||||
|
@ -898,34 +961,10 @@ LDR.AddExtraSPDevs
|
||||||
lda LDR.SPStatusBuf is this a block device?
|
lda LDR.SPStatusBuf is this a block device?
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
jsr LDR.MountSPDevs
|
jsr LDR.FindFreeDevPtr
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
.2 inc LDR.SPStatus.U
|
jsr LDR.LCBNK1
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
tya divide index by 2
|
tya divide index by 2
|
||||||
lsr
|
lsr
|
||||||
|
@ -942,23 +981,19 @@ LDR.MountSPDevs ldx #LDR.DEVPTRS.CNT-1
|
||||||
|
|
||||||
bit RROMBNK2 write protect lc ram.
|
bit RROMBNK2 write protect lc ram.
|
||||||
|
|
||||||
inc DEVCNT
|
jsr LDR.AddY2DEVLST
|
||||||
ldx DEVCNT
|
|
||||||
tya
|
|
||||||
|
|
||||||
asl convert to DSSS0000
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
|
|
||||||
ora devid include device attributes
|
|
||||||
sta DEVLST,x in the active device list.
|
|
||||||
|
|
||||||
lda #XDOS.SPREMAP
|
lda #XDOS.SPREMAP
|
||||||
sta DEVPTRS,y device driver table 1
|
sta DEVPTRS,y
|
||||||
lda /XDOS.SPREMAP
|
lda /XDOS.SPREMAP
|
||||||
sta DEVPTRS+1,y
|
sta DEVPTRS+1,y
|
||||||
clc
|
|
||||||
rts
|
.2 inc LDR.SPStatus.U
|
||||||
|
|
||||||
|
dec LDR.DevCnt
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.SPStatusCall
|
LDR.SPStatusCall
|
||||||
sta LDR.SPStatus.U
|
sta LDR.SPStatus.U
|
||||||
|
@ -1008,6 +1043,28 @@ LDR.CheckDiskID ldy #5
|
||||||
|
|
||||||
bra .8
|
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.
|
LDR.SetDevID ldy #$FE check attributes byte.
|
||||||
|
|
||||||
lda (idxl),y
|
lda (idxl),y
|
||||||
|
@ -1018,6 +1075,19 @@ LDR.SetDevID ldy #$FE check attributes byte.
|
||||||
sta devid
|
sta devid
|
||||||
rts
|
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
|
LDR.Scr80Init phx Save LDR.MSG
|
||||||
|
|
||||||
jsr LDR.IsIIc
|
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.CNT .EQ 14
|
||||||
|
|
||||||
LDR.DEVPTRS.IDX .DA #$16 S3D2
|
LDR.DEVPTRS.IDX .DA #$16 S3D2 /RAM
|
||||||
|
.DA #$06 S3D1
|
||||||
.DA #$12 S1D2
|
.DA #$12 S1D2
|
||||||
.DA #$02 S1D1
|
.DA #$02 S1D1
|
||||||
.DA #$14 S2D2
|
.DA #$14 S2D2
|
||||||
.DA #$04 S2D1
|
.DA #$04 S2D1
|
||||||
.DA #$18 S4D2
|
.DA #$18 S4D2
|
||||||
.DA #$08 S4D1
|
.DA #$08 S4D1
|
||||||
.DA #$06 S3D1
|
|
||||||
.DA #$1A S5D2
|
.DA #$1A S5D2
|
||||||
.DA #$0A S5D1
|
.DA #$0A S5D1
|
||||||
.DA #$1C S6D2
|
.DA #$1C S6D2
|
||||||
|
|
|
@ -68,7 +68,7 @@ CS.INIT >LDYA L.LIBTUI
|
||||||
|
|
||||||
CS.INIT.RTS rts
|
CS.INIT.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init
|
CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
sta hCTX
|
sta hCTX
|
||||||
|
@ -100,9 +100,14 @@ CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.LOOP lda hSCRN
|
CS.RUN.LOOP lda hSCRN
|
||||||
>LIBCALL hLIBTUI,LIBTUI.Exec
|
>LIBCALL hLIBTUI,LIBTUI.Exec
|
||||||
bcs .9
|
bcc .10
|
||||||
|
|
||||||
|
tay
|
||||||
|
beq CS.RUN.LOOP
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
cmp #EV.RESIZE
|
.10 cmp #EV.RESIZE
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr CS.SCRN.Draw
|
jsr CS.SCRN.Draw
|
||||||
|
|
|
@ -206,8 +206,8 @@ S.DCB.TTY.bCURON .EQ 9
|
||||||
S.DCB.TTY.bTITLE .EQ 10
|
S.DCB.TTY.bTITLE .EQ 10
|
||||||
|
|
||||||
S.DCB.TTY.bNORMAL .EQ 11
|
S.DCB.TTY.bNORMAL .EQ 11
|
||||||
S.DCB.TTY.bLINEWRAP .EQ 12
|
S.DCB.TTY.bDECAWM .EQ 12
|
||||||
S.DCB.TTY.bCRLF .EQ 13
|
S.DCB.TTY.bLNM .EQ 13
|
||||||
|
|
||||||
S.DCB.TTY.bG0G1 .EQ 14
|
S.DCB.TTY.bG0G1 .EQ 14
|
||||||
S.DCB.TTY.bG0G1ALT .EQ 15
|
S.DCB.TTY.bG0G1ALT .EQ 15
|
||||||
|
|
|
@ -133,10 +133,10 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,ptr1=fd
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
lda /DRV.SmartPort
|
lda /DRV.SP
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
dey
|
dey
|
||||||
lda #DRV.SmartPort
|
lda #DRV.SP
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
|
|
||||||
.5 jsr DEV.GetPDrv
|
.5 jsr DEV.GetPDrv
|
||||||
|
|
|
@ -7,7 +7,8 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.DiskII cld
|
DRV.DiskII cld
|
||||||
cpx #IOCTL.FORMAT
|
cpx #IOCTL.FORMAT
|
||||||
bcs DRV.RamDrive.9
|
bcs DRV.BadCall
|
||||||
|
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
jmp (.1,x)
|
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 #0
|
||||||
.DA K.VER
|
.DA K.VER
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* DRV.RamDrive
|
* DRV.RAM
|
||||||
* X = IOCTL
|
* X = IOCTL
|
||||||
* Y,A = PTR to S.IOCTL
|
* Y,A = PTR to S.IOCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.RamDrive cld
|
DRV.RAM cld
|
||||||
cpx #IOCTL.CONTROL
|
cpx #IOCTL.CONTROL
|
||||||
bcs DRV.RamDrive.9
|
bcs DRV.BadCall
|
||||||
|
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA DRV.RamDrive.S
|
|
||||||
|
.1 .DA DRV.RAM.S
|
||||||
.DA DRV.BLK READ
|
.DA DRV.BLK READ
|
||||||
.DA DRV.BLK WRITE
|
.DA DRV.BLK WRITE
|
||||||
.DA DRV.BLK FORMAT
|
.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
|
bcs .9
|
||||||
|
|
||||||
stx DRV.RamDrive.DIB+S.DIB.SIZE
|
stx DRV.RAM.DIB+S.DIB.SIZE
|
||||||
sty DRV.RamDrive.DIB+S.DIB.SIZE+1
|
sty DRV.RAM.DIB+S.DIB.SIZE+1
|
||||||
>LDYAI DRV.RamDrive.DIB
|
>LDYAI DRV.RAM.DIB
|
||||||
jmp DRV.STATUS.YA
|
jmp DRV.STATUS.YA
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.RamDrive.DIB
|
DRV.RAM.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
||||||
.DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
|
||||||
.BS 3
|
.BS 3
|
||||||
.PS "ProDOS /RAM Disk"
|
.PS "ProDOS /RAM Disk"
|
||||||
.DA #S.DIB.T.RAM
|
.DA #S.DIB.T.RAM
|
||||||
|
@ -66,14 +69,28 @@ DRV.RamDrive.DIB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.BlkDev cld
|
DRV.BlkDev cld
|
||||||
cpx #IOCTL.CONTROL
|
cpx #IOCTL.CONTROL
|
||||||
bcs DRV.RamDrive.9
|
bcs DRV.BadCall
|
||||||
|
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
|
||||||
.1 .DA DRV.BlkDev.S
|
.1 .DA DRV.BlkDev.S
|
||||||
.DA DRV.BLK READ
|
.DA DRV.BLK READ
|
||||||
.DA DRV.BLK WRITE
|
.DA DRV.BLK WRITE
|
||||||
.DA DRV.BLK FORMAT
|
.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
|
DRV.BlkDev.S jsr DRV.Blk
|
||||||
bcs .9
|
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 #0
|
||||||
.DA K.VER
|
.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
|
* IOCTL to BLK protocol converter
|
||||||
* in : pIOCTL
|
* in : pIOCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.BLK txa
|
DRV.BLK txa
|
||||||
lsr
|
lsr
|
||||||
sta DRV.BLK.P CMD
|
sta DRV.BLK.P CMD
|
||||||
|
|
||||||
ldy #S.FD.DEV.DEVID Drive 1, or 2
|
ldy #S.FD.DEV.DEVID Drive 1, or 2
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
dec O or 1
|
dec O or 1
|
||||||
|
@ -147,7 +183,7 @@ DRV.BLK.P .BS 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Smartport Driver
|
* Smartport Driver
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.SmartPort cld
|
DRV.SP cld
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
>STYA .3 smartport Params
|
>STYA .3 smartport Params
|
||||||
|
|
||||||
|
@ -155,7 +191,7 @@ DRV.SmartPort cld
|
||||||
lsr
|
lsr
|
||||||
sta .2
|
sta .2
|
||||||
tax
|
tax
|
||||||
lda DRV.SmartPort.Cnt,x
|
lda DRV.SP.Cnt,x
|
||||||
sta (pIOCTL) S.IOCTL.CNT
|
sta (pIOCTL) S.IOCTL.CNT
|
||||||
|
|
||||||
ldy #S.FD.DEV.DEVID
|
ldy #S.FD.DEV.DEVID
|
||||||
|
@ -179,8 +215,7 @@ DRV.SmartPort cld
|
||||||
jsr GO.A2osX
|
jsr GO.A2osX
|
||||||
rts
|
rts
|
||||||
|
|
||||||
DRV.SmartPort.Cnt
|
DRV.SP.Cnt .HS 03030301030101010404
|
||||||
.HS 03030301030101010404
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* NULL DEVICE
|
* NULL DEVICE
|
||||||
* - OPEN,WRITE,CLOSE always succeed.
|
* - OPEN,WRITE,CLOSE always succeed.
|
||||||
|
|
|
@ -268,7 +268,7 @@ KConfigLoad >LDYAI MSG.KCREAD
|
||||||
lda A2osX.FSID
|
lda A2osX.FSID
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
>LDYAI MSG.PRODOSFX
|
>LDYAI MSG.FX
|
||||||
jsr PrintFYA
|
jsr PrintFYA
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
|
@ -716,7 +716,7 @@ DevMgrInit >LDYAI MSG.DEV
|
||||||
lda #A2osX.S.DII
|
lda #A2osX.S.DII
|
||||||
bra .7 Go mark slot as USED
|
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
|
cmp #$C0
|
||||||
bcs .4 $C0 .. $CF, in slot ROM
|
bcs .4 $C0 .. $CF, in slot ROM
|
||||||
|
@ -755,6 +755,7 @@ DevMgrInit >LDYAI MSG.DEV
|
||||||
bmi .80
|
bmi .80
|
||||||
|
|
||||||
jmp .1
|
jmp .1
|
||||||
|
|
||||||
.80 clc
|
.80 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -768,6 +769,9 @@ DevMgr.USR ldx #4
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.BLK ldx #6
|
DevMgr.BLK ldx #6
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
*--------------------------------------
|
||||||
|
DevMgr.RSP ldx #10
|
||||||
bra DevMgr.AddBDev
|
bra DevMgr.AddBDev
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.SP ldy #$ff
|
DevMgr.SP ldy #$ff
|
||||||
|
@ -777,9 +781,6 @@ DevMgr.SP ldy #$ff
|
||||||
sta FD.BDEV+S.FD.DEV.BUSPTR
|
sta FD.BDEV+S.FD.DEV.BUSPTR
|
||||||
|
|
||||||
ldx #8
|
ldx #8
|
||||||
.HS 2C BIT ABS
|
|
||||||
|
|
||||||
DevMgr.RSP ldx #10
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DevMgr.AddBDev >LDYA DRV.BLKDEVX,x
|
DevMgr.AddBDev >LDYA DRV.BLKDEVX,x
|
||||||
>STYA FD.BDEV+S.FD.DEV.DRVPTR
|
>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.OK .CZ "OK\r"
|
||||||
MSG.KCREAD.KO .CZ "\rError While Reading Kernel Config File, Using Default.\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.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.Init2.OK .CZ "A2osX[Stage2]:Complete."
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.Init3 .CZ "A2osX[Stage3]:Init *** Press Ctrl-R for entering ROOT Mode ***\r\n"
|
MSG.Init3 .CZ "A2osX[Stage3]:Init *** Press Ctrl-R for entering ROOT Mode ***\r\n"
|
||||||
|
@ -1299,14 +1300,14 @@ MSG.BLKDEV.RAM .AZ "/RAM Disk"
|
||||||
MSG.BLKDEV.DII .AZ "Disk ]["
|
MSG.BLKDEV.DII .AZ "Disk ]["
|
||||||
MSG.BLKDEV.USR .AZ "User"
|
MSG.BLKDEV.USR .AZ "User"
|
||||||
MSG.BLKDEV.BLK .AZ "Generic Block"
|
MSG.BLKDEV.BLK .AZ "Generic Block"
|
||||||
MSG.BLKDEV.SP .AZ "Smart Port"
|
MSG.BLKDEV.SP .AZ "SmartPort"
|
||||||
MSG.BLKDEV.RSP .AZ "Remapped SP"
|
MSG.BLKDEV.RSP .AZ "SmartPort (Remapped)"
|
||||||
DRV.BLKDEVX .DA DRV.RamDrive
|
DRV.BLKDEVX .DA DRV.RAM
|
||||||
.DA DRV.DiskII
|
.DA DRV.DiskII
|
||||||
.DA DRV.BlkDev
|
.DA DRV.BlkDev
|
||||||
.DA DRV.BlkDev
|
.DA DRV.BlkDev
|
||||||
.DA DRV.SmartPort
|
.DA DRV.SP
|
||||||
.DA DRV.BlkDev
|
.DA DRV.RSP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.IRQ .AZ "Interrupt Manager..."
|
MSG.IRQ .AZ "Interrupt Manager..."
|
||||||
MSG.IRQGS .AZ " Apple IIgs VBL IRQ Activated."
|
MSG.IRQGS .AZ " Apple IIgs VBL IRQ Activated."
|
||||||
|
|
|
@ -23,7 +23,7 @@ TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
|
||||||
bra TERM.TOAUX
|
bra TERM.TOAUX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERM.OPEN
|
TERM.OPEN
|
||||||
* sta ZPhFD hFD in A for OPEN
|
* hFD in A for OPEN
|
||||||
|
|
||||||
TERM.CONTROL
|
TERM.CONTROL
|
||||||
TERM.CLOSE jsr TERM.GetDCB
|
TERM.CLOSE jsr TERM.GetDCB
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue