Post Reply 
PX41CX
11-04-2022, 02:19 PM
Post: #21
RE: PX41CX
One of the (perhaps?) overlooked features of the PX series calculators is the backlit display.
This is a feature that I appreciate (a lit keyboard would be nice! Smile )

...and while I'm at it...

A serial interface (for plotter or whatever) and/or an IR interface would be nice options....

TomC

(11-04-2022 03:58 AM)toml_12953 Wrote:  
(10-29-2022 07:58 PM)agarza Wrote:  So, I really wanted the full functionality of the HP41CX for the PX DIY calculators.
But the ATMEGA328 has very limited memory (both flash and ram). Fortunately, there is a relatively new microcontroller from Microchip. Same physical size and thru hole (28 pins) but with lots of ram and flash.

So what's the advantage over the SwissMicros DM41X? (other than cost, of course.) It seems like the DM41X is a better choice if you want to add modules without reflashing the whole thing or if you want to print to an infrared printer.
Also, the DM41X is a portrait format, more like the original calculator.

Now if yours could interface with plotters, floppy drives, printers like the original, that would give it an edge over the SM version.
Find all posts by this user
Quote this message in a reply
11-19-2022, 04:53 PM
Post: #22
RE: PX41CX
Can you comment on first prototype:
Photos here:
PX-41CX Gallery

I'll upload a video soon.
Find all posts by this user
Quote this message in a reply
11-19-2022, 06:00 PM
Post: #23
RE: PX41CX
Very Nice!!! ..why the EEX - CHS key swap?

TomC

(11-19-2022 04:53 PM)agarza Wrote:  Can you comment on first prototype:
Photos here:
PX-41CX Gallery

I'll upload a video soon.
Find all posts by this user
Quote this message in a reply
11-19-2022, 06:02 PM
Post: #24
RE: PX41CX
Back-lit display?

(11-19-2022 04:53 PM)agarza Wrote:  Can you comment on first prototype:
Photos here:
PX-41CX Gallery

I'll upload a video soon.
Find all posts by this user
Quote this message in a reply
11-19-2022, 08:20 PM
Post: #25
RE: PX41CX
(11-19-2022 06:02 PM)TomC Wrote:  Back-lit display?

Yes, same display.
Find all posts by this user
Quote this message in a reply
11-20-2022, 02:25 AM
Post: #26
RE: PX41CX
(11-19-2022 04:53 PM)agarza Wrote:  Can you comment on first prototype:
Photos here:
PX-41CX Gallery

I'll upload a video soon.
Nice!

The MENU button is a great idea.
Just make sure that GETKEY/GETKEYX return the following values for the top row, so that existing programs does not break.
Code:
Value Key
1     ON
2     USER
3     PRGM
4     ALPHA
5     MENU
Find all posts by this user
Quote this message in a reply
11-20-2022, 02:54 PM
Post: #27
RE: PX41CX
(11-20-2022 02:25 AM)Sylvain Cote Wrote:  
(11-19-2022 04:53 PM)agarza Wrote:  Can you comment on first prototype:
Photos here:
PX-41CX Gallery

I'll upload a video soon.
Nice!

The MENU button is a great idea.
Just make sure that GETKEY/GETKEYX return the following values for the top row, so that existing programs does not break.
Code:
Value Key
1     ON
2     USER
3     PRGM
4     ALPHA
5     MENU

The MENU button is not mapped in the emulator. GETKEY will not register the MENU key beeping pressed.So nothing will be broken.
Find all posts by this user
Quote this message in a reply
11-20-2022, 05:15 PM
Post: #28
RE: PX41CX
Very cool! Do you intend to sell it for the same price as the Voyager-sized calculators, and will it still be available as a kit?

Also, I agree with TomC---why swap EEX and CHS? Just for cosmetics?
Find all posts by this user
Quote this message in a reply
11-20-2022, 07:30 PM
Post: #29
RE: PX41CX
(11-20-2022 05:15 PM)Liam Hays Wrote:  Very cool! Do you intend to sell it for the same price as the Voyager-sized calculators, and will it still be available as a kit?

Also, I agree with TomC---why swap EEX and CHS? Just for cosmetics?

Same idea as the voyager series. Just better micro and portrait form. And price should be similar.

I swapped the EEX and CHS by mistake. They will be corrected on the next revision.
Find all posts by this user
Quote this message in a reply
06-05-2023, 06:07 PM
Post: #30
RE: PX41CX
Hello@agarza, I just ordered both PX41 and PX15 from your ebay store. I am looking forward to assemblying them. Please let me know if you have advanced the 41CX. I am interested in buying one also.

thank you

(11-20-2022 07:30 PM)agarza Wrote:  
(11-20-2022 05:15 PM)Liam Hays Wrote:  Very cool! Do you intend to sell it for the same price as the Voyager-sized calculators, and will it still be available as a kit?

