Skip to content

Commit 5029b81

Browse files
committed
v0.30.3 Bugfixes
1 parent 178bd20 commit 5029b81

49 files changed

Lines changed: 1121 additions & 457 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

changelog.txt

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
v0.30.3:
2+
Terminal: 16 colour support for the 4x8 font. Achieved by sacrificing the inverted character set (only when using 16 colour 4x8!).
3+
Terminal: Added the "tty" command; it initializes the SMDTC TTY to a sane enviroment for a linux tty, although still somewhat iffy and some functionality is still missing.
4+
Terminal: Added support for DECCKM (Cursor Key Format). "Cursor", "Numpad cursor", "Home" and "End" keys should now switch reporting mode correctly.
5+
Terminal: Control characters can now be entered by pressing CTRL + <key>, for example: CTRL+C will send ^C.
6+
Terminal: History queue can now store 2 commands.
7+
UI: Added preliminary ColourPicker, Tab and ConfirmBox widget, these will be finalized later on. These widgets can be tested in the UI tester; Quick menu -> Debug -> UI Tester.
8+
Misc: Boot prompt now uses the terminal instead of the drawing on its own to the window plane. This allows for much better printing, colour and scrolling support if needed.
9+
10+
Fixes:
11+
Terminal: Mode set/reset in parser got broken in an earlier commit. Escape sequences such as "ESC[?Ⓝh" should now work again, applications such as nano now renders properly again.
12+
Terminal: Added a few skeleton escape codes, ie doing the bare minimum to handle them for now so they don't mess with previous/following escape codes.
13+
DevMgr: Joypad was set to a weird state after the PS/2 keyboard detected scan iterated through all ports, which caused a few buttons to not work on joypads.
14+
Drivers: The PS/2 keyboard detection scan will now only scan ports with an unknown ID, this is to avoid disturbing devices which for certain is not a PS/2 keyboard.
15+
Drivers: Hopefully fixed the XPN driver for the last time; Pinging does not get stuck in monitor mode any more.
16+
Misc cursor fixes; due to earlier optimizations the cursor Y position did not always get updated.
17+
Misc fixes in 4x8 font tilesets; 1 stray pixel in one character and 1 missing pixel in another character. The characters in question are used for line drawing.
18+
19+
Known bugs:
20+
IRC: Nick list is missing 1 nick, see command 353 in IRC.c
21+
IRC: Erroneous string comparison in command 353, in IRC.c
22+
123
v0.30.2:
224
Telnet/Terminal: Erroneously cleared the entire next row of text every time a newline+carridge return was encountered, this should only be done when also scrolling down to a new line.
325
IRC: The typing input box at the bottom now uses DMA VRAM copy. Previously a new single tile was uploaded to VRAM for every character you typed.
@@ -9,7 +31,7 @@ Misc: Slimmed UTF8 tables down from 256 bytes to 64 bytes for every table. Now o
931
Misc: Added doxygen comments to the PS/2 keyboard functions.
1032
Misc: Date function added to terminal. Used to sync to a time server and to print the current date.
1133
FixMe: IRC: Nick list is missing 1 nick, see command 353 in IRC.c .
12-
FixMe: IRC: Erroneous string comparision in command 353, in IRC.c .
34+
FixMe: IRC: Erroneous string comparison in command 353, in IRC.c .
1335

1436
v0.30.1:
1537
SMDTC: FAT12/16/32 support, file operations and other misc functions added for testing purposes. Disabled by default.

