-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
146 lines (132 loc) · 9.51 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
v0.30.0:
Terminal: Added bold variant of the 8x8 font.
Terminal: More colours in text output.
Terminal: Added "savecfg" command for saving config to sram.
Terminal: Added "reboot" command to reboot the system, with optional -soft parameter for soft reset instead of the default hard reset.
Terminal: Now wraps at screen edge instead of at column 80.
Terminal: Removed unused leftover variables.
Terminal: Fixed command parser reading some extra garbage if the inputted string was too long for the internal buffer.
Terminal: More stdout work. Automatic "less/more" when more than a full screen worth of text tries to print to the screen in one go.
Telnet/IRC/Terminal now has their own font selection setting, no more keeping track of state should use what font.
IRC: Fixed a leftover inverted check that caused the irc client to quit prematurely when initializing.
Net: More network callbacks.
XPN: More work done to support b1tsh1ft3r's controller port network adapter. Ping/Get IP/Transmit data/Receive data works good enough.
RLN: More work done to support b1tsh1ft3r's cartridge network adapter. Ping/Get IP/Transmit data works good enough, Receive data does not work correctly (lots of dropped/unprinted bytes?).
Hex viewer can now show the rx buffer, tx buffer and stdout buffer.
v0.29:
IRC: Cursor fix.
Added initial support for xPico module connected to an MD UART port.
PS2KB: Reworked keyboard reading method, it now works on NTSC/MD2 models (Thanks to b1tsh1ft3r).
PS2KB: SendCommand() has been rewritten.
Quality of life improvement to the terminal emulator.
Terminal/Telnet: Code speed improvements/readability decreased
Cursor stuff; 1. Now alternates tile instead of colour, visually the same but now it is actually transparent when it is in the "off" state. 2. Cursor colour can be set and saved.
Terminal: Better BG colouring support when using custom BG colour.
Terminal: More built in commands. See "help" command in SMDTC.
Improved the screensaver. It now has its own 32x32 sprite.
IRC: Fixed some hardcoded addresses that should be using the common address macros.
IRC: More dynamic allocations to free up more RAM outside of the IRC client. malloc / free was not used before because it was broken.
Misc: Renamed save variables.
Misc: A few commands finalized (echo $variables, setting variable values).
IRC: Wrong font applied at IRC init resulting in a hard to read mess.
IRC: Fixed bug where the client did not account for NICKLEN being smaller than your chosen nickname, which caused some issues with private messages.
IRC: Will now attempt to re-register your nick with added underscores in case your nickname is already in use on a server.
IRC: Userlist fixes. x.x
Terminal: Will now properly revert font back when switching state.
v0.28:
Added initial support for b1tsh1ft3r's network cartridge 'RetroLink', allowing much faster network speeds and a MD to be completely stand alone.
Added a screensaver that will activate after 5 minutes of inactivity. Disabled by default.
Buffer system can no longer drop a byte if it is full.
SMDTC start menu has been revamped and simplified. It can now accept addresses to connect to if using retrolink.
VRAM management; Hardcoded addresses all over the codebase has been replaced with common macros (defines). This makes it easy to move around various chunks in VRAM.
Sprite macros; Make it easier to manipulate more than 1 hardcoded sprite.
Logging macros changed around to make it easier to log specific parts.
Old unused macros removed and lot of code clean ups (How much is now broken I wonder...).
Fixed old bug with ESC[A / B / C / D; It didn't always move the cursor by at least 1. Margins only partially implemented.
Terminal: Added "DEC Special Character and Line Drawing Set" character map.
Terminal: Allow printing characters > $7E again; Fixes some issues with certain telnet servers using extended ascii.
Terminal: The terminal state is now acting as a command interpreter, which can be used to type commands and launch sessions with arguments.
Added support for the Sega Saturn keyboard.
PS2KB: Sending commands to a PS/2 keyboard now works. Turns out I was sending the data bits in reverse order.
Device manager cleanup. Keyboards are now initialized externally.
Device manager can now check for sega device identifiers on connected devices.
SMDTC can now handle multiple different keyboards (Not at the same time however).
Initial doxygen comment additions.
Telnet: Title strings should no longer keep appending onto itself when disconnecting and connecting to a server.
v0.27:
SRAM: Added the ability to save config to SRAM.
IRC: Added "tabs" to have several channels/private messaging going at once. It uses 8-bit tilemap buffers in RAM,
it is limited to 3 concurrent "tabs" at once due to RAM requirements (3*8KB = 24KB RAM used). Use F1/F2/F3 to change tab.
IRC: Added a typing input at the bottom of the screen.
IRC: Commands implemented, prefixed with '/'. Use '/raw <IRC COMMAND>' to send raw IRC command strings.
IRC: You can now initiate a private conversation.
IRC: User list added, press F5 to show/hide window.
IRC: Can now change username via the /nick <your_nick> command.
Telnet: Added a proper bell... ok PSG beeps.
Terminal: Added the terminal emulator as its own launchable session type.
TRM: Some windowing cleanup. (TRM = Window plane UI backend).
NET: Moved Networking stuff out of the terminal emulator (Rx/Tx etc) into a new unit 'NET'.
PS2KB: Added timeout code when in the middle of reading a bitstream. May cause dropped key input when the MD is very busy with network traffic. This blocking bug has existed at least since v0.20.
PS2KB: Added Swedish keyboard layout.
Terminal: Added colour support for 4x8 fonts.
Terminal: You can now select to use normal or highlighted colours when using 4x8 fonts with colour. (TODO: Custom colours?).
Terminal: Added a lot of new escape codes; window ops, 256 colour handling and a lot of other minor but obscure escape codes.
Fixed some tables that was supposed to be in ROM but instead got placed in RAM (type const * const varname).
Various bugfixes, most related to mIRC colour fuckery and 4x8 fonts (clearing and printing).
Added some extra Rx buffer statistics.
Cursor tile can now change shapes; block, underline, bar, invisible. Blinking can now also be toggled.
v0.26:
DevMgr: Device manager created. Devices can now be mapped to pin 1+2 or pin 3+4 on any port. 2 PS/2 devices can be on the same port as a UART device.
DevMgr: Serial/UART device can be in any port now (not recommended to change port while tx/rx is ongoing).
DevMgr: Added a temporary crude device detection system. Joypad will be enabled on port 1 only when no keyboard is detected or when keyboard is not in port 1.
PS2KB: Initial HOST->PS/2 communication (PS/2 response is always "rx fail, please resend command" though).
Quickmenu: Some updates regarding device list and selecting UART port.
Quickmenu: Text colour is selectable when using 4x8 font.
Telnet: Added some missing escape codes (skeleton code mostly).
Terminal and telnet: A few tweaks related to scrolling, cursor handling and special characters.
Terminal: Blinky cursor is back. It used to cause lockups, lets hope it doesn't anymore.
More UTF8 "characters" added.
v0.25:
Telnet: More IAC functionality (LINEMODE, TERM_SPEED, SEND_LOCATION, ENVIROMENT_OP, SUPRESS_GO_AHEAD) and enabled the previously disabled echo settings.
Telnet: LINEMODE EDIT setting now controls whether to send bytes in bulk (allowing for local editing) or byte-by-byte to remote server.
Telnet: Fixes to IAC NAWS - Now takes into account column settings (based on font size for now instead of actual 40/80 column setting) and row settings (29 for PAL and 27 for NTSC -- 1 row is always used for status bar at the top).
PC Side: smdt-pc to replace socat has been created, capable of piping and logging Tx/Rx streams.
IRC: Initial IRC support (Line parser/command interpreter).
IRC: mIRC colour support.
IRC: CTCP Support (Version and ping only).
Terminal: Testing 256 column mode for 4x8 fonts and added left/right scrolling for 4x8 fonts.
Terminal: Rewritten MoveCursor function since it was old and buggy.
Terminal: Emulator scrolling bugfixes.
PS2KB: Moved out telnet state specific code.
PS2KB: Rewritten scancode handler, now half the code size and supports all keys/combinations and keyboard layouts (US only for now) - Still TODO: CapsLock/NumLock/ScrollLock handling is not implemented.
A million tiny little tweaks here and there.
v0.24:
Split terminal and telnet client apart (to prepare for other protocols).
Implemented input subsystem.
Changed KB/JP to new input subsystem.
Implemented statemachine (to prepare for other protocols).
Added a startup menu.
Initial IRC state.
v0.23:
Lowered keyboard polling timeout, it caused the text to be printed out in chunks (not very smooth looking).
Detecting (and ignoring) UTF BOM.
Made status icons more attractive.
Added sent/received bytes statistics.
Added hex viewer for RX Buffer.
v0.22 - 2023-11-11:
Added a quick and dirty antialiased 4x8 font.
Added a circular buffer for incoming bytes.
Fixed cursor going rogue when switching between font sizes.
v0.21 - 2023-11-10:
Added support for 4x8 font (thanks to RKT).
v0.21 - 2023-11-09:
Added baud speed selector (300, 1200, 2400, 4800).
#--- Older changes ---
v0.1x-0.20 - 2023-xx-xx:
Implemented IAC code sequence handling.
Implemented basic UTF-8 decoding.
Rewritten escape code sequence handling.
Rewritten line clearing and character printing functions.
Implemented a menu system for changing terminal settings.
Fixed shift key on keyboard not actually shifting letters.
Added terminal type selector (XTerm, ANSI, VT100, MEGADRIVE and UNKNOWN).