Post Reply 
Alternative HP-41CL mainframe (OS ROMs) update for beta test
10-07-2019, 05:05 AM (This post was last modified: 10-07-2019 05:07 AM by Ángel Martin.)
Post: #21
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-06-2019 08:55 PM)hth Wrote:  Regarding this lower and special characters in ED.

I have added support for it, but I also rearranged the code a bit to make it shorter. However, I am not sure everything works as expected. Lower case and many obvious special characters works, I can enter them and ARCLREC then PRA it to the printer. Then there are some that I do not understand what they are supposed to be. Pi is a star burst and basically a checkered square when printed?

How to test it properly?

Because of this, I also added the lowercase patch to [MASK] - so it's all coordinated and that's a much more convenient way to test it. Also it all runs on V41, which shows the lower case on the LCD quite nicely - so no need to print them (which as you say has some quirks)...

Using your alternate OS on V41 should be possible, just replace the NUCXT.MOD with your new set of ROMs... I can prepare a new MOD file if you want, but I know you don't use windoze (with good criteria) - so can you emulate it on your system?

ÁM
Find all posts by this user
Quote this message in a reply
10-07-2019, 04:56 PM
Post: #22
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-07-2019 05:05 AM)Ángel Martin Wrote:  Because of this, I also added the lowercase patch to [MASK] - so it's all coordinated and that's a much more convenient way to test it. Also it all runs on V41, which shows the lower case on the LCD quite nicely - so no need to print them (which as you say has some quirks)...

Using your alternate OS on V41 should be possible, just replace the NUCXT.MOD with your new set of ROMs... I can prepare a new MOD file if you want, but I know you don't use windoze (with good criteria) - so can you emulate it on your system?

ÁM

Yes, but it does not correspond to any actual hardware, so why test it that way, wishful thinking or do I miss something?

I can certainly fix my debugger/emulator to support Halfnut characters if needed, and looking at the source indicates that it probably already does. However, I cannot change the ROMs in my Halfnuts, and I do not have any Halfnut LCD on my 41CL (and it is unlikely, if at all possible, that people have such calculators).

Maybe it is a matter of different use-cases, my interest is in using real HP-41 hardware. I am open to re-evaluating this, if the situation changes or if I am proven wrong.

It is good to know that it has "issues" when printed, as that was what I experienced. Then probably it just works as expected.

Finally, about Windows. I do not use it and I did not like it at all in the past. From Windows 8 I think they really got their act together. These days I think it looks cool and I like the user experience. The main issue for me is that I am so used to having Unix at the bottom, that it really cripples me not having it. Having Windows on top of a real Unix (much like Apple did) and I could very well consider using it. However, it costs money, and for me it provides no real value for that money.

Speaking of Microsoft, I have just switched from Emacs to VS Code (a Microsoft product) for my HP-41 debugging sessions. Neither is perfect, but VS Code annoys me a lot less these days as a debugger front-end.
Find all posts by this user
Quote this message in a reply
10-07-2019, 08:10 PM
Post: #23
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-07-2019 04:56 PM)hth Wrote:  Yes, but it does not correspond to any actual hardware, so why test it that way, wishful thinking or do I miss something?
I can certainly fix my debugger/emulator to support Halfnut characters if needed, and looking at the source indicates that it probably already does.
However, I cannot change the ROMs in my Halfnuts, and I do not have any Halfnut LCD on my 41CL (and it is unlikely, if at all possible, that people have such calculators).
I can use my 41CLv2 board and transfer it to a custom build machine if you want (FN-41 with a HN-LCD).

(10-07-2019 04:56 PM)hth Wrote:  Finally, about Windows. I do not use it and I did not like it at all in the past. From Windows 8 I think they really got their act together.
I used Windows a lot professionally and personally until I got tired of spending more time managing the platform than using it.
Since then, 2005, I refused all jobs that was forcing me to use Windows, converted all existing home machines to Linux/BSD and when buying new machines, it was either Linux/BSD-on-PC or macOS-on-MacBookPro.
On rare times that I have no choice to use Windows in a VM, I always uses Windows 7, I just cannot stand the UI craziness of Windows 8.X and Windows 10, strange how perception works Wink