Also, I agree with TomC---why swap EEX and CHS? Just for cosmetics?

Same idea as the voyager series. Just better micro and portrait form. And price should be similar.

I swapped the EEX and CHS by mistake. They will be corrected on the next revision.
Find all posts by this user
Quote this message in a reply
06-06-2023, 04:37 PM
Post: #31
RE: PX41CX
(06-05-2023 06:07 PM)grbrum Wrote:  Hello@agarza, I just ordered both PX41 and PX15 from your ebay store. I am looking forward to assemblying them. Please let me know if you have advanced the 41CX. I am interested in buying one also.

thank you

The PX41CX project remains in progress, steadily advancing with the aid of a few friends to eliminate its bugs/glitches. (Patrick, Tom, Pierre, Christof, Jeff, etc)

In it's current state, it has 319 registers, 600 extended registors and can hold about 18 pages of extra modules in it's flash memory.
Find all posts by this user
Quote this message in a reply
06-06-2023, 05:36 PM
Post: #32
RE: PX41CX
looks well; clear and easy to read.
Find all posts by this user
Quote this message in a reply
06-06-2023, 05:53 PM
Post: #33
RE: PX41CX
(11-19-2022 04:53 PM)agarza Wrote:  Can you comment on first prototype:

Looks handy and sturdy.

Might be crazy, but I'd suggest the main factor to set it apart from the Swissmicros DM41x would be communications.

Is there any chance of incorporating HP-IL or some usable form of data-port, at least via some later upgrade?
Find all posts by this user
Quote this message in a reply
06-06-2023, 06:24 PM
Post: #34
RE: PX41CX
(06-06-2023 05:53 PM)anetzer Wrote:  
(11-19-2022 04:53 PM)agarza Wrote:  Can you comment on first prototype:

Looks handy and sturdy.

Might be crazy, but I'd suggest the main factor to set it apart from the Swissmicros DM41x would be communications.

Is there any chance of incorporating HP-IL or some usable form of data-port, at least via some later upgrade?

It has a serial port. In the future, the idea is to use it to upload/download programs. And hopefully to print to a serial printer or console with a standard serial-USB converter.

HP-IL emulation could be done too. And use PIL-Box or a PC HP-IL emulator.
Find all posts by this user
Quote this message in a reply
06-06-2023, 10:51 PM
Post: #35
RE: PX41CX
(06-06-2023 04:37 PM)agarza Wrote:  In it's current state, it has 319 registers, 600 extended registors and can hold about 18 pages of extra modules in it's flash memory.

I obviously haven't kept up on this, good to know you support modules in Flash. Smile

How does one load ROM images into the ROM pages?

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-07-2023, 02:20 AM
Post: #36
RE: PX41CX
(06-06-2023 10:51 PM)rprosperi Wrote:  
(06-06-2023 04:37 PM)agarza Wrote:  In it's current state, it has 319 registers, 600 extended registors and can hold about 18 pages of extra modules in it's flash memory.

I obviously haven't kept up on this, good to know you support modules in Flash. Smile

How does one load ROM images into the ROM pages?

Currently the only way to load the ROM images is at compile time.
There is too little RAM, maybe one or two pages could fit.
Find all posts by this user
Quote this message in a reply
06-07-2023, 11:39 AM
Post: #37
RE: PX41CX
(06-07-2023 02:20 AM)agarza Wrote:  
(06-06-2023 10:51 PM)rprosperi Wrote:  I obviously haven't kept up on this, good to know you support modules in Flash. Smile

How does one load ROM images into the ROM pages?

Currently the only way to load the ROM images is at compile time.
There is too little RAM, maybe one or two pages could fit.

Thanks but not sure I follow the 2 statements - above it says "...can hold about 18 pages of extra modules in it's flash memory". Does this mean the Flash can hold a 'library' of 18 images, but only 1 or 2 can be 'plugged-in' to the 41 for use at a time?

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-07-2023, 04:27 PM (This post was last modified: 06-07-2023 04:47 PM by goosnarrggh.)
Post: #38
RE: PX41CX
(11-02-2022 05:18 AM)Sylvain Cote Wrote:  
(11-02-2022 02:43 AM)agarza Wrote:  Currently, the only way to add modules to the PX41CX is to flash them along with the firmware.
Are you sure ?

From what I am reading ...
1) the maximum directly Flash addressing space is 16 bits or 64 KB
2) the first 32KB is reserved for code, divided between boot code and app code while the second 32KB is reserved for data
3) of the 128KB Flash
3a) the first 32KB is reserved for code (mapped into the direct addressing space)
3b) and the last 96KB can be divided into three 32KB data blocks of which one can be mapped into the direct addressing space.
4) you also have three USART that can be used for RS232 transmission

