Jump to content
IGNORED

Foxit - in progress


GDMike

Recommended Posts

What I had in mind was this...

Step 1. Gather my routines and get them altogether to assemble using AORG >3000 as Lee suggested and save them out as dF80.

I can load this at program boot, START

 

Step 2. And find each routine's beginning address. Easy enough.

(Each routine ENDS with a  KSCAN and Branch out to my mapper procedure at a high address, somewhere around >E000).

And my program can call any routine address with a B @ >3456 or whatever and already mapped and ready to load the routine from the bank which is already predetermined.

as Lee also suggested, try cramming as many routines as possible into that 4K space, and maybe I can get by with a low load Time.

but, in my case, TIpi loads fast enough and I don't forsee a long wait for the ONE time load(Even in steps of records).

????

 

Edited by GDMike
Link to comment
Share on other sites

6 minutes ago, GDMike said:

What I had in mind was this...

Step 1. Gather my routines and get them altogether to assemble using AORG >3000 as Lee suggested and save them out as dF80.

I can load this at program boot, START

 

Step 2. And find each routine's beginning address. Easy enough.

(Each routine ENDS with a  KSCAN and Branch out to my mapper procedure at a high address, somewhere around >E000).

And my program can call any routine address with a B @ >3456 or whatever and already mapped and ready to load the routine from the bank which is already predetermined.

as Lee also suggested, try cramming as many routines as possible into that 4K space, and maybe I can get by with a low load Time.

but, in my case, TIpi loads fast enough and I don't forsee a long wait for the ONE time load(Even in steps of records).

????

 

So the E/A loader would load the code block as object code?

If you have the way to do it, saving the data as a binary program, or converting the object to a binary program, would mean FOXIT could load the 4K block itself when it starts in about .5 seconds. 

 

Wouldn't that be  BL @ >3456   ? 

  • Like 1
Link to comment
Share on other sites

2 minutes ago, TheBF said:

Wouldn't that be  BL @ >3456   

Sure, if I wanted, but I've just been mapping then B@ to my address and then taking care of the mapping again before calling my kscan.  But, that is only because I have one of these running, that's my help routine. But, yes I'd prefer to BL out and back.

Here's a video on a field add to it's max.

Link to comment
Share on other sites

2 hours ago, GDMike said:

Naaa. I'd have to build a loader, like a DF80 reader, and then setup the map and place the file read into SAMS manually at boot.

Don't know if this helps but I love disk functions 5 and 6 for this kind of thing.

They just blast in and out as long as you don't need more than 8K which you don't.

Here it is Forth. I can answer any questions.

 

But really you just set up the PAB and hit 6 to save and 5 to load.

 

Differences from TF below: 

VC! writes one byte.

V!  writes 2bytes (one CELL) 

 

ior means I/O response (error number) 


HEX
\ PRE-FAB file access mode selectors for default file binary type
0B CONSTANT W/O100  \ WRITE ONLY, binary, relative, fixed 100
0D CONSTANT R/O100  \ READ ONLY,  binary, relative, fixed 100
\ 13 CONSTANT PROG

: NEWPAB   (  file$ len VDPaddr #bytes mode -- )
           -30 ^PAB +!         \ create new pab in VDP RAM with NO buffer
           [PAB 30 0 VFILL     \ erase PAB and file name
         0 [PAB RECLEN] VC!    \ set reclen (0 means >100 (256) bytes)
         \ pulls params from the stack to init the PAB
           [PAB FLG] VC!       \ set file access mode byte
           [PAB REC#]  V!      \ set #bytes to save (integer)
           [PAB FBUFF] V!      \ set where the file will load VDP Ram
           [PAB FNAME] VPLACE  \ set file name
;

: SAVE-FILE ( file$ len VDPaddr #bytes -- ior)
       W/O100 NEWPAB  6 FILEOP  30 ^PAB +! ;

: LOAD-FILE ( file$ len VDPaddr size -- ior)
       R/O100 NEWPAB  5 FILEOP  30 ^PAB +! ;

 

  • Like 2
Link to comment
Share on other sites

1 minute ago, TheBF said:

Don't know if this helps but I love disk functions 5 and 6 for this kind of thing.

They just blast in and out as long as you don't need more than 8K which you don't.

Here it is Forth. I can answer any questions.

 

But really you just set up the PAB and hit 6 to save and 5 to load.

 

Differences from TF below: 

VC! writes one byte.

V!  writes 2bytes (one CELL) 

 

ior means I/O response (error number) 


HEX
\ PRE-FAB file access mode selectors for default file binary type
0B CONSTANT W/O100  \ WRITE ONLY, binary, relative, fixed 100
0D CONSTANT R/O100  \ READ ONLY,  binary, relative, fixed 100
\ 13 CONSTANT PROG

: NEWPAB   (  file$ len VDPaddr #bytes mode -- )
           -30 ^PAB +!         \ create new pab in VDP RAM with NO buffer
           [PAB 30 0 VFILL     \ erase PAB and file name
         0 [PAB RECLEN] VC!    \ set reclen (0 means >100 (256) bytes)
         \ pulls params from the stack to init the PAB
           [PAB FLG] VC!       \ set file access mode byte
           [PAB REC#]  V!      \ set #bytes to save (integer)
           [PAB FBUFF] V!      \ set where the file will load VDP Ram
           [PAB FNAME] VPLACE  \ set file name
;

: SAVE-FILE ( file$ len VDPaddr #bytes -- ior)
       W/O100 NEWPAB  6 FILEOP  30 ^PAB +! ;

: LOAD-FILE ( file$ len VDPaddr size -- ior)
       R/O100 NEWPAB  5 FILEOP  30 ^PAB +! ;

 

I just glanced it over, but I'm only needing to load 4K. Not sure if I need to do it twice (as maybe I don't need the code), but I've got to seperate out into 4K chunkies.

  • Like 1
Link to comment
Share on other sites

Finished with "revise" field list.

It took quite awhile, but it's working nicely!

 

I have to work on memos and how there handled next weekend, but a lot of things got working this weekend. Yeahhooo

Ill look for a video capture and do a video next week while I'm at home and have internet ?☺️

 

 

 

  • Like 1
Link to comment
Share on other sites

8 hours ago, GDMike said:

I just glanced it over, but I'm only needing to load 4K. Not sure if I need to do it twice (as maybe I don't need the code), but I've got to seperate out into 4K chunkies.

See the #bytes parameter. That's controls how many bytes to read or write. With functions 5 & 6 the # of bytes goes into what is normally the record# field of the PAB.

Max size is  8K. (>2000)

These things are so fast you could have 3 or 4 code blocks and load them as needed. :)  

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

10 hours ago, TheBF said:

These things are so fast you could have 3 or 4 code blocks and load them as needed. :)  

 

Yup, but since this program would just need it at boot and just store it. But, I Know what you mean, and it's very cool. I was thinking about just using my supercart to push code since it can hold a good 7K+ but, not everyone has access to >6000 so I'll just pass on that attempt.

I've screwed up classic 99 now, I don't know wth I hit, but now at boot of Foxit I get a garbled screen. WTH. I deleted the.ini file but it still happens.

I think this has happened before and I'm not sure how I fixed it.

Anyway, I called it a day and will look at it on Saturday night.

I got a lot done this past weekend. And I can't believe that field maintenance form is almost completed including revising field list with full editing. I'll upload a runable version soon. After I verify it runs in Classic9 again.

 

Oh...it looks like maybe I hit Ctrl equal or something in a sequence on the laptop keyboard apparently it turns off or on some registers in vdp? I'm still looking for a fix..

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

On 11/29/2021 at 8:34 AM, TheBF said:

See the #bytes parameter. That's controls how many bytes to read or write. With functions 5 & 6 the # of bytes goes into what is normally the record# field of the PAB.

Max size is  8K. (>2000)

These things are so fast you could have 3 or 4 code blocks and load them as needed. :)  

 

The reason I suggested Level-2 Subprograms >014 and >015 is that all the necessary 4KiB blocks of binary code can be loaded/saved at will, one 4-KiB block at a time from/to the same file.

 

...lee

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

20 minutes ago, Lee Stewart said:

 

The reason I suggested Level-2 Subprograms >014 and >015 is that all the necessary 4KiB blocks of binary code can be loaded/saved at will, one 4-KiB block at a time from/to the same file.

 

...lee

Ah!  I need to learn about those.  I have never pressed my DSR into service on the Level-2 Subprograms.

Thanks for the reminder.

  • Like 1
Link to comment
Share on other sites

I initialized all my registers at boot up to set my display to 80 col two colors, but I hit like

Ctrl enter or Alt enter or something crazy like that and it put me into 40 col mode, that was last Monday morning at like 6am, so I fooled around with it for about 10 minutes and gave up, being so tired after 13 hours, so today I just figured I'd play around with hitting those keys again and making sure in options that everything was pretty much the same as I thought it should be, I mean I know I never fooled with settings at all, so it has to be a key Combo thingy... anyway I got 80 Columns back but the display was distorted, so I hit some more something+ enter and it came around to my normal display...

Link to comment
Share on other sites

I've got one issue in the"revise" fields options that I have to resolve and I'll be able to upload a try out version of what is working.

 

In my revision routine, I have an error where if I go to edit a field and the field happens to be a memo and since only 1 memo is allowed and trying to revise that memo field to something else, I get the proper error message telling me that only one memo is allowed, but then it the program deletes the current Field altogether.

So, I'm working my way through that and that should be all that I need in order to start work on the "modify screen" routine.

 

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

Making some progress tonight. Sheeeez..nice.

Seems I'm able to change a memo Field to something else no matter what field numbers,1-9, and I can add a memo field but it places the new memo field as the last numbered field instead of replacing the field I selected.. !*✓% arghhhh...

But this is progress. Sometimes I think these programs think and just do what they think is best??

All my fields act the same during editing and they don't go out of phase, but when it comes to my memo field it always wants to add itself to the bottom of the list...crazeeeeee

Looks like I did that intentionally and totally forgot it..I lost some traction over the holidays and time off. I'll get it together soon.

Edited by GDMike
Link to comment
Share on other sites

I'll try to upload what I have...

DF 80 program name FOX start name is FOXIT

TO USE.  MUST have F18A AND SAMS card (or choose in classic99)

 

F9 escape out of help menu at boot up

 

CREA file works (changes likely later)

Used as, CREA DSK#.MINE as example

 

CALL VER works

CALL CLEAR works

QUIT works

SELE DSK#.FILE - example file I have been using in in DISK #4 so if you get an error try moving the file to dsk4.

MODI STRU allows creation of fields - If you REVISE a field and select its number to the left then change your mind and hit ESCAPE F9, that field will be deleted, but you can add it back of course.

THESE are the ONLY commands that work at this time.

 

to access the help menu, press F4 to close the command window and press F9,  if you want to close HELP, then press F9 and F8 to make the command window appear again.

NOTE: i made a simple change ---here is the latest FOX program..but its a small change so no worries

 

 

UP.rar

FOX

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

Keys and commands that work in the command box.

 

Left arrow, right arrow, space bar, characters, F3 delete Line, enter,  F4 hide, F8 Show

CALL CLEAR, QUIT, CALL VER

CREA DSK#.FILE

MODI STRU

SELE DSK#.Name

 

DISP STRU is functioning, but unfortunately it's not in this upload. Sorry bout that...

More work to do next Saturday night!

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

Fixed my bug..

what it was, - whenever I would just press enter on a command line the cursor would drop to the line below like expected, but if the cursor was already on the last row and I pressed enter, then my cursor would drop into no mans land, a row down, then it would correct itself and jump back up to the previous row. -- so now it just scrolls the screen up in the command window like it's supposed to...geez...

I had been testing with command words and everything has always been normal... never thought about just hitting enter over and over...

 

Just documenting since my last weekend update...

 

Edited by GDMike
  • Like 2
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...