Sylvain
Find all posts by this user
Quote this message in a reply
10-07-2019, 09:13 PM
Post: #24
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-07-2019 08:10 PM)Sylvain Cote Wrote:  I can use my 41CLv2 board and transfer it to a custom build machine if you want (FN-41 with a HN-LCD).

So it is possible to do that. Hmm, then I should probably sense if it the hardware has a Halfnut display and apply the lower-case display patch for such machines.

Quote:On rare times that I have no choice to use Windows in a VM, I always uses Windows 7, I just cannot stand the UI craziness of Windows 8.X and Windows 10, strange how perception works Wink

Yes, I know that my perception of Windows is totally the opposite of most Windows users.
Find all posts by this user
Quote this message in a reply
10-08-2019, 03:35 AM (This post was last modified: 10-08-2019 03:38 AM by Sylvain Cote.)
Post: #25
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-07-2019 09:13 PM)hth Wrote:  
(10-07-2019 08:10 PM)Sylvain Cote Wrote:  I can use my 41CLv2 board and transfer it to a custom build machine if you want (FN-41 with a HN-LCD).
So it is possible to do that. Hmm, then I should probably sense if it the hardware has a Halfnut display and apply the lower-case display patch for such machines.
Well, I never tried it but I can surely try!
I will not be able to have enough free time for this test until next weekend, I will update this thread after my franken-nut has been created.
Sylvain
Find all posts by this user
Quote this message in a reply
10-08-2019, 05:44 AM
Post: #26
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-07-2019 04:56 PM)hth Wrote:  
(10-07-2019 05:05 AM)Ángel Martin Wrote:  Because of this, I also added the lowercase patch to [MASK] - so it's all coordinated and that's a much more convenient way to test it. Also it all runs on V41, which shows the lower case on the LCD quite nicely - so no need to print them (which as you say has some quirks)...

Yes, but it does not correspond to any actual hardware, so why test it that way, wishful thinking or do I miss something?

Maybe it is a matter of different use-cases, my interest is in using real HP-41 hardware. I am open to re-evaluating this, if the situation changes or if I am proven wrong.

Well, testing on V41with patched [MASK] confirms that the [ED] patch is correct. That has a ton of value in my mind. And who knows, there may be other/new machines cappable of displaying the lower case chars soon available... time will tell.
Find all posts by this user
Quote this message in a reply
10-08-2019, 05:47 AM (This post was last modified: 10-08-2019 05:49 AM by Ángel Martin.)
Post: #27
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-07-2019 08:10 PM)Sylvain Cote Wrote:  On rare times that I have no choice to use Windows in a VM, I always uses Windows 7, I just cannot stand the UI craziness of Windows 8.X and Windows 10, strange how perception works Wink

Same here. If windoze was bad before they really lost their marbles with the craziness of Win-8 and Win-10, sorry to say that for me (IMHO) they are complete trash... - maybe I'm just too old to start linking the touch-screen like U/I's and all the other "fancy" stuff, but all that constant, piece-meal updating every other day on W-10 is insufferable!
Find all posts by this user
Quote this message in a reply
10-08-2019, 06:08 AM
Post: #28
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
Turns out that it was not so easy to sense the Halfnut and fix the lower case characters.

The code itself is some 30 words, but there is no room for it other than in bank 5.2, and that will not work. It is a bit hard to explain, but I ran into this before. The problem is that a pushed return address is just an address, there are no bank bits being pushed. If the called routine fiddles with the bank bits (to call the 30-word slice in bank 2), it loses track of which bank it was originally called from. The result is that it may return to the wrong bank.

There are four alternatives as I see it.

1. Restructure code to make room somewhere else for it (in practise it means page 3).
2. Make two different builds, one with and one without the fix the MASK for lower case characters.
3. Assume there is a halfnut display, even though only franken-nut and emulators can make use of it, no ordinary 41CL can.
4. Forget it, at least for now.

I do not want to do (3) at least. I rather keep the star-burst character behavior we are used to when not using Halfnuts.
Find all posts by this user
Quote this message in a reply
10-08-2019, 08:51 AM (This post was last modified: 10-08-2019 08:52 AM by Ángel Martin.)
Post: #29
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
Sorry but I'm not sure I follow you - are these options for the [MASK] patch?
If so, it simply replaces the current code (no need for additional room), and it works for both full-nuts and half-nuts.
Therefore I see no need for two different builds.

