User Tools

Site Tools


blog:pushbx:2022:1016_95lx_hang_pdzm_zip_ldebug_line_history_comments

95LX hang, PDZM, Zip, lDebug line history comments

2022-10-11

The other day I managed to hang the 95LX again, to the point that Ctrl-Alt-Del did not work. This time I used Shift-Ctrl-On to reset the system. This reboots and queries whether to re-initialise the RAM disk. I chose "No". I found that while the disk contents and settings where preserved, the current date and time were not. (Supposedly this way of resetting may damage the RAM disk contents even if you reply not to reset the disk memory. So perhaps don't repeat the experiment.)

Other than that I tried out running PDZM (the Public Domain ZModem program) version 1.26 between two dosemu2 instances on the server, connected to two ends of a socat PTY. This surprisingly worked fine both with or without the -h -d switches.

So today I retried running PDZM on the 95LX, connecting to the rz/sz programs on the Linux box. As expected this requires using both of the -h -d switches. Further, receiving to the 95LX at -b57600 appears to fail reception of the file data repeatedly. Instead using -b9600 seems to make the transfer work. Settings between those two may also work but I have not yet tried them.

The windowed interface of PDZM does somewhat work, the text is readable. However, the window is too large to see all at once and the progress bar is not distinguishable from the window's background.

Other than the speed and interface difficulties, it appears to work fine, allowing to send and receive files with only the sender specifying the name. The file length is transmitted exactly, unlike with the XModem protocol. Even with the 9600 baud setting the speed is comparable to what the 57600 baud setting results in for Datacomm's XModem.

2022-10-12

Yesterday I also transferred Info-Zip's zip program to the 95LX. Although it is less of a need now that PDZM works I still wanted to try it. Out of Info-Zip's distribution zip file I chose zip16-sm.exe which is supposed to be the build requiring the least amount of (consecutive) memory. (It is documented that it may have worse compression ratio as a trade-off.)

Running it from the shell started from Filer did not succeed, failing due to lack of memory. Rebooting the system and running zip.exe from the boot shell ($sysmgr not yet started) did succeed. A small test case appeared to work. This is with 418 KiB of RAM, out of the total 512 KiB, allocated to main memory.

Today, I created the least complicated possible way of allowing the disassembler "tab to" messages to be displayed within the visible 40-column view of the 95LX. These include the "jumping" and "not jumping" messages as well as the referenced memory dumps (only in R disassembly) and also the machine needed display (both for R and U commands). Instead of tabbing to end the message in the 79th column, in the 40-column friendly mode it will tab to the 39th column now. This is perhaps not the most desirable way to handle this, but it is the simplest solution possible. (An idea is to display the tab to messages in the first line if there are 5 or more bytes of machine code to dump, that is the machine code doesn't fit in one line.)

2022-10-15

Not much to write about today other than that I revisited and commented lDebug's command line history feature. I was surprised to find that I didn't much comment on the structure of the history buffer back when I added the history feature to the rawinput line editor.

Briefly, the history is stored in two arrays growing toward one another. The first, low array contains the text data. The second, high array contains references to where the text of an entry ends. The used operations are append a new entry, delete the oldest entry, and walk the list of entries up and down when recalling the history. The format is designed to enable quick random access without wasting space on terminators or redundant information. Unlike another FreeDOS Debug descendant's history recall PR, the length of an entry is calculated without scanning the data and a history entry's metadata is composed of not two pointers but only a single word (plus one more word for the total buffer that's the high array's special first entry).

Additional information

You could leave a comment if you were logged in.
blog/pushbx/2022/1016_95lx_hang_pdzm_zip_ldebug_line_history_comments.txt · Last modified: 2022-10-16 15:13:55 +0200 Oct Sun by ecm