5x7 dot matrix screen

Talk about your programs in progress. Discuss how to implement features, etc.
Forum rules
This section is for testing Commander X16 programs and programs related to the CX16 for other platforms (compilers, data conversion tools, etc.)

Feel free to post works in progress, test builds, prototypes, and tech demos.

Finished works go in the Downloads category. Don't forget to add a hashtag (#) and the version number your program was meant to run on. (ie: #R41).
User avatar
edrive
Posts: 34
Joined: Mon Jan 18, 2021 8:03 pm
Location: Germany
Contact:

Re: 5x7 dot matrix screen

Post by edrive »

DOTMAT V5 adds changeable step duration time for sequencing per page.
Step time may be changed in the F9 menu by using the cursor arrow up/down keys.
Range is from 1 sec to 120 sec.
Like in the color menu the page up/down keys proceed to the next page,
but without leaving the menu - the menu itself then takes the settings of that pages.

Besides that I tried to minimize screen flickering when changing pages.
Which is only possible in some cases (when layer1 doesn't need to be redrawn).
User avatar
edrive
Posts: 34
Joined: Mon Jan 18, 2021 8:03 pm
Location: Germany
Contact:

Re: 5x7 dot matrix screen

Post by edrive »

DOTMAT V6 has come major code clean up.

Redrawing the screen in 20*10 mode now takes about 4000 CPU cycles less.
(Even though it's not recognisable.)

More functions have been moved into menus, accessible via the F-keys.
To crank up the wierdiness, I implemented some 10print inspired pattern generators.
A copy function, which copies text from the actual to the next page was also added.
Bugfix:
F10 in the color menu now works properly to make all pages have the same color and mode settings.
dotmatrix_pattern_green.png
dotmatrix_pattern_green.png (31.81 KiB) Viewed 297 times
dotmatrix_pattern_yel.png
dotmatrix_pattern_yel.png (23.79 KiB) Viewed 297 times
Last edited by edrive on Wed Feb 28, 2024 9:57 pm, edited 2 times in total.
User avatar
desertfish
Posts: 1039
Joined: Tue Aug 25, 2020 8:27 pm
Location: Netherlands

Re: 5x7 dot matrix screen

Post by desertfish »

I think this is a pretty cool program and am super impressed with all the variants of the dot matrix display you managed to cram in there.

1 question though can you maybe update the explanation in the original post a bit? I think the menus and keys it mentioned are wrong now?
User avatar
edrive
Posts: 34
Joined: Mon Jan 18, 2021 8:03 pm
Location: Germany
Contact:

Re: 5x7 dot matrix screen

Post by edrive »

As you mentioned it, I found a typo in one of the menus showing a wrong F-key no...
You're absolutely right, the program laks on documentation and the F-keys have changed often.
But the program is still changing a lot and I doubt that key bindings changes will go on.
Sofar most functions/key bindings are shown by the F1 menu.

Today's update fixes that one typo.
And I swapped out the complete pseudo random generation for the random text and pattern stuff.
User avatar
edrive
Posts: 34
Joined: Mon Jan 18, 2021 8:03 pm
Location: Germany
Contact:

Re: 5x7 dot matrix screen

Post by edrive »

I added an insert mode.
With the "ins"-key (on my de-keyboard its labeled "Einfg") you now can toggle between insert and overwrite, when editing text.
When insert mode is active, text right to the cursor will be shifted, when writing or deleting (affects also backspace deleting).
It does no line wrapping. Default after start is overwrite mode.
I think this makes text editing much more fun.
Downside for the moment is, that it is missing an indication whether insert or overwrite is active.
As a workaround I put it also in the F3 menu for the moment.
And a bug on the cursor positioning after entering something was fixed.
(V8 was already online a few hours online with the bug fix only, but I decided to reuse that #)
User avatar
edrive
Posts: 34
Joined: Mon Jan 18, 2021 8:03 pm
Location: Germany
Contact:

Re: 5x7 dot matrix screen

Post by edrive »

Just a few comments (no updates) this time:

Since R47 is out, it may happen that you get a message when starting the program, stating that it is using 65C02 specific code (not compatible with the 65C816).
This is due to the program makes a lot usage of the SMBx, RMBx, BBRx and BBSx operations only available on the 65C02.
And I'm even planning to do more usage of those commands.

In case the X16 once ships regular with the 65C816, I might start thinking of making a 816 fork.
But this is unsure. For now I will continue with the 65C02 opcodes.

DOTMAT8 will stay for a while, as its one of the pretty stable versions.

But some work is going on in the background:

- Actually I'm working on a cursor shape change when toggling between override and insert mode. But the VERA RAM is already eaten up completely with the actual version 8, so I have to sacrifice some cursor colors (having 16 cursor colors like now is kind of silly anyway).

- Then I'm working on expanding the character set to the full set of the original HD44780 LCD Display in ROM code version A00 (includes Japanese Katakana).
But the workload on this is extremely time consuming.
When knowing what your doing one gets maybe 8 characters on a full day, still needing some few more hours on correcting errors (once it works at all).

Besides that, new character sets will only work in the 20*10 mode, due to VERA RAM is exhausted.
When in 20*10 mode new characters will need no further VERA RAM, but a lot of VERA RAM for the 40*20 mode. This is due to VERA doesn't support 4*4 pix tiles.

So the character set expansion is on hold for the moment.

Ways out would be:
- going 4bpp
- having new characters only in 20*10 mode
- dropping color options

I'm working on this program since end of last year (while still learning 65C02/X16) so I'm having tons of ideas what to do with this program (ranging from stupid to more or less useful).

Source code is about >200K pure assembly code at the moment (only counting the pure code files), which compiles to 16K.
Post Reply