I'd leave the starburst chars alone in Full-nuts, that's a hardware limitation.
Find all posts by this user
Quote this message in a reply
10-08-2019, 06:20 PM
Post: #30
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-08-2019 08:51 AM)Ángel Martin Wrote:  Sorry but I'm not sure I follow you - are these options for the [MASK] patch?
If so, it simply replaces the current code (no need for additional room), and it works for both full-nuts and half-nuts.
Therefore I see no need for two different builds.

I'd leave the starburst chars alone in Full-nuts, that's a hardware limitation.

I am under the impression that it is the MASK routine that introduces the starburst characters when there is no suitable alternative:

Code:

MASK20:       cxisa                 ; load 1 char from table
              ?a#c    x             ; match a special char ?
              gonc    MASK30        ; yes
              c=c+1   pt            ; point to next word
              gonc    MASK20        ; go on !
              ldi     0x3a          ; all segment if not found
              goto    MASKRT

I tried to change it as suggested on my 41CL, but it does work so well. The existing lower case characters (a-e) stop working in alpha register and all lower case characters are replaced by a space.
Find all posts by this user
Quote this message in a reply
10-11-2019, 01:43 AM
Post: #31
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
To anyone that are beta testing, here is a link to an XFUNS5 image that contains a patch for entering lower-case and special characters in ED:
https://drive.google.com/open?id=1oqVfFL...wfavjaqfBy

Checksum: ff4c5c2a

(Lower-case characters apart from a-e are still displayed as boxed stars)
Find all posts by this user
Quote this message in a reply
10-19-2019, 01:53 AM
Post: #32
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
How is the beta test going? I have an hp41 coming in a few weeks which will be converted to a CL and am interested in trying this. I plan on setting this one up for surveying calculations (and GPS when Monte gets that module sorted). I love the idea of so much extended memory to store points in. I will have to check if the software which stores to Xmemory is compatible with this but am sure I can make one of the programs work with this.
Find all posts by this user
Quote this message in a reply
10-22-2019, 01:41 AM
Post: #33
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-19-2019 01:53 AM)Ken S Wrote:  How is the beta test going? I have an hp41 coming in a few weeks which will be converted to a CL and am interested in trying this. I plan on setting this one up for surveying calculations (and GPS when Monte gets that module sorted). I love the idea of so much extended memory to store points in. I will have to check if the software which stores to Xmemory is compatible with this but am sure I can make one of the programs work with this.

I have not heard so much. I think it is known by now that it will not work with CCD and modules that borrow code from it for accessing extended memory. I have also seen some issues with running from RAM, which is why I flashed it as soon as I trusted it. Meaning, when my automated tests worked and I could use the calculator normally with no noticeable issues.

I have not done any particular X-memory tests recently, but I do use the beta ROMs. It is mostly for testing other coming modules (doing normal things and playing with other half broken code).

In any case, it sounds like you could be a good beta tester of it?
Find all posts by this user
Quote this message in a reply
10-22-2019, 02:53 AM
Post: #34
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
Sounds good, once I get the donor calculator in and build the 41CL I will give it a try. Any idea if this will work on the upcoming DM41X?
Find all posts by this user
Quote this message in a reply
10-22-2019, 07:15 AM
Post: #35
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-22-2019 02:53 AM)Ken S Wrote:  Sounds good, once I get the donor calculator in and build the 41CL I will give it a try. Any idea if this will work on the upcoming DM41X?

Let me know when you are ready.

I have no idea if it will work on the DM41X. It depends on whether it has RAM in the address range 400-EFF (the upper page limit is configurable at build time), and without the gaps that exist in RAM page 2 and 3.
Find all posts by this user
Quote this message in a reply
10-25-2019, 11:50 PM
Post: #36
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(10-22-2019 07:15 AM)hth Wrote:  
(10-22-2019 02:53 AM)Ken S Wrote:  Sounds good, once I get the donor calculator in and build the 41CL I will give it a try. Any idea if this will work on the upcoming DM41X?