So with code, you could come with a scheme that allows data transfer (ROM images) transfer over the serial interface and store the data into one of the three 32KB data pages.
You could then map a data page containing the ROMs into the address space. For sure it will be a little more complicated than that, but it seems doable.
Remember, the AVR is a Harvard architecture machine. It has two separate addressing spaces, one for fetching instructions, and the other for fetching/storing data. The Flash is mapped simultaneously into both address spaces via asymmetrical means. When it is accessed as program memory, it is addressed as an array of 16-bit words; when it is accessed as data memory, it is addressed as an array of 8-bit bytes.

Direct program memory addressing (via the JMP/CALL instructions) is able to directly access a theoretical maximum 22-bit address space, yielding a maximum of 4MiWords, or 8MiB. However, I am not aware of any AVR devices ever having been built which more than 256kiB of Flash.

Indirect program memory access is more limited; the IJMP and ICALL instructions are linked to the Z pointer register, which is 16-bits wide. Thus (unless page switching is employed) they are only able to address a maximum of 64kiWords, or 128kiB. For parts with 128kiB of flash or less, IJMP and ICALL are thus also able to reach the entire Flash memory without the need for page switching. However, page switching (via the RAMPZ register) is added in parts with larger amounts of Flash.

The entirety of Flash can also be indirectly treated as Data memory, using the LPM instruction, which (unlike when Flash is accessed as Program memory) actually addresses the Flash in terms of bytes instead of words. It also fetches data from Flash via the 16-bit Z pointer. Thus, page switching (via the RAMPZ register) is included to allow data to be fetched from Flash addresses above the 64kiB boundary.

One innovation in more recent AVR designs is the ability to also *directly* address Flash as data, by mapping a programmable 32kiB block of it into the direct addressing data space, where the full suite of direct and indirect addressing modes (normally used to access data in RAM) can also be used to access information within whichever 32kiB block of Flash is currently mapped into that space.

But mapping any given 32kiB subset block of Flash into the data address space does NOT take away from the WHOLE of flash always being accessible as program memory.
Find all posts by this user
Quote this message in a reply
06-07-2023, 04:33 PM
Post: #39
RE: PX41CX
(06-07-2023 11:39 AM)rprosperi Wrote:  
(06-07-2023 02:20 AM)agarza Wrote:  Currently the only way to load the ROM images is at compile time.
There is too little RAM, maybe one or two pages could fit.

Thanks but not sure I follow the 2 statements - above it says "...can hold about 18 pages of extra modules in it's flash memory". Does this mean the Flash can hold a 'library' of 18 images, but only 1 or 2 can be 'plugged-in' to the 41 for use at a time?

What I mean is that in flash memory you can store up to 18 pages (18 4K ROMS).
In RAM you could, in theory, store an additional 2 pages ( of 4K ROMS). But I'm not sure if this is practical, since there are plenty of modules that use more than 2 pages.

I have only tested it loading these modules : Advantage Pac (3 pages), Stat, Math , Games, Survey, Finance and Aviation. All loaded at the same time (pages 8 thru f).
Find all posts by this user
Quote this message in a reply
06-07-2023, 05:24 PM (This post was last modified: 06-07-2023 05:25 PM by goosnarrggh.)
Post: #40
RE: PX41CX
(06-07-2023 04:33 PM)agarza Wrote:  
(06-07-2023 11:39 AM)rprosperi Wrote:  Thanks but not sure I follow the 2 statements - above it says "...can hold about 18 pages of extra modules in it's flash memory". Does this mean the Flash can hold a 'library' of 18 images, but only 1 or 2 can be 'plugged-in' to the 41 for use at a time?

What I mean is that in flash memory you can store up to 18 pages (18 4K ROMS).
In RAM you could, in theory, store an additional 2 pages ( of 4K ROMS). But I'm not sure if this is practical, since there are plenty of modules that use more than 2 pages.

I have only tested it loading these modules : Advantage Pac (3 pages), Stat, Math , Games, Survey, Finance and Aviation. All loaded at the same time (pages 8 thru f).

Perhaps you could come up with a scheme to allow those "plugged in" modules to be installed as hex file overlays, rather than being linked into the main application hex file?

When the device is first programmed from an erased state, the main hex file could be programmed in the main address rage, and all the "slots" for individual modules could be "blank" (all 0xFF's) which hopefully could be safely interpreted as meaning "unplugged".

When you want to "plug in" a module, you'd need to decide which "slot" you want to install it in, then modify the base address of its hex overlay to have the appropriate start address. Then use Microchip Studio to program that hex file into its selected slot *without* erasing the rest of the chip.

Rinse and repeat for each additional module you want to plug in.

Problems would arise, however, when the time came to "un-plug" a module after it was already installed. Because I don't think Microchip Studio's programming interface offers an option to selectively erase just one region of Flash memory, it's all or nothing. So I guess you'd have no choice but to erase the whole chip, re-program the main code again, and start over with installing your new selection of modules.
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: agarza, 3 Guest(s)