doc/CRAM.txt

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
CRAM Setup
2+
Note: 0-based numbering, meaning row goes from 0 to 3 and column goes from 0 to 15
3+
4+
5+
Row Column Usage Index
6+
0 0 Background colour 0
7+
0 1 Red icon colour 1
8+
0 2 Window title foreground 2
9+
0 3 Window title background 3
10+
0 4 Cursor colour 4
11+
0 5 Icon background 5
12+
0 6 Normal icon colour 6
13+
0 7 Green icon colour 7
14+
15+
1 1 Window text BG Normal / Terminal text BG 17
16+
1 2 Window text FG Normal 18
17+
1 3 Window inner BG 19
18+
1 4 Window title BG 20
19+
1 5 Window shadow 21
20+
1 6 Window border 22
21+
1 7 Colour picker (Reserved) 23
22+
23+
3 2 Window text FG Inverted 50
24+
3 3 Window text BG Inverted 51
25+
26+
3 6 Screensaver colour 0 54
27+
3 7 Screensaver colour 1 55
28+
29+
0 8-15 4+4 colours for 16 colour 4x8 fonts (Text+AA) 8 ... 15
30+
1 8-15 4+4 colours for 16 colour 4x8 fonts (Text+AA) 24 ... 31
31+
2 8-15 4+4 colours for 16 colour 4x8 fonts (Text+AA) 40 ... 47
32+
3 8-15 4+4 colours for 16 colour 4x8 fonts (Text+AA) 56 ... 63
33+
34+
0 12-15 2+2 colours for 8 colour 4x8 fonts (Text+AA) 12 ... 15
35+
1 12-15 2+2 colours for 8 colour 4x8 fonts (Text+AA) 28 ... 31
36+
2 12-15 2+2 colours for 8 colour 4x8 fonts (Text+AA) 44 ... 47
37+
3 12-15 2+2 colours for 8 colour 4x8 fonts (Text+AA) 60 ... 63
38+
39+
2 0-15 16 colours for 8x8 fonts 32 ... 47
40+
Row Column Usage Index
41+

readme.md

Lines changed: 56 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,30 @@
11

22
# SMD Terminal emulator, Telnet and IRC client v0.30+
3-
A terminal emulator, telnet and IRC client for the Sega Mega Drive/Genesis with support for PS/2 keyboards and RS-232 communication.<br>
3+
A terminal emulator, telnet and IRC client for the Sega Mega Drive/Genesis with support for keyboards and RS-232 communication.<br>
44
![Screenshot of the telnet client](https://deceptsoft.com/smdtc_extra_git/v30/telnet_small.png)
55
![Screenshot of the IRC client](https://deceptsoft.com/smdtc_extra_git/v30/irc_small.png)
66
![Screenshot of the terminal emulator showing nano](https://deceptsoft.com/smdtc_extra_git/v30/blastem_20240401_104314.png)
77
![Screenshot of a debugging utility to inspect streams](https://deceptsoft.com/smdtc_extra_git/v30/hexview_small.png)
88
![Screenshot of the telnet client in 80 column + 8 colour mode](https://deceptsoft.com/smdtc_extra_git/v30/blastem_20240401_203819.png)
99
![Screenshot of the terminal emulator](https://deceptsoft.com/smdtc_extra_git/v30/blastem_20240505_222454.png)
1010

11-
Extra hardware:<br>
12-
A PS/2 keyboard or a Sega Saturn keyboard (not required but preferred).<br>
13-
A "voltage translator" to translate between the MD +5v and remote RS232 device logic levels,<br>
14-
I personally recommend the max3232 (https://www.ti.com/lit/ds/symlink/max3232.pdf)<br>
15-
<br>
16-
xPico/RetroLink support as an alternative to the above is being worked on.<br>
17-
<br>
11+
##### Table of Contents
12+
* [Disclaimer](#disclaimer)
13+
* [Thanks](#thanks-to)
14+
* [Building from source](#building-smdtc-from-source)
15+
* [Running SMDTC](#running-smdtc)
16+
* [Required hardware](#required-hardware)
17+
* [Devices](#devices)
18+
* [Autodetected devices](#list-of-autodetected-devices)
19+
* [How to wire up a PS/2 keyboard](#how-to-wire-up-a-ps2-keyboard)
20+
* [Pin configuration of the MD controller ports](#pin-configuration-of-the-md-controller-ports)
21+
* [PS/2 pin reference](#ps2-pin-reference)
22+
* [MD UART pin reference](#md-uart-pin-reference)
23+
* [Shortcuts](#shortcuts)
24+
* [Quick menu](#quick-menu)
25+
* [IRC client](#irc-client)
26+
* [Telnet client](#telnet-client)
27+
* [Terminal emulator](#terminal-emulator)
1828

1929
## Disclaimer
2030
> [!WARNING]
@@ -28,6 +38,7 @@ xPico/RetroLink support as an alternative to the above is being worked on.<br>
2838
b1tsh1ft3r - Testing, improvement ideas and RetroLink/xPico support<br>
2939
RKT - For creating a 4x8 extended ASCII font tileset<br>
3040
Stef - For creating [SGDK](https://github.com/Stephane-D/SGDK)<br>
41+
Sik - For creating the website [Plutiedev](https://plutiedev.com/) with valuable information regarding the MD<br>
3142
<br>
3243

3344
## Building SMDTC from source
@@ -36,6 +47,23 @@ Stef - For creating [SGDK](https://github.com/Stephane-D/SGDK)<br>
3647
The SGDK library must be rebuilt with the flags `HALT_Z80_ON_IO` and `HALT_Z80_ON_DMA` set to 0 in config.h to make sure the z80 CPU is never getting its bus back.<br>
3748
<br>
3849

50+
## Running SMDTC
51+
SMDTC is made to run on the original Mega Drive / Genesis hardware;<br>
52+
Easiest way to run SMDTC on your system is by transferring the binary file `smdt_vX.YY.Z.bin` to a flashcart.<br>
53+
<br>
54+
You can also run SMDTC in a Mega Drive / Genesis emulator and easily check it out; Do mind that most emulators do not provide any way to actually connect any external serial devices, so no network support is possible while running in an emulator.<br><br>
55+
I highly recommend the emulator [BlastEm](https://www.retrodev.com/blastem/nightlies/) since it supports the Sega Saturn keyboard.<br>
56+
Other emulators may have issues running SMDTC and it is unlikely they will have any keyboard support.
57+
<br>
58+
59+
## Required hardware
60+
1. A PS/2 keyboard or a Sega Saturn keyboard (not strictly required but preferred).
61+
2. A **5 volt** RS-232 serial connection or an xPico/xPort module.
62+
3. A Mega Drive or Genesis and a way to run roms on it.
63+
<br>
64+
65+
RetroLink network cartridge as an alternative network adapter is being worked on.<br>
66+
3967
## Devices
4068
SMDTC has a device manager which can autodetect if a device is present and where it is plugged in.<br>
4169
Device detection is only done on bootup, no plug & play support (yet).<br>
@@ -48,18 +76,18 @@ A fallback joypad device will be activated if SMDTC fails to find a keyboard or
4876
All detected devices can be viewed in the "Connected devices" list (Quick menu -> Mega Drive settings -> Connected devices)<br>
4977
<br>
5078
> [!NOTE]
51-
> SMDTC is limited when it comes to detecting the presence of a serial connection on the built in UART (Only an xPico module can be autodetected)<br>
52-
> By default SMDTC will listen for incoming connections on PORT 2 UART.<br>
79+
> SMDTC is limited when it comes to detecting the presence of a serial connection on the built in UART.<br>
80+
> By default SMDTC will listen for incoming connections and attempt to find serial devices on PORT 2 UART.<br>
5381
> This setting can be changed in the "Select serial port" menu (Quick menu -> Mega Drive settings -> Select serial port)<br>
5482
> Do not forget to save your changes! (Quick menu -> Reset -> Save config to sram)<br>
5583
<br>
5684
57-
### List of autodetected devices that require no configuration
85+
### List of autodetected devices
5886
PS/2 Keyboard.<br>
5987
Sega Saturn keyboard.<br>
6088
Sega 3/6 button joypad.<br>
61-
xPico module connected to built in UART (Currently being worked on, support may be iffy)<br>
62-
RetroLink network adapter cartridge (Currently being worked on, support may be iffy)<br>
89+
xPico module connected to built in UART (May require you to set the correct serial port as described above)<br>
90+
RetroLink network adapter cartridge (Currently being worked on, support may be iffy)<br>
6391
<br>
6492

6593
### How to wire up a PS/2 keyboard
@@ -80,7 +108,7 @@ MD port pin 8 = PS/2 GND pin 3<br>
80108
See the pin configuration lists below for pinouts of the MD controller ports and PS/2 keyboard.<br>
81109
<br>
82110

83-
### Pin configuration of the MD controller ports:
111+
### Pin configuration of the MD controller ports
84112
MD port pin 1 = PS/2 device 1 clock (CLK1)<br>
85113
MD port pin 2 = PS/2 device 1 data (DATA1)<br>
86114
MD port pin 3 = PS/2 device 2 clock (CLK2)<br>
@@ -91,19 +119,19 @@ MD port pin 7 = Reserved (CP3)<br>
91119
MD port pin 8 = GND<br>
92120
MD port pin 9 = Serial RX<br>
93121

94-
### PS/2 pin reference:
122+
### PS/2 pin reference
95123
PS/2 pin 1 = Data<br>
96124
PS/2 pin 3 = GND<br>
97125
PS/2 pin 4 = VCC<br>
98126
PS/2 pin 5 = Clock<br>
99127

100-
### MD UART pin reference:
128+
### MD UART pin reference
101129
MD port pin 5 = VCC<br>
102130
MD port pin 6 = TX<br>
103131
MD port pin 8 = GND<br>
104132
MD port pin 9 = RX<br>
105133

106-
### Connected device list:
134+
### Connected device list
107135
P1:0 = Port 1 @ pin 1+2<br>
108136
P1:1 = Port 1 @ pin 3+4<br>
109137
P1:S = Port 1 UART<br>
@@ -117,14 +145,16 @@ P3:1 = Port 3 @ pin 3+4<br>
117145
P3:S = Port 3 UART<br>
118146
P3:D = Port 3 Parallel+UART Mode<br>
119147

120-
## Quick menu shortcuts
148+
## Shortcuts
149+
150+
### Quick menu
121151
Right windows key OR F8 = Open the Quick menu<br>
122152
Enter = Enter submenu and activate a choice<br>
123153
Escape = Back out of current menu<br>
124154
Up cursor = Move selector up<br>
125155
Down cursor = Move selector down<br>
126156

127-
## IRC client shortcuts
157+
### IRC client
128158
F1 = Channel 1 tab<br>
129159
F2 = Channel 2 tab<br>
130160
F3 = Channel 3 tab<br>
@@ -137,13 +167,12 @@ Tab = Toggle channel user list<br>
137167
Numpad 4 = Scroll left<br>
138168
Numpad 6 = Scroll right<br>
139169

140-
## Telnet client shortcuts
141-
F11 = Send ^C to remote server<br>
142-
F12 = Send ^X to remote server<br>
143-
Numpad 1 = Scroll left<br>
144-
Numpad 3 = Scroll right<br>
170+
### Telnet client
171+
F1 = Scroll left<br>
172+
F2 = Scroll right<br>
145173

146-
## Terminal emulator
174+
### Terminal emulator
147175
Type `help` for a list of all available built in commands.<br>
148-
Up arrow = Retype last entered string<br>
149-
Down arrow = Clear current typed string<br>
176+
<br>History queue:<br>
177+
Up arrow = Go back in history of entered command strings.<br>
178+
Down arrow = Go forward in history or clear command string if at the last entered command string.<br>

res/4x8_by_RKT_e10.png

25.3 KB
Loading

res/4x8_by_RKT_e12.png

25.3 KB
Loading

res/4x8_by_RKT_e14.png

28.8 KB
Loading

res/4x8_by_RKT_e16.png

29 KB
Loading

res/4x8_by_RKT_v2_AA.png

-28.9 KB
Binary file not shown.

res/4x8_by_RKT_v2_AA_ALT.png

-28.6 KB
Binary file not shown.
File renamed without changes.

0 commit comments

Comments
 (0)