Enhanced Pico-Dos

bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Enhanced Pico-Dos

Post by bxdanny »

A lot of software for the C1P (and the C2-4P/C4P) was not compatible with the 65D disk system, but I think it is still desirable to be able to load it from/save it to diskettes (or diskette images), rather than having to use ASCII listings, even if the simulated "tape" files are a lot faster than actual tape cassettes were. OSI did have a system for storing programs for "cassette" machines (at least the C1P) on disk, but it saw little use. It was called Pico-Dos, and it simply added two commands to the ROM Basic, LOAD <n> and SAVE <n>, where <n> was a number from 1 through 8. When I added a 610 board and floppy drive to my C1P, that was all it came with. And while I quickly obtained copies of OS-65D from other users, I thought that the Pico-Dos was still a good idea, and decided to add features to it. When I had my old C1P disks converted to emulator files (thanks again, Mark), I continued to work on it, and this is the result. The main added feature is that it adds backspace capability to the C1P under ROM Basic, but there are several others, as listed in the included documentation. There are also several possibly interesting programs included in the attached disk image. These include two programs I wrote that were sold by Orion Software Associates (a disassembler and the game Mini-Gomoku) and the original C1P version of Monster Maze by Dave Edson. This version of Pico-Dos runs both on the C1P, and on the C2-4P/C4P with Cegmon installed.
Attachments
ep34.zip
(40.1 KiB) Downloaded 1077 times
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

OSI Editor for Enhanced Pico-Dos

Post by bxdanny »

When I added backspacing to Pico-Dos, my thoughts were that that would be just an interim step, and that if possible, I wanted to add full editing capability, similar to that in 65D 3.3 and the version I added to 65D 3.2. I have now succeeded in doing that.

How is that possible, since the Basic is in ROM? The answer lies in the call to the JMP instruction at location 3 that is used to issue the OK prompt. By hooking that, I can execute other code whenever the 'OK' prompt is displayed. The disk image attached to this message is basically the same as the one attached to the parent message, except that Program 6 (which had been Ridge Cruiser) has been replaced with a program that loads the Editor. Once run, typing an exclamation point and a line number after an 'OK' prompt brings up the line for editing. The only catch is that, before you can edit a second line, you need to execute some statement so that 'OK' is displayed again. The easiest way is simply to type a question mark and <enter> to execute the statement PRINT (or use "?;" for PRINT; to reduce the number of lines that screen scrolls). If you forget and get an error message, that includes the 'OK', so it will work on the second try.

Source code is included (such as it is). I did add a few comments (and delete a couple of confusing ones), but there still are not a lot.
Attachments
ep34e.zip
(41.72 KiB) Downloaded 1068 times
bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Enhanced Pico-Dos

Post by bxdanny »

I did one more update to this, a few months after I posted the last one, but never did post it here, so I am doing so now. The basic difference between this version (1.35) and the previous one (1.34) is that this one can run on a CEGMON-equipped C1P, and will use the CEGMON screen handler for output when present.
Attachments
ep35.zip
(37.84 KiB) Downloaded 578 times
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
dave
Site Admin
Posts: 710
Joined: Tue Sep 09, 2008 5:24 am

Re: Enhanced Pico-Dos

Post by dave »

This is great! Thanks for sharing it with us. Would you mind if I host this on the archive and on the github site? (with proper attribution, of course)

Dave
bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Enhanced Pico-Dos

Post by bxdanny »

Dave,

Be my guest. Post/host it wherever you want.

--Danny
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Enhanced Pico-Dos

Post by bxdanny »

One final update to this. The Editor can now edit multiple lines in succession, without the need for the OK prompt to appear, and is now compatible with CEGMON (although only in 'scroll up text from the bottom of the screen' mode). Also, warm start reinitializes the disk PIA so that disk access can continue. And the Disassembler (Program 1) now outputs standard syntax for addressing modes. A few more details in the included text file.
Attachments
ep36.zip
(48.97 KiB) Downloaded 408 times
Last edited by bxdanny on Thu Nov 17, 2022 1:40 am, edited 1 time in total.
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Enhanced Pico-Dos

Post by bxdanny »

I said that 1.36 would be the final version, and I will stick to that as far as the actual system code on tracks 0 and 1 is concerned.

But I did find a very minor glitch or bug in the Editor, and wanted to fix it. That turned out to involve a bit more than I at first expected, but I succeeded, and wanted to share the results. Basically, the glitch was that, under certain very specific, and perhaps rare, circumstances, a character that was under the cursor when <enter> was pressed would not be returned to visibility, but would appear instead as a blank space.

The attached ZIP file contains a disk image of the 1.36 system with a corrected Editor program (Program 6), and a text file (ep36f.txt) which discusses both the bug in (perhaps too much) detail, and also some other things about the system that I had wanted to document before, but never did.
Attachments
ep36f.zip
(50.75 KiB) Downloaded 405 times
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Enhanced Pico-Dos

Post by bxdanny »

One more thing I wanted to mention, but forgot to.

If you try to LOAD a program from disk from within another program (but don't use LOADRUN), you will receive the new error message ?ML ERROR. This was intended to stand for Multiple Load error.

In truth, ML is one of a very limited number of possible "new" error messages, each consisting of the second letter or character of one error message, and the first letter or character of the next one. ML is actually the M of TM (Type Mismatch) plus the L of LS (Long String). It is similar in this respect to the FS (Full Stack) error in OS-65U, which actually consists of the F from NF (NEXT without FOR) plus the S from SN (Syntax error).
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Enhanced Pico-Dos

Post by bxdanny »

OK, so there is a 1.37 after all.

I had not been properly initializing the disk PIA to support dual drives, specifically to make the Drive B select line (PA6) an output, unless the system was reset and warm-started. That means that attempting to SElect drive B on real hardware would probably not be successful. That has now been corrected. The Device 8 ports on a 550 or 555 board are also now initialized on boot-up*, since the system contains input and output drivers for them, but had not previously initialized them.The Programs section of the attached disk image is the same as on the OrBdGm1a.img file that is part of Gomoku13.zip, except that:

- A few REMarks (in lines 13, 35, and 220), and nothing else, have been changed in Program 6 (the Editor loader), and
- Line 90 in Program 4 (Gomoku) has been changed to display a progress counter, like that shown when the tape version of the program is loaded, when generating the tape as well.

*Edit: I originally created, and uploaded, a version that initialized those ports on both boot-up and warm start. Then I realized that that was unnecessary, since the ACIAs are not connected to the reset line. As no one had yet downloaded that version, I replaced it with this one. But traces remain in the code.

EDIT #2 (1/7/23): It seems that, just before uploading the second version of the file, I mistakenly overwrote Program 4 with a copy of Program 6. As I write this, two people (other than myself) have downloaded that version. But I do want my intended finished product to be what's here, and don't want to post another separate version. So I am, reluctantly, replacing the version that is here for a second time. If, for some strange reason, anyone should want a copy of what was posted here for most of January 6th and 7th, it can be had by booting the current version, then typing LOAD 6 followed by SAVE 4.
Attachments
ep37.zip
(40.46 KiB) Downloaded 384 times
Last edited by bxdanny on Sat Jan 07, 2023 10:26 pm, edited 1 time in total.
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
bxdanny
Posts: 312
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Enhanced Pico-Dos

Post by bxdanny »

I am wondering if anyone has actually found this software to be useful. I see that it has been downloaded over 700 times (for the early versions, fewer for later revisions), but only one person (the site administrator) has posted any comment about it.

Anyway, I found that the Editor would lock up if run on the "UK101E" configuration (UK101 with 2k of video RAM). I've been able to find and fix that problem, thanks largely to the debugger feature of WinOSI. [Also on the UK101, an incorrect code for character-delete would be sent to the tape/serial port when the EK<>0 or "echo keys" mode of the Editor (see the text file in the attachment) was used.]

And since none of the included games ran on that UK101E configuration, I have modified one of them (Program 3, "Hex Fifteen Puzzle") so that it would. Also, Program 7 is back to being Cage (in a C1 and C2/C4 compatible version) instead of Cubic, and the output of Program 9 (OSI Grand) on the C2/C4 was adjusted to be more similar to that on the C1.

I was about to post this last month as version 1.37f, when on a final look-over I noticed that, if the Device 8 input driver were ever actually called through the main 65D input routine, the result would not be returned to the caller (and the same for the even less useful "null input"). These were easy fixes, if not very useful ones, but they gave me an excuse to up the version number to simply be 1.38. I also took some time to edit together a text file of documentation for the system. This really and truly will be the final release of this package, and I strongly recommend its use in preference to earlier versions.

Edit 8/22/23: One more thing i forgot to mention, all tracks of the disk image were re-written to eliminate "noise bytes" before the track headers.

Edit #2 8/27/23 Once again, I find that what I uploaded isn't exactly what i intended. Apparently, before correctly patching the device 8 input driver, i mistakenly applied the patch to the device 8 output driver, which was fine. So again, I am replacing a file that was previously attached with a corrected one. The only difference is the instruction at $24C9, which should be (and now again is) STA $CF01,X (9D 01 CF), rather than JMP $2588 (4C 88 25), which is what was there until this edit. There were four downloads of the file prior to this correction.
Attachments
ep38.zip
(46.6 KiB) Downloaded 343 times
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
Post Reply