Let me know when you are ready.

I have no idea if it will work on the DM41X. It depends on whether it has RAM in the address range 400-EFF (the upper page limit is configurable at build time), and without the gaps that exist in RAM page 2 and 3.

Pm sent
Find all posts by this user
Quote this message in a reply
12-24-2019, 06:05 AM
Post: #37
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
Long time and no update to this. I just found a very minor problem with corrected XROM XKD mechanism that will warrant a correction.

I also fixed the "FOO IND L" bug where FOO is an XROM, as mentioned here https://www.hpmuseum.org/forum/thread-13...#pid123124
which means two issues.

Anyone has comments on the larger extended memory?
Find all posts by this user
Quote this message in a reply
12-27-2019, 02:04 AM
Post: #38
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(12-24-2019 06:05 AM)hth Wrote:  Long time and no update to this. I just found a very minor problem with corrected XROM XKD mechanism that will warrant a correction.

I also fixed the "FOO IND L" bug where FOO is an XROM, as mentioned here https://www.hpmuseum.org/forum/thread-13...#pid123124
which means two issues.

Anyone has comments on the larger extended memory?

Do I have this yet? I'm getting ready to do a monthly update.
Visit this user's website Find all posts by this user
Quote this message in a reply
12-27-2019, 01:12 PM (This post was last modified: 12-27-2019 01:19 PM by Sylvain Cote.)
Post: #39
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(12-24-2019 06:05 AM)hth Wrote:  Anyone has comments on the larger extended memory?
Finally some free time to test this.

Test machine is a 41CLv2 and I have not updated to the latest OS ROMs yet.

AUTOSTART module is mapped and the following program is executed at each power on
Code:
LBL "RECOVER"
MAPEN
END

I have successfully executed the following program that creates a data file using all extended memory available, then sequentially write and read from that file.

Program logic:
Code:
A:  Initialisation
B:  Deleting data file
C:  Creating data file
D:  Writing to data file
E:  Reading from data file and do data validation
F:  More data validation
G:  Status: show progress (subroutine)
H:  Error: data read is not equal to data written (error exit point)
I:  Error: no registers left to create data file (error exit point)
J:  Exit: display message and do some cleanup (gobal exit point)

Program listing:
Code:
 01◆LBL "TSEM"             // Test Super-Extended Memory
 02 RCLFLAG                // A:  
 03 STO 03                 // A:  get flags 00 to 43 and store it to REG 03
 04 FIX 0                  // A:  display setting: no decimal digits
 05 CF 29                  // A:  display setting: no decimal point
 06 "TSEM"                 // A:  
 07 ASTO 02                // A:  store data file name to REG 02
 08 SF 25                  // B:  handle missing file error, deactivate error report
 09 PURFL                  // B:  purge file, clesr flag 25 if it does not exist
 10 CF 25                  // B:  reeactivate error report
 11 EMROOM                 // C:  get how much memory is left to work with for this test
 12 2                      // C:  file header size
 13 -                      // C:  get number of data records by substracting file header
 14 X<=0?                  // C:  do we have some data records memory left ?
 15 GTO 13                 // C:  no we do not, display error message
 16 STO 00                 // C:  store number of data records to REG 00
 17 CRFLD                  // C:  create file data "TSEM"
 18 "WRITING"              // D:  
 19 AVIEW                  // D:  display upcoming action
 20 SF 25                  // D:  setup ignore error for when the file will be full
 21 .                      // D:  init counter
 22◆LBL 00                 // D:  write loop
 23 1                      // D:  
 24 +                      // D:  counter = counter + 1
 25 SAVEX                  // D:  write value to data file
 26 "W:"                   // D:  
 27 XEQ 11                 // D:  show progress
 28 FS? 25                 // D:  have we reached the end of file ?
 29 GTO 00                 // D:  no we have not, go write another number
 30 1                      // D:  
 31 -                      // D:  counter = counter - 1, because last SAVEX failed
 32 STO 01                 // D:  store biggest number saved to REG 01
 33 "W:"                   // D:  
 34 ARCL X                 // D:  
 35 AVIEW                  // D:  show last number written
 36 PSE                    // D:  give user time to see it
 37 "READING"              // E:  
 38 AVIEW                  // E:  display upcoming action
 39 CLA                    // E:  recall data file name from REG 02
 40 ARCL 02                // E:  
 41 .                      // E:  data file index value & init counter
 42 SEEKPTA                // E:  reset data pointer to the file beginning
 43 SF 25                  // E:  setup ignore error for when we reached the end of file
 44◆LBL 01                 // E:  read back loop
 45 1                      // E:  
 46 +                      // E:  counter = counter + 1
 47 GETX                   // E:  read value from data file
 48 FC? 25                 // E:  have we reached the end of file ?
 49 GTO 02                 // E:  yes we did, go to next step
 50 X≠Y?                   // E:  is value read back is equal to what was stored ?
 51 GTO 12                 // E:  no, display error message
 52 RDN                    // E:  restore stack
 53 "R:"                   // E:  
 54 XEQ 11                 // E:  show progress
 55 GTO 01                 // E:  go read another number
 56◆LBL 02                 // E:  all data has been read
 57 RDN                    // E:  restore stack
 58 "R:"                   // E:  
 59 ARCL X                 // E:  
 60 AVIEW                  // E:  show last number read
 61 PSE                    // E:  
 62 RCL 00                 // F:  recall number of data records
 63 X≠Y?                   // F:  is total number of values match ?
 64 GTO 12                 // F:  no, display error message
 65 RDN                    // F:  restore stack
 66 RCL 01                 // F:  recall biggest number saved
 67 X≠Y?                   // F:  is both number match ?
 68 GTO 12                 // F:  no, display error message
 69 "SUCCES"               // F:  success message
 70 GTO 14                 // F:  goto global exit point
 71◆LBL 11                 // G:  display X at each hundred number
 72 ENTER↑                 // G:  copy X in Y
 73 ENTER↑                 // G:  copy X, Y & Z
 74 100                    // G:  overwrite X with 100
 75 MOD                    // G:  Y modulo 100
 76 X=0?                   // G:  do we have a number to show ?
 77 ARCL Y                 // G:  yes we do
 78 X=0?                   // G:  do we have a number to show ?
 79 AVIEW                  // G:  yes we do
 80 RDN                    // G:  clean up stack, or whats left of it
 81 RTN                    // G:  return to caller routine
 82◆LBL 12                 // H:  data read error handler
 83 "DATA NOT EQ"          // H:  error message
 84 GTO 14                 // H:  goto exit point
 85◆LBL 13                 // I:  error handler
 86 "X-MEM FULL"           // I:  data file space error message
 87 GTO 14                 // I:  goto exit point
 88◆LBL 14                 // J:  exit point
 89 AVIEW                  // J:  show message
 90 RCL 03                 // J:  recall original flags (00 to 43)
 91 STOFLAG                // J:  restore flags
 92 END                    // J:  program end
Note 1: no optimisation has been done in the above program, clarity was chosen over compactness or speed.
Note 2: turbo 50 was set before running the program.

Program output:
Code:
WRITING
W:100
W:200
...
W:3300
W:3400
W:3403
READING
R:100
R:200
...
R:3300
R:3400
R:3403
SUCCESS

Messages:
Code:
SUCCESS                    // all tests were successfully passed
X-MEM FULL                 // if there is less than 3 extended memory registers left
DATA NOT EQ                // if data read is different than data written

CAT 4
Code:
TSEM   D3403
Find all posts by this user
Quote this message in a reply
12-28-2019, 01:44 AM
Post: #40
RE: Alternative HP-41CL mainframe (OS ROMs) update for beta test
(12-27-2019 02:04 AM)Monte Dalrymple Wrote:  
(12-24-2019 06:05 AM)hth Wrote:  Long time and no update to this. I just found a very minor problem with corrected XROM XKD mechanism that will warrant a correction.

I also fixed the "FOO IND L" bug where FOO is an XROM, as mentioned here https://www.hpmuseum.org/forum/thread-13...#pid123124
which means two issues.

Anyone has comments on the larger extended memory?

Do I have this yet? I'm getting ready to do a monthly update.

I need to update it and make new images, fixing the two issues I have already. I think you can include it in some future update, but not this one.
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: