Add a new "Remote Shell" application
This allows a COS shell to remotely control another shell from a serial line. It's very crude now, but the plan is to add tools much like the POSIX tools, but for COS.
This commit is contained in:
parent
0f83451193
commit
a0775c5dcf
9
blk.fs
9
blk.fs
@ -4,6 +4,7 @@ MASTER INDEX
|
||||
005 Z80 assembler 030 8086 assembler
|
||||
050 AVR assembler 70-99 unused
|
||||
100 Block editor 120 Visual Editor
|
||||
150 Remote Shell
|
||||
160 AVR SPI programmer 165 Sega ROM signer
|
||||
170-259 unused 260 Cross compilation
|
||||
280 Z80 boot code 350 Core words
|
||||
@ -873,6 +874,14 @@ CREATE PREVPOS 0 , CREATE PREVBLK 0 , CREATE xoff 0 ,
|
||||
1 XYMODE C! clrscr 0 ACC ! 0 PREVPOS ! nums bufs contents
|
||||
BEGIN xoff? status setpos KEY handle UNTIL
|
||||
0 XYMODE C! 19 aty IN$ ;
|
||||
( ----- 150 )
|
||||
( Remote Shell )
|
||||
0 :* rsh<? 0 :* rsh>
|
||||
: rsh BEGIN
|
||||
rsh<? IF
|
||||
DUP 4 ( EOT ) = IF DROP EXIT THEN EMIT THEN
|
||||
KEY? IF DUP 0x80 < IF rsh> ELSE DROP EXIT THEN THEN
|
||||
AGAIN ;
|
||||
( ----- 160 )
|
||||
( AVR Programmer, load range 160-163. doc/avr.txt )
|
||||
( page size in words, 64 is default on atmega328P )
|
||||
|
@ -47,8 +47,12 @@ When you're ready to move to real hardware, read hw/intro.txt.
|
||||
* Dictionary of core Forth words (dict.txt)
|
||||
* Editing text (ed.txt)
|
||||
* Assembling binaries (asm.txt)
|
||||
* Remote Shell (rsh.txt)
|
||||
* Programming AVR chips (avr.txt)
|
||||
* Bootstrap Collapse OS to a new system (bootstrap.txt)
|
||||
* Cross-compilation mechanisms (cross.txt)
|
||||
* Protocols (protocol.txt)
|
||||
* Grid subsystem (grid.txt)
|
||||
* Sega Master System ROM signatures (sega.txt)
|
||||
* Self-hosting notes (selfhost.txt)
|
||||
|
||||
|
22
doc/rsh.txt
Normal file
22
doc/rsh.txt
Normal file
@ -0,0 +1,22 @@
|
||||
# Remote Shell
|
||||
|
||||
You can control a remote system from Collapse OS using the
|
||||
Remote Shell application at B150. All you need are words that
|
||||
follow the EMIT and KEY? signatures. Serial lines drivers
|
||||
provide those words.
|
||||
|
||||
To use the remote shell, first plug your words into RSH aliases:
|
||||
|
||||
' FOO> ' rsh> *! ' FOO<? ' rsh<? *!
|
||||
|
||||
FOO> being the "EMIT" word and "FOO<?" being the KEY? word.
|
||||
|
||||
Then, it's only a matter of running "rsh". This will repeatedly
|
||||
poll rsh<? and emit whatever is coming from there and at the
|
||||
same time, poll KEY? and push whatever key you type to rsh>.
|
||||
|
||||
You can stop the remote shell by typing any character over 0x7f.
|
||||
For example, on a TRS-80 4P, the BREAK key yields 0x80 and will
|
||||
break the loop.
|
||||
|
||||
See hw/acia.txt for tips on configuring a serial line.
|
Loading…
Reference in New Issue
Block a user