Good going with this, Steve. Are you debugging all this on real hardware or have you hacked VT to do 80x24, ie emulate MVT100?

Also, does MVT100 work with all the OptROMS that work with a DVI? Or are you attempting to do more OptROMS?

Your interrupt dilemma... sounds like an early REX function would be useful here. Swap out the the System ROM when activating VT100 to a hacked System ROM with VT100-friendly interrupt routines.

Philip

On 27/12/2020 1:21 pm, Stephen Adolph wrote:
My deep dive on VT100 driver integration into REX has been tiresome but interesting.  Many bumps on the road, and learnings.  Actually pretty painful to be honest.

I have been able to explore a few ROMs, and figure out if they work or don't work with "VT100".  (which really is a modified "Disk Basic" from Microsoft, and derives from the work others have done to disassemble Disk Basic).

Interestingly, ROM2 Cleuseau seems to work very well with VT100!. Should not be a surprise as it seems to use the LCD in a simple way.

TS-DOS ***almost*** works.  You can imagine that with a few tweaks it could work on an 80x24 screen, but  then again, perhaps not usefully.  "just look at the small screen!"

Haven't tried any other ROMs yet.  An 80x24 spreadsheet and word processor would be great!  Time to try Super ROM.

Anyhow, with a bit of knowledge gained, it seems like it might just be possible to modify ROM programs to use 80x24. Especially if they use the "stock calls" for printing to the screen.

I have implemented an "expert mode" and a "safe mode".  The safe mode renders option ROMs unusable in REX, whereas the "expert mode" means ..have at it.    So, if you wanted to use R2C100 on an 80x24 screen, switch to expert mode and off you go.

The most painful learning for me is just how complex it can become when you are trying to debug the combination of memory bank switching and interrupts.

I had originally wanted to move the VT100 driver into the REX ROM.  This would mean that 6 software hook programs would be serviced by running software in an option ROM. So, in active use there would be (1) the main ROM (2) the REX ROM and (3) a traditional OPTION ROM.

But what happens when the "system" is running, at the time of an interupt, on a separate OPTION ROM, and not either the main ROM or the REXROM?    This was not anticipated by Mr. Mo Budlong, or if he did think about it, it is a "secret".

Well I can tell you that I gave up after quite a bit of time sunk into debug! OMG.

What seems to be most reliable, is to run the "VT100" software hook programs in upper RAM, which is how it was meant to work all along.  So, for VT100 support you kinda have to live with some memory being taken up by that code, which reduces the usable RAM space somewhat.

"Typical" REXMGR.BA <http://REXMGR.BA> takes about 0x200 bytes or so without VT100, and including VT100 it takes about 0x04B5 bytes. That is more than 1k of RAM consumed with enabling both REX and VT100.

My prototype shows 28432 bytes free, whereas stock M100 (no REX) shows 29638 bytes.  A tradeoff I am personally happy with, for the advantages.

I appreciate that many users may not want an LCD plugged into their M100, but I personally really like it.  I think large-screen Text, and also programming, make it interesting, and still quite compact.

Anyhow, happy holidays 2020 to everyone and let us all hope for an improved 2021.

regards
Steve



Reply via email to