Jump to content
IGNORED

Supernotes


GDMike

Recommended Posts

2 of the 8K supercarts are done and ready for a home.

 

2 more of the 8K supercarts each need 1 capacitor for finishing.

 

Another 2 of the 32K, (4 bank), supercarts each need 1 capacitor and 2 switches for finishing..

Waiting on parts .

 

(2 finished carts went out last week and 2 are ready, let me know if you want one).

 

You might already know, but..

Just FYI.. the battery is only needed to retain memory, otherwise, I don't put a battery in my own personal cart.

Edited by GDMike
  • Like 3
Link to comment
Share on other sites

I'll have to adjust my "number of Fields" in my help document to 15 from 10, but I have almost finished the DB FORM editor...

Here's what we know...

When a user pages up/down - the current page is always saved in the proper SAMs bank.

When a user USES, let's say, 10 pages of SNP pages and decides that this current page(11) is a good as ever place to setup a database form, in which only 1 DB form can exist, we don't have to worry about saving anything in order to prepare for the DB FORM, but we do have to increment the Bank# in use by 1, because the DB form will be saved to the next available bank # and a copy of the form will exist in page 2(odd page), of the bank. Since SNP pages always take 2 pages per 1 bank.

Why a copy..well when I remember, I'll let you know... but that's my plan from last week.. I just have to figure why haha... it'll come to me after I read my history docs...

But it's probably got something to do with the even and odd page per bank sequence that I've got, plus a backup never hurts..

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, TheBF said:

That's coming along.  It's a big project.

Have you made an overlay system or do you use SAMS pages for extra code?

This is actually like a big circle of code, my ending is reaching my beginning.lol, what I mean is, I'm finding some routines I use in SNP (basic), are being used here in the DB portion, and so far my code has been relatively small to get where I'm at. Which is pleasing, but I'm having to fanangle things because the program would be large if I had to rewrite and use redundant code again.

No sense in that..

Just a couple flags and things go that way..

I have figured the overlay. And it's pretty neat.

I don't want to interrupt or change things that a user already entered in SNP. So let's say, for example, a user has text on pages 1-50. And then all of a sudden they say, I don't have any more text for this document (file), so hitting F10 on any blank SNP page prompts the user to create a dbf form. Right here. And what happens is I mark SNP text pages from 1 to the current page and incrementing my SAMs bank for database data only while leaving SNP text pages 1-50, let's say, alone and accessible,.

Pages are flagged for SNP text or SNP DB..

That's the theory...so far I haven't gotten that far, but I have been able, am able, to write SNP text pages 1-??? And pressing F10, setup a DB form, I'm able to save the form in the next available bank,(as planned), I was able to save the whole thing as I normally save SNP files, read the file back and with some cheating, because my code stops here, but I was able to see  SNP text as normal without any changes and then I saw my form followed as expected. Of course this is not how I plan on getting to the database, but it was a test ..

My addressing are 15 EQu with steps of 30 bytes. 

You can probably now imagine blocks of 31, I've got a separator of 1 byte, so yeah, you can imagine a list of a field 1 every 15 fields being the 30 character block of data..

I don't have all the formula in front of me, but it's something like, each bank is 4096 bytes, I don't save any field labels to this, because the form is saved as a separate entity, so i just match the field 1 form to the 1st bank data ..etc....if that makes sense.. yikes!!

Anyway, the layout is just raw data in banks of 4k up to EOSams..

There's field header information that also gets stored...that's the part that tells us the structure of the field..as in, cursor location on screen, field type, date, time, char, value.. and then, something else..I forgot, but it'll come to me..lol, maybe it's bank#..? Anyway...it's all coming along..

 

It takes time because I'm writing my separate history docs while writing the code, so I don't forget what I did and why . Even though, I'll be asking why...lol..

BTW...a little change to note... the Field structure info is held in the beginning of the field EQu address... like 6 bytes...so, yes.. adjusting my field addresses from 30 bytes to something like 36 bytes...my bad.....

 

Edited by GDMike
Link to comment
Share on other sites

9 hours ago, GDMike said:

... I'm finding some routines I use in SNP (basic), are being used here in the DB portion

 

Hmm.. now where have I heard of that approach before...   

TYPE MOVE FETCH STORE ACCEPT CR CFETCH CSTORE MIN MAX ERASE BLANK KEY  -TRAILING ... :) 

 

Sounds like you are making a system of re-usable code for your project. With your documentation approach you will have a nice toolkit to make progress.

  • Haha 1
Link to comment
Share on other sites

Was able to make good progress..

99.8 percent complete with the DB form Editor.

 

95 percent complete with the"division" of SNP text data detection vs SNP database work area boundary detector. I was able to save the combination, SNP text + SNP database form, load it into memory and then I was able to Page into SNP text screens one after another until I encountered my, "warning, there are no more SNP pages, a database has been detected. Would you like to Access the database at this time? Message.

And I was able to layout the memory addresses for my 15 fields .

Note, I've still gotta play with my pnum variable, right now a user cannot bump into the database form by simply paging up/down. But the call GOTO function has a little tweaking to do... because it'll allow it. I'm hoping to choke that through my pnum, available pages variable.

 

Edited by GDMike
  • Like 3
Link to comment
Share on other sites

I was reading up about interrupts and I saw mention of this, as the writer didn't elaborate any further..

The anti-virus bug
Note that reseting the TI-99/4A clears the whole scratch-pad including >83C4, therefore a hook will not survive a reset. This was intentional from Texas Instruments, to prevent a virus from remaining active by just hooking the interrupt routine.

BUT... the code that clears >83C4 is written in GPL... and the GPL-interpreter allows interrupts! Thus, it is possible that an interrupt occurs after a reset, before >83C4 has been cleared, which would leave the hooking program in control. This never occurs in case of a hardware reset (e.g. turn the TI-99/4A off, then on) since the VDP chip takes a long time to reset itself before it generates the first interrupt. However, a software reset, such as pressing the <quit> key does not reset the VDP, so an interrupt may occur in time for the hook to survive the reset...

  • Like 2
Link to comment
Share on other sites

I'm still working on the DB form Editor. I didn't include an auto repeat in this editor, and argued with myself on adding it or not to add it. Looks like Shadow lost, so I'll be adding it and working on that tomorrow and I think that's about it for the editor.

Next will be adding the pieces of code that will have to be deciphered later by the program, this part deals with field type, length and whether or not there's a beep, etc...

Edited by GDMike
  • Like 2
Link to comment
Share on other sites

Another long night ahead, but at least SNP keeping me company. Working on whatever I messed up last week end. I've already found something... but no biggie, well straighten it out.

That's why I review what I ended with.. ?

 

IMG_20220423_194908085.jpg

Edited by GDMike
Link to comment
Share on other sites

Yes, coffee begs for doughnuts, but maybe I just got old because I don't have that craving anymore. Plus, I ate the last one anyway a few years back.

Tonight I'm bothered by putting together a raspberry pi 4 icepack heatsink and loading up a OS. SNP thinking time, I call it. Timeout of sorts, I do pretty well when I come out of this " pi state".

Edited by GDMike
  • Like 1
Link to comment
Share on other sites

2 ea 8K supercarts are finished and available for purchase. I've got 3 ea 32K versions in the works. It's been hectic around here lately, helping my son with a rack and pinion problem and power steering pump issue lately.

Haven't had much time for anything this month..

I still need supercart labels made, I'd like to make something like a title of, 8K supercart and 32K supercart. Cyan on black font colors.

 

  • Like 1
Link to comment
Share on other sites

Just noticed on my tipi enhanced system that my date in SNP is reporting incorrect date.

I just ran a tipi update too, anyway It's  always connected to the internet all these days, I don't see a way of setting it manually, I suppose it's supposed to always grab that from internet but I'm wondering how did the "time zone" get knocked off it's knees like that and I don't know a way to reset the time zone either without pulling my pi off the board and connecting to a monitor and doing a "raspi- config" on it. Looks like I'll be REimaging.

Edited by GDMike
Link to comment
Share on other sites

The time away from SNP this week has allowed me to think about an issue I was having where

Part of my code was eating 3k up quickly.

I just saved myself 3K just like that! This weekend should get interesting.

Edited by GDMike
Was tired and made a typo
  • Like 2
Link to comment
Share on other sites

What I'm doing..so far, in my interpreter, is I start reading the screen when user said, hey I'm done making my DB form. So there's only a few key characters to look for, the first and main character is "##" once identified, we take that as a valid DB form value that tells us, hey, were here and this is valid for a DB form! We also want this position noted as an entry point to whatever text proceeds this including a blank.

That's going to tell us, 1. That the user is giving us a valid value for making a DB FORM.. and we can continue processing until an error occurs or not.

The first value, location for entry,  will be saved in byte 1 of ram variable if it's the first occurrence, Field 1 cursor location.

 

Edited by GDMike
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...