Commit Graph

76 Commits

Author SHA1 Message Date
Kelvin Sherlock a687a08b0b add command-L to toggle local/online
add command-Q to quit.

Since ROM 1 doesn't have _RemoveCDA in ROM, the control panel is only installed in ROM 3.
(TODO -- check at runtime in case launched from GS/OS)
2022-02-07 10:34:10 -05:00
Kelvin Sherlock 90e807ba46 reset - enable auto-repeat. 2022-01-30 22:29:49 -05:00
Kelvin Sherlock 2c432b3fc1 command-L toggles local/online mode. 2022-01-30 22:29:33 -05:00
Kelvin Sherlock dcbafc2999 commentary. 2022-01-30 15:52:38 -05:00
Kelvin Sherlock 80edada6e9 DECCOLM 132 support (partial).
I still don't support 132 mode but switching clears the screen, homes the cursor,
and clears any scrolling regions, so it's necessary for passing the vttest suite.
2022-01-30 15:52:32 -05:00
Kelvin Sherlock 04113c4725 Rom 1 _InstallCDA call clobbers some direct page locations.
This is fixed in ROM 3 (or via the TS patches if you boot GS/OS).
Workaround it by switching to DPAGE 0.

Also, allocate memory (since I originally thought that might be relevant).
2022-01-30 15:50:54 -05:00
Kelvin Sherlock 1f7e3b3b4c to make life easier for emacs, backspace will send $7f instead of $08.
command-backspace will send $08 (as will Control-H).
If you have an extended keyboard, delete will also send $08.
(mame uses delete to toggle keyboard mode so it's not yet tested).
2022-01-29 15:43:08 -05:00
Kelvin Sherlock 18daf26568 add DECARM, x, and y to the CDA 2022-01-29 15:41:14 -05:00
Kelvin Sherlock 60259531d5 DECARM - auto repeat support. defaults to auto-repeat on.
n.b. - mame does not currently set the repeat bit in the keymod reg so it's not well tested.
2022-01-29 14:24:55 -05:00
Kelvin Sherlock 22d1c744bb auto-wrap wasn't advancing the cursor after wrapping. 2022-01-29 11:56:15 -05:00
Kelvin Sherlock c15ae6ac4c add DECREQTPARM support, fix a bug with DA/Device attributes response. 2022-01-29 11:23:41 -05:00
Kelvin Sherlock 9dfc3cc7c9 saving the cursor also saves the SGR 2022-01-29 10:43:09 -05:00
Kelvin Sherlock 71993497ea $7f (delete) character is a null char. drop it (and $00) when checking the read queue. 2022-01-28 23:21:13 -05:00
Kelvin Sherlock acfe94a4c7 command keys:
* command 1 - command 4 equivalent to PF1 - PF4
* command-delete = backspace (0x7f)
* command-return = linefeed (0x0a)
2022-01-28 22:25:33 -05:00
Kelvin Sherlock 9cf52cb34e vttest fixes
1. control-space should generate a null character
2. vt52 application mode keys were off.
2022-01-28 22:12:37 -05:00
Kelvin Sherlock 186d71de47 print the cancel character for ^X and ^Z.
based on testing, this applies to vt52 and vt100.
use the current x pos to choose between $56 and $57 (mouse text checkerboard)
so multiple characters look pretty.
2022-01-17 13:13:07 -05:00
Kelvin Sherlock 4eb578b94e merge hexdump code 2022-01-17 13:11:00 -05:00
Kelvin Sherlock c2d3ee0f28 show all SGR (inverse, bold, underscore, blink) as inverted. 2022-01-15 16:36:28 -05:00
Kelvin Sherlock 900dccb3d1 head/tail swapped. 2022-01-15 16:31:38 -05:00
Kelvin Sherlock ea6ee76a9d fix CDA paging 2022-01-15 16:15:05 -05:00
Kelvin Sherlock 1cc501e72a buffer outgoing keystrokes
this also adds a hexdump in the CDA for the outgoing buffer
in local mode, "incoming" data is read from the outgoing buffer.
Currently data is (potentially) sent on each run of the main loop.
I thought about using the TX empty interrupt but it still needs to be
kicked off at some point (unlike incoming data)
2022-01-15 15:59:29 -05:00
Kelvin Sherlock f486bbfb1b don't re-enable the cursor blink while there is still pending modem data. this improves performance and visuals. 2022-01-09 19:38:25 -05:00
Kelvin Sherlock 8fa8d8d1fa move modem q variables to the direct page, adjust CDA hexdump to show most recent 16*8 bytes. 2022-01-08 22:26:34 -05:00
Kelvin Sherlock 02c6e1271c cda print_number - support for 0-255 2021-12-19 20:16:52 -05:00
Kelvin Sherlock 279f424cee cda - improve ssc register display 2021-12-06 20:14:35 -05:00
Kelvin Sherlock e1639db6e4 cda - display SCC registers. 2021-12-05 22:47:40 -05:00
Kelvin Sherlock 6f055a1ef9 update cursor save/cursor restore to also save the DECOM settings. tested with vt100 (mame) 2021-11-28 15:46:29 -05:00
Kelvin Sherlock cd1397e3cf fixed cursor position report
- verified DECOM behavior
- was missing [ write.
2021-11-28 14:45:03 -05:00
ksherlock 3e53d52226
Create README.md 2021-10-26 08:16:26 -04:00
Kelvin Sherlock a4fc8a1a19 cda bugs 2021-10-25 14:30:50 -04:00
Kelvin Sherlock 260023c33b fix bug with scrolling region. frotz now works... 2021-10-25 14:30:42 -04:00
Kelvin Sherlock 0d64af63d2 move direct page so it's accessible to CDA
CDA shows direct page variables
move SCC setup to be table-based
esc c reset support.
2021-10-25 13:17:47 -04:00
Kelvin Sherlock c470e945ec clean up link file a bit. 2021-10-24 21:47:29 -04:00
Kelvin Sherlock 77ec62a091 at 2.6mhz, 9600baud, I was experiencing lost characters during line scroll or screen clear. To compensate, replace modem polling with asynchronous/interrupt-based code. Up to 256 bytes of modem data can be buffered.
Also, enable modem, vt100 as default

Also, erase screen before switching to 80-column mode to prevent unsightly flashes.
2021-10-24 20:13:06 -04:00
Kelvin Sherlock 5a1f0f6ffc finish cda box. 2021-10-23 14:53:35 -04:00
Kelvin Sherlock 26ceb7aa50 start of a CDA to control vt100 parameters. 2021-10-23 12:25:20 -04:00
Kelvin Sherlock 42d38bfa77 typo. 2021-10-23 12:24:36 -04:00
Kelvin Sherlock f13947a9c2 reformat scc magic constants 2021-10-17 19:33:28 -04:00
Kelvin Sherlock 892aed32f4 commentary. 2021-10-17 16:51:41 -04:00
Kelvin Sherlock 31394e84c4 backspace in column 0 was falling through to tab. 2021-10-03 16:09:39 -04:00
Kelvin Sherlock 6c8da61822 ^G beep support. uses ensoniq to match the vt100 beep. 2021-10-03 16:09:20 -04:00
Kelvin Sherlock 8d0f3b6496 use iigs equates 2021-10-03 16:08:23 -04:00
Kelvin Sherlock 2ae6964664 clobbering the screen holes is bad. The slot 4 mouse code stores config data in the screen holes. on ROM 1, ESC#8 (fill screen with 'E') would cause the slot 4 mouse to enable ADB mouse interrupts, which causes ProDOS to eventually error out with 255 unclaimed interrupts. 2021-09-27 17:55:10 -04:00
Kelvin Sherlock 2a8a409194 inverse support 2021-09-27 17:53:13 -04:00
Kelvin Sherlock 11d62bb333 disable cursor blink when CDA is active. 2021-09-26 19:46:10 -04:00
Kelvin Sherlock 39429e4e09 saved cursor 2021-09-26 19:45:44 -04:00
Kelvin Sherlock 9343302f9b status report (untested and incomplete) 2021-09-26 19:44:51 -04:00
Kelvin Sherlock dbf4e07b95 save restore cursor 2021-09-26 19:44:12 -04:00
Kelvin Sherlock 74d0ee7f07 based on testing, will not advance to column 80 unless DECAWM is set. 2021-09-25 21:28:12 -04:00
Kelvin Sherlock 45aea0293f arrows, screen erasing, region fixes 2021-09-25 21:27:48 -04:00