Jump to content
senior_falcon

Extended BASIC G.E.M.

Recommended Posts

Making good progress on this. The work on the fonts is pretty much complete. I am working with Majestyx on some refinements for T40XB. So far:

As originally written, an inverted font is loaded by default to allow for highlited text. Now you can use 2 distinct fonts in T40 mode.

Can load and save fonts from or to disk. These can be placed in the normal G32 location, the T40 location, and the T40 inverted location. (ASC 128 to 223)

Printing asc 0 produced garbage before; now asc 0 is converted to asc 32 and it is printed as a space.

To come:

Word wrap when printing text on the screen.

Possibly a "window" so you can print text in a selected area of the screen or scroll just that area.

Adjustments to CALL LINK("CHAR") to allow custom definitions in the inverted font.      DONE.

 

Edited by senior_falcon
  • Like 7

Share this post


Link to post
Share on other sites

In the next day or two I will post a short video showing word wrap, windowing, and 2 fonts at once. (Here a window is an area on the screen where you want to print.)

CALL LINK("CLS") clears the entire screen

CALL LINK("CLW") clears just the window

I went to bed last night thinking there was a bug in the program because it didn't work the way I wanted it to. After sleeping on it I realized that the "bug" was actually a nice feature. 

  • Like 5
  • Haha 1

Share this post


Link to post
Share on other sites

Not much point in doing a video when a picture will tell the story just as well.

Here the screen is filled with ASC 127 (the cursor).  I opened two windows that are 8x8 characters wide and high, clear the window with CALL LINK("CLW")

For the upper one word wrap is enabled and I print in the upper left of the window with CALL LINK("PRINT",1,1,A$).

For the lower one word I have loaded a different font instead of the default inverted font. Word wrap is disabled and again I print to the upper left of the window, this time with CALL LINK("PRINTI",1,1,A$).

Note that when printing in a window the row and column is relative to the upper left corner of the window.

 

There is still a little work to do on this. With an 8 character high window you can print to rows 1-9. Row 9 scrolls up a line and then prints until done.

For some reason word wrap does not work when printing to rows 8 or 9. (edit) Figured it out!

 

40COLUMNWRAP.JPG


5 A$="These are the TImes that try men's souls."
10 CALL LINK("T40")
12 CALL LINK("FONTI",60)
13 CALL LINK("CHAR",42,"FFFFFFFFFFFFFFFF")
20 CALL LINK("HCHAR",1,1,127,960)
30 CALL LINK("WINDOW",4,4,11,11)
40 CALL LINK("CLW")
50 CALL LINK("PRINT",1,1,A$)
52 CALL LINK("WINDOW",14,4,21,11)
53 CALL LINK("CLW"):: CALL LINK("NOWRAP")
54 CALL LINK("PRINTI",1,1,A$)
60 GOTO 60

 

Edited by senior_falcon
  • Like 4

Share this post


Link to post
Share on other sites

It appears both windows are cleared with a single call. Would you consider an option to specify the window you want to clear?

Share this post


Link to post
Share on other sites
7 hours ago, retroclouds said:

It appears both windows are cleared with a single call. Would you consider an option to specify the window you want to clear?

Sorry, I should have listed the program so you can see how this works. It has been added to post #154. Line 13 is left over and not needed.

You can only specify one window at a time, and CLW will only clear that window. Default is to use the full screen as the window - i.e. the boundaries are 1,1,24,40

Edited by senior_falcon
  • Like 2

Share this post


Link to post
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.

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...