The following warnings occurred:
Warning [2] Undefined array key 63388 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 63406 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 63418 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 63430 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 63418 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 63430 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.15 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





Clonix, NoVRAM vs MLDL



#5

Following the latest discussions on NoVRAM and Clonix Modules, I understood that either can be considered as Eprom boxes. Morever, if I did understand right, either can be used also for M-Code programming. So, do the Clonix/NoVRAM - among other things - in fact have full MLDL functionality?

Juergen


#6

The answer is yes and no...

Clonix and NoVRAM are hardware emulators of 41C ROM modules using a microcontroller with internal and external memory fitted to the footprint of a ROM module.

Clonix is effectively ROM only. While memory is eprom the module can only be programmed EXTERNALLY with a PC attached programmer. This means any mcode (or FOCAL) program development would be done on a PC based emulator and compiled-to-Rom image code then would be burnt to the Clonix module. For most 41 users this module is best for providing the chance to use images of ROM modules which are unobtainable now. Plus because it allows for 24K+ of space it also allows 41C and/or CV machines to fit multiple "ROM modules" into the physical space of one module even if the images take up multiple "ROM addresses". This is because so-called "system" modules (memory, xmemory,etc.) do not take up module addresses (slot 8-f).

NoVRAM can be though of as a specialized version of Clonix designed to emulate a VERY specialized module from a 41 developer: the HePax. This module was quite probably the hight of development for the 41. It was a module contain ROM and RAM, with the RAM mapped into the ROM address space (8-f). The Rom code portion to care of mapping the Ram, provided initializing and loading code into ram, creating a standard address structure,etc. As initially set up NoVRAM has ram configured for use similar in concept to the 41's extended memory. The bonus is that HePax stores programs such that they appear in a directory as if they are a ROM module of user code. NoVRAM also has some free eprom space in which rom module images can be programmed. But, again, the eprom space holding the 4 pages of HePax code and extra pages are effectively only programmable externally by way of a PC.

Because of the adoption of a standard way of using an unused CPU opcode to access ROM space for reading or writing and because the Hepax provides a way to "map out" ram from HePax use; blocks of ram in the NoVRAM can be used to directly develop mcode with a 41. In fact, the HePax includes a hex editor and other routines to facilitate this. Also if one knows what to do the Hepax Rom code can be deleted and/or overwritten with other rom images leaving the full amount of ram available for use for programming with code like the David Assembler (I'm NOT that David, by the way) or ZenRom.

MLDL is, I believe, designed to fit a Card Reader sized case. Reading the documentation it appears to be designed to provide maximum space for module images, to allow for bank switching of multiple pages (read entire ROM address spaces), and potentially provide for IO mapping into ROM address space to facilitate direct 41 to PC (or other device) interconnection. The MLDL's design allows for programming directly from a 41 or indirectly from a PC.

My personal view is that (1) both designs Clonix/NoVRAM and MLDL are amazing developments. The work done is excellent, and (2) the impact the 41 from opposite directions: the MLDL is a modern updating of those devices designed during the 41's "active" life to provide users with the ability to create their own ROM code but with many more pluses. The Clonix/NoVRAM comes from the path of providing those who still use the 41 with the ability to "use" those ROM modules which we never could get and which are impossible to find now.
Think Clonix/NoVRAM for day-to-day transparent use and MLDL for development and/or big time special use. They all complement each other and don't compete.

Disclaimer: I don't have either Clonix or NoVRAM (yet!) and of course the MLDL isn't yet "released for production" so all this comes from their available documentation and my (small) knowledge/practice of 41 mcode development on 41 emulators (thank you "TOS" webmaster) so please take the above as a personal and in no way official explaination. I am no way in a league with the very talented gentlemen who actually developed these amazing devices. When you consider the 41 is 20+ years old the phrase "labor of love" in no way approaches their dedication.


#7

David, thanks for this great explanation!

The 'original' MLDL was published in the PPC magazine, and a version made by Eramco consisted of 3 stacked PCB's (each appr. 14*7 cm in size) holding EPROMs and RAM. A German company made an SMD version of it that fitted in a card reader huosing, but it could not hold EPROM, only SRAM.

The MLDL was the greatest toy that you could add to the HP41, allowing to develop your own ROMs (or make copies of them).
The original HEPAX module went even further and put MLDL functionality plus more in a module sized housing, based on a custom made IC.

Clonix and Novram are based on a PIC microcontroller and fit in a single module housing. The logic is implemented in software that makes the module behave like an HP41 module or HEPAX. A single memory IC is added to Clonix to offer RAM to better emulate HEPAX or an MLDL.

I developed the MLDL2000 based on the original MLDL design with many additions. It will fit in a cardreader and is based on a CPLD where the logic is implemented in nonvolatile (but reprogrammable) cells operating as a bunch of flip-flops and combinatorial logic. There is SRAM and FLASH memory as well, plus a USB interface for communication and programming. The MLDL2000 is intended both for development and daily use, as it offers large amounts of storage for many ROM images that can be switched relatively easy.

I do not compete with Clonix or Novram, and have been emailing frequently with Diego Diaz, the creator of Clonix and Novram. I am just very glad that there are so many people around to keep the HP41 alive!

Meindert

#8

David, Meindert: Thank you so much for your comprehensive explanation on that topic. I'm not sure if I did understand everything in detail, but I'm getting closer with the help of your expertise :-)

Juergen


Possibly Related Threads…
Thread Author Replies Views Last Post
  HP-41 Clonix&NoV's SW Update. (For the non-Primer's guys out there... :-) Diego Diaz 21 5,645 11-13-2013, 09:00 AM
Last Post: Ángel Martin
  Warning: These are NOT Clonix! Diego Diaz 11 3,068 03-02-2013, 01:15 PM
Last Post: Diego Diaz
  Latest Clonix/NoV's SW update. Diego Diaz 5 2,110 02-15-2013, 12:12 PM
Last Post: Ángel Martin
  [41CL]Updating ROM images with a Clonix Dan Grelinger 14 4,262 02-13-2013, 10:41 AM
Last Post: Ángel Martin
  [Clonix/NOV] NoV-64 backwards compatibility Doug (NYC) 0 966 01-20-2013, 11:21 AM
Last Post: Doug (NYC)
  NOVRAM 64 / HEPAX bug? M. Joury 2 1,225 11-03-2012, 02:49 PM
Last Post: M. Joury
  HP-41 takeover ROM with Clonix-D Sylvain Cote 1 1,079 10-15-2012, 02:37 PM
Last Post: Diego Diaz
  Beta 41CL --> Best CL UTILs to burn in NoVRAM 64? Gene Wright 5 2,096 07-01-2012, 03:06 PM
Last Post: Matt Kernal
  NoVRAM 64 USB programmer Gene Wright 4 1,775 06-29-2012, 11:43 AM
Last Post: Diego Diaz.
  USB-41->NoV-64/Clonix-D compatibility Diego Diaz 5 2,067 06-15-2012, 12:18 AM
Last Post: Les Wright

Forum Jump: