Jump to content
IGNORED

fbForth—TI Forth with File-based Block I/O [Post #1 UPDATED: 06/09/2023]


Lee Stewart

Recommended Posts

Lee,

 

just tested in MESS using EVPC (80 column card) and Geneve, same result for both in 80 column mode.

 

Seems the editor is not setting the blinking register colors or is not clearing the blinking 'bitmap' that controls which character(s) is(are) highlighted/blink in 80 column mode.

 

On the Geneve, this was a common problem with 80-column programs which didn't set these registers. The GPL emulation fix was to set up those registers as part of the overall initialization, v2.2 if I recall correctly.

 

I don't believe the F18A supports blink mode.

 

Edit: saved before proof-reading ;)

Edited by InsaneMultitasker
Link to comment
Share on other sites

Yes, right after TEXT80. 40 columns are ok.

 

Right now, I'm not sure what to do. I obviously need to get the latest version of MESS up and running; but, like I said before, I won't be able to do that until after I get back from the Faire.

 

I don't know whether you have any time to fool with it, but the relevant code is on block 30 if you wanted to edit it to see what happens. Lines 9 and 10 have the 16-byte array ( TXT8 ) for VR00–VR14 (16th byte is filler). VR00–VR07 should not be changed except where they don't change the screen image table and pattern descriptor tables. If more registers than the first 15 need to be set, the array can be augmented and the DO loop limit F in line 12 can be increased to accommodate the additional register settings.

 

Thanks for looking at it! :thumbsup:

 

...lee

Link to comment
Share on other sites

 

Seems the editor is not setting the blinking register colors or is not clearing the blinking 'bitmap' that controls which character(s) is(are) highlighted/blink in 80 column mode.

 

On the Geneve, this was a common problem with 80-column programs which didn't set these registers. The GPL emulation fix was to set up those registers as part of the overall initialization, v2.2 if I recall correctly.

 

I don't believe the F18A supports blink mode.

 

Edit: saved before proof-reading ;)

 

Where can I find the settings and do you think they will affect F18A performance?

 

...lee

Link to comment
Share on other sites

 

Where can I find the settings and do you think they will affect F18A performance?

 

...lee

V9938 manual. I didn't want to go by memory but since you asked, I believe you want to set vdp register 12 (decimal) to the same value as register 7. Technically, you should clear the blink attributes and the blinking on/off setting, though if you set both registers to the same foreground/backgrounf no one should be the wiser. Presuming no mistakes this time...

 

LI R0,>07F5 set nromal fore/background colors

BLWP @VWTR

LI R0,>0CF5 set blinking fore/background colors

BLWP @VWTR

Link to comment
Share on other sites

V9938 manual. I didn't want to go by memory but since you asked, I believe you want to set vdp register 12 (decimal) to the same value as register 7. Technically, you should clear the blink attributes and the blinking on/off setting, though if you set both registers to the same foreground/backgrounf no one should be the wiser. Presuming no mistakes this time...

 

LI R0,>07F5 set nromal fore/background colors

BLWP @VWTR

LI R0,>0CF5 set blinking fore/background colors

BLWP @VWTR

 

 

 

Thank you, Sir!

 

...lee

Link to comment
Share on other sites

Lee, TEXT80 works fine in Classic99. I am unable to test on a real TI because the disk image is too large to fit on a floppy.

Is there a way for you to break up the disk image into smaller chunks of 360 sectors each?

 

How are you transferring to floppy? I can do whatever you need done. but you shouldn't be having this problem. FBFORTH093.DSK is a 90KB disk image (V9T9). The two files + disk overhead take up 337 of the 360 sectors, so I don't understand your dilemma. If you are copying it to floppy from the image, I would copy FBFORTH first. FBLOCKS is fragmented into 2 segments, but that shouldn't matter. If you need it as a TIDisk image, just rename FBFORTH093.DSK—it's the same format. If you're trying to copy the two files to a DSK image with Fred's program, it won't work because TI99Dir won't fragment files. However, Michael's program, TI-ImageTool, will handle it just fine.

 

You can also put the files on separate disks as long as FBLOCKS is on DSK1 when you start fbForth. Someday I'll try to implement boot-tracking; but, right now, fbForth looks for FBLOCKS on DSK1; but, the program (FBFORTH) can be loaded from anywhere.

 

Let me know specifically what you need and I should be able to get it to you.

 

...lee

Link to comment
Share on other sites

Lee,

 

just tested in MESS using EVPC (80 column card) and Geneve, same result for both in 80 column mode.

 

I have installed MESS 150, but I can't figure out how to set up the 4A with EVPC. I tried to use everything that works for the 4A; but, I'm obviously doing something wrong. I'll see if I can figure it out after the Faire.

 

...lee

Link to comment
Share on other sites

You need to use the "ti99_4ev" driver, which need the files ti99_4ev.zip and ti99_4a.zip. PEB slot 2 is automatically locked to the EVPC card.

 

Almost got it. I can't get any cartridge to be recognized. I've got to get on the road—I'll pursue it later. Thanks for your help! :)

 

...lee

Link to comment
Share on other sites

H-m-m-m...I now have 80-column mode working in MESS with the following settings for the first 15 registers compared to @Willsy's settings for the same mode in TurboForth:

*

VR    Me    Willsy
--    ---   ------
 0    04h     04h
 1    F0h     70h
 2    03h     03h
 3    E8h     E8h
 4    01h     01h
 5    06h     06h
 6    01h*    00h
 7    4Fh     F4h
 8    88h     88h
 9    00h     00h
10    00h     00h
11    00h     00h
12    4Fh     94h
13    10h     10h
14    00h     00h

* [Edited from first time posted]

*

I haven't had time to try to understand what the settings for the first 8 registers do differently from the 9918A or to insure they don't step on something in VRAM, but it works as far as I've tested it.

 

...lee

Link to comment
Share on other sites

That's odd because 80 col mode in TF works in mess with ev emulation! Weird!

 

...as it does now in fbForth. It's just that I expected the first 8 VRs to behave the same as for the 9918A except for VR00's accommodation of the 80-column bit. It appears the critical VR is VR03 and I just haven't had time to figure it out, yet—I'm on the road to the Faire.

 

...lee

Link to comment
Share on other sites

Lee, I finally managed to transfer FBFORTH to a diskette (my disk image was corrupted) and ran it on my F18A equipped console. I can confirm that it works just as advertised with no issues as far as I can tell.

Great work!

 

Thanks! Have you tried using the 40/80-column editor ( 13 LOAD ) in both text modes? BTW, had a blast at the Faire and it was a pleasure finally meeting you in person!

 

...lee

Link to comment
Share on other sites

Yes, and both editing modes work fine. Just to be clear though, the 80 column editor is really only 64 columns, but much sharper, correct? The original 64 column editor mangled letters pretty badly, so this is a treat to use :)

And yes, it was also great to see you too!

Edited by Vorticon
Link to comment
Share on other sites

That is correct. By that comparison, the '40' part of "40/80-Column Editor" is presenting only 35 columns at a time. The only reason to limit the 80-column editor to 64 columns is tradition and convenience: The 1KB size of a block neatly fits on sixteen 64B lines, which neatly fit....

 

The original 64-column editor also chews up a hell of a lot more dictionary space than the 40/80-column editor because it needs to load nearly all of the graphics-related blocks!

 

You've just given me an idea that I may explore someday, viz., a 40/80-column text editor for (any size?) text files that would, in fact, use the whole screen.

 

...lee

Link to comment
Share on other sites

It's not like we have a burgeoning Forth user community; but, If there are no more bug reports forthcoming, I will declare fbForth at version 1.0 and post it as such in the next day or so. I will probably modify FBLOCKS periodically with the modification date on the first block; but, will not update the version number of fbForth unless I actually change the ALC. Even then, I'm inclined to post something like a build number or a date for minor changes in the ALC of fbForth.

 

...lee

  • Like 1
Link to comment
Share on other sites

Here is fbForth 1.0, finally! :grin:

 

fbForth 1.0

 

@Willsy, you inspired me to modify the pattern for '0', as well as CPYBLK 's logging each source block copied and VLIST 's displaying the number of words listed. VLIST is not part of the kernel as is your WORDS . It needs to be loaded (block 21 of FBLOCKS).

 

@retroclouds, please post fbForth 1.0 in the Development Resources thread at your earliest convenience, if you would.

 

et al., fbForth 1.0 works in 80-column text mode in Classic99, MESS, Win994A and the F18A-augmented, real iron! :-o Block 30 must be loaded to use it, however.

 

...lee

Edited by Lee Stewart
  • Like 3
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...