45 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# NetTerm
 | 
						|
This gigatron program is an attempt to create a terminal that talks over SPI1 to the outside world.
 | 
						|
Every keypress on the gigatron will be transfered over SPI, and every byte (apart from ANSI escapecodes) goes from SPI to the screen.
 | 
						|
For the first run, execute `make lcc` in the *gigatron-rom* root folder.
 | 
						|
run `make Contrib/xopr/NetTerm/NetTerm.gt1` in the root folder to build a new version.
 | 
						|
 | 
						|
If you want to test the NetTerm without expander hardware (i.e., emulator), you can comment out the following define:
 | 
						|
```
 | 
						|
//#define IOPORT SS1
 | 
						|
```
 | 
						|
**Note:** 
 | 
						|
This application is still experimental and written to work best with a [Gigatron expander card](https://forum.gigatron.io/viewtopic.php?f=4&t=64)  combined with a patched *dev.rom* that enables drawing of the 3x5 'tinyfont'.
 | 
						|
To apply the  patch, run `git apply Contrib/xopr/NetTerm/SYS_VDrawWord.patch` followed by `make dev.rom` and `make burn` to compile and burn the DEVROM to EPRPOM.
 | 
						|
 | 
						|
The patch itself was created using:
 | 
						|
```
 | 
						|
git add Core/dev.py
 | 
						|
git commit -m "Added SYS_VDrawWord function"
 | 
						|
git format-patch -1 master --stdout > Contrib/xopr/NetTerm/SYS_VDrawWord.patch
 | 
						|
git reset HEAD^
 | 
						|
git checkout -- Core/dev.py
 | 
						|
```
 | 
						|
 | 
						|
# SPI_slave
 | 
						|
This Arduino program acts like a SPI slave that transfers bytes from and to the (USB) serial connection.
 | 
						|
It can be used to hook the gigatron up to the PC as a terminal client, or powered without USB, used as TTL serial (pins 0 and 1).
 | 
						|
 | 
						|
**Note:**
 | 
						|
Make sure you disable the Arduino reset when using it as a USB serial terminal.
 | 
						|
For programming, either re-enable Arduino reset or reset it manually directly after clicking upload.
 | 
						|
Newer Arduinos have a scratch/solder pad for that (which one can scratch through and solder a jumper on): it should be in the middle of an Arduino uno with a label "Reset on".
 | 
						|
 | 
						|
## Run a terminal server
 | 
						|
To run a terminal server for the (Arduino) Serial port, verify which port it uses (in my case, it was /dev/**ttyACM0**.
 | 
						|
 | 
						|
On a systemd linux machine:
 | 
						|
 | 
						|
* run: `systemctl enable serial-getty@ttyACM0.service` (or the appropriate Arduino serial device)
 | 
						|
 * edit: `/etc/systemd/system/getty.target.wants/serial-getty@ttyACM0.service`
 | 
						|
    * and change `ExecStart=...... $TERM` into `ExecStart=...... vt100`
 | 
						|
 * then run: `systemctl daemon-reload`
 | 
						|
 * and: `systemctl restart serial-getty@ttyACM0.service`
 | 
						|
 | 
						|
 |