Willard,

> Huh? I'm just another failed CS student who never finishes anything.

Looks to me like you’re still diligently hacking away, pal. :-)

I’ve left so much unfinished, dude. I have to-do lists older than my children 
(I’m 64). I could bundle ‘em, insert page numbers, and finally have a novel, 
useless but finished. Future to-do lists could become sequels. (I may have 
found my calling!)

Anyhow … I posted that RAM/ROM map file earlier tonight, as you’ve probably 
seen upstream of this message. (At least one thing's finished!) Still happy to 
e-mail it should you have trouble downloading. Ideally, I’d like to add the 
handwritten notes I added to my printed copy of this file, but that’s not 
likely, at least not soon. First, I’d have to find the printed copy. LOL

It was fun looking over many of the files I’ve stored away. LOTS of unfinished 
stuff, and in particular my Holy Grail, a 3D spreadsheet. I may have already 
written about it here a long time back. Basically, I was part of a team 
gathered to write the “Avant!" ROM destined to be the next generation after 
Super ROM and Ultimate ROM II. My particular piece of the project was a Super 
3D Spreadsheet (no idea what the final name might be; I called it 3DSS and 
sometimes DDDSS while coding). This would be the ultimate Lucid Killer.

It was, as the name implies, a 3D spreadsheet, multiple worksheets stacked as 
pages, all interactively linked. It had to be FAST!!! So I decided to take as 
direct control as possible of keyboard input, cursor control, and screen 
drawing. I learned a lot (forgotten much now) and managed to do some pretty 
cool things.

One thing that excited me was some wicked fast display. I could highlight a 
spreadsheet cell with an inverse cursor (light text on dark background, like 
highlighting a word in the TEXT app) then press and hold an arrow key, and that 
cursor would select the next cell, and the next ... move to the next row and 
continue on. It would *scream* across that screen —fun to watch. I also devised 
a way to have up to 64 function keys by using the normal 8 positions in 
conjunction with modifier keys (CTRL-F1…F8, GRPH-F1…F8, CODE-F1…F8, and so on); 
press the modifier key, and the labels would instantly reflect the change.

PCSG did one helluva job in designing a sparse matrix array for their Lucid 
spreadsheet. Unlike other spreadsheets, sparse matrix used no RAM to store 
empty cells. You could have a much larger spreadsheet than other methods 
allowed. This was awesome, and I used the same method.

There were other innovations I was trying to develop and can’t currently 
recall. Since the project ran out of funding before it could be finalized, I 
imagine it’s okay now to post some of what I devised, so folks here can extract 
what they want from it. I imagine the people could take it way beyond my 
stumbling, fledgling efforts.

I’ve rambled enough for now, I think. ;-) Let me know what I might do to lend a 
hand in your adventures.

Best,

— Nuge —





On Apr 5, 2017, at 9:50 PM, Willard Goosey <[email protected]> wrote:

> On Wed, 5 Apr 2017 16:25:23 -0400
> Mike Nugent <[email protected]> wrote:
> 
>> LOL I think it’s the other way around these days.
> 
> Huh? I'm just another failed CS student who never finishes anything.
> 
>> I took another look, and it appears the address Tandy gave you is
>> where it checks to see whether CTRL-C or CTRL-S is pressed, setting
>> the carry flag if so. Here’s what this area of ROM looks like in my
>> notes:
>> 
>> ———  
>> KEYX
>> 7270H - Check keyboard queue for pending characters
>>         Exit:
>>                A - Destroyed
>>           Z flag - Set if character pending
>>           C flag - Set if break is present
>>         Note: called via CHSNS
> 
> Works as advertised.
>> 
>> CTLCHK
>> 7283H - Check for break (Control C) or wait (Control S)
>>         Exit:
>>                A - Destroyed
>>           C flag - Set if Control C or S
>>           Z flag - Set if no control C or S
>>         Note: called from KEYX (7270)
>> 
> Experimentally, it looks to me that this returns Z set if no (^C or ^S)
> or Z clear if (^C or ^S). I can't get it to return C set ever.
> 
> 
>> BRKCHK
>> 729FH - Check to see if SHIFT BREAK is being pressed.
>>         Exit:
>>                A - Destroyed
>>           Z flag - Set if shift break is being pressed
>>           C flag - Set if shift break is being pressed
> 
> Yes, this one sets both Z and C! As advertised.
>> 
>> 72B1H - Scan BREAK, CAPS, NUM, CODE, GRAPH, CONTROL, and SHIFT key
>> column of keyboard.  Reset the bit in the A register that corresponds
>> the key being pressed
>>         Exit:
>>                A - Each reset bit corresponds to a key being pressed 
>>                    (BREAK=bit 7, CAPS=bit 5, etc.)
> 
> And I just plain didn't have this one!
>> ———  
>> 
>> I think I’ll have to post this version of the maps somewhere soon.
>> Just have to deal with some urgent business first. Meantime, hoping
>> the above is helpful.
> 
> Oh yes. You're a lifesaver!
>> 
>> I’m also going to send a copy (about 93Kb) to your sdc.org address if
>> you say it’s okay.
> 
> That would be awesome! Thanks!
> 
> 
>> 
>> — Nuge —
>> 
> Thanks,
> Willard

Reply via email to