1 / 30

MLDL2000 Version 2 – What’s new HEPAX How-To

HHC Conference, September 2007, San Diego. MLDL2000 Version 2 – What’s new HEPAX How-To. Mail from Richard. His Botnet Must Run on 50g’s. URLs. http://www.kuipers.com http://retrocalculator.com/hp41/MLDL2000_HEPAX.ppt http://hpmuseum.org http://hp41.org. Contents. Credits due ....

wilson
Download Presentation

MLDL2000 Version 2 – What’s new HEPAX How-To

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HHC Conference, September 2007, San Diego MLDL2000 Version 2 – What’s new HEPAX How-To

  2. Mail from Richard

  3. His Botnet Must Run on 50g’s

  4. URLs • http://www.kuipers.com • http://retrocalculator.com/hp41/MLDL2000_HEPAX.ppt • http://hpmuseum.org • http://hp41.org

  5. Contents Credits due .... MLDL2000, what is it Structure of the MLDL2000 Memory layout and Settings Registers Access I/O from the HP41 for control of the MLDL2000 The Vinculum USB Host Controller MLDL V2 Project Status MLDL2000 and HEPAX

  6. Credits due to ... The MLDL2000 would not have been possible without the support of the user community. The enthusiasm, feedback, help and willingness to test was really great and motivated me to keep moving forward. Of course there are those who made me enthusiastic for the HP41 in the first place: HP, the HHC and the local club in The Netherlands. Today, the maintainers of the various HP websites and forums, conference organizers and hosts of ad-hoc meetings keep the calculator spirit alive!

  7. What is an MLDL2000 ? The answer is not that complicated: The MLDL2000 is peripheral for the HP41 that can emulate HP41 modules by way of loading its contents (“ROM image”) in a block of memory Additional functions of the MLDL2000 are USB interface offers PC communication Up- and downloading ROM images Control of module ports and banks Firmware upgrading HP41 communication with PC

  8. What is an MLDL2000 ? And the new feature of V2: USB Host Controller The USB Host controller gives the HP41 access to files on a USB storage medium (“USB stick”)‏ This could enable the following functions: Emulation of HP-IL Mass Storage Saving and retrieving User Code, Key Assignments, XMem Data Backup of all HP41 memory Saving and retrieving of ROM images

  9. Structure of the MLDL2000 Block diagram

  10. Structure of the MLDL2000 The MLDL2000 V1 was implemented on 3 PCB’s: CPLD and Memory HP41 Interface & Power USB Device Supercap backup (opt)‏ 1 2 3 4

  11. Structure of the MLDL2000 The assembly would fit in a cardreader housing

  12. Structure of the MLDL2000 The logic of the MLDL2000 is implemented in a CPLD: The CPLD is the heart and soul of the MLDL2000 A CPLD is a very low power programmable logic device Firmware is written in VHDL, almost like software The firmware can be upgraded by the user through USB Bug fixes are possible Enhancements can be made The source is public The tools are free The part is a Xilinx XPLA3 device with 384 macrocells. A macrocell is a configurable flip-flop with programmable logic around it

  13. Structure of the MLDL2000 The CPLD contains everything that makes the MLDL2000 behave like an MLDL2000. Do you recognize anything from the ‘old’ style MLDL?

  14. Memory Layout and Settings Registers The HP41 has 16 Pages, 4 physical ports. Each Page can have up to 4 Banks . . . . . .

  15. Memory Layout and Settings Registers The Settings Registers define the configuration of the MLDL2000 and how the HP41 sees the ROM images. Maximum flexibility, no limits imposed by the design No need for any special HP41 mcode to manage the MLDL2000 Bankswitching support Configuration is done from a PC through the USB Interface Some configuration can be done from the MLDL2000 itself with only 4 switches

  16. Memory Layout and Settings Registers How does the MLDL2000 emulate a ROM? Settings Registers do the translation from an HP41 access to a memory access inside the MLDL2000 The switches select one of 8 sets of Settings Registers The Settings Registers are also in FLASH and SRAM Every possible Bank of a Page has a Settings Register Attributes of the Settings Register are Memory Type is (FLASH, SRAM or I/O)‏ Physical Address in Memory Enabled or Disabled Write Protected or Enabled (SRAM only)‏

  17. Memory Layout and Settings Registers Address Translation

  18. I/O from the HP41 The Settings Register offer a possibility to map an HP41 Page as I/O Communication with the Host PC over USB Direct access of MLDL memory from the HP41 Direct access of MLDL Settings Registers from the HP41 Communication with the Vinculum USB Host controller All options above require special Mcode programming. The best Page to be mapped as I/O is Page $4, normally only used for the Service ROM.

  19. I/O from the HP41 Memory map defined The ignores are required in Page $4 because of Service ROM behaviour, so the HP41 does see valid ROM contents here The area $4B00 .. $4BFF is where the SPI Interface registers of the USB Host Interface are mapped

  20. The Vinculum USB Host Controller This USB Host Interface is implemented with the Vinculum USB Host Controller VNC1L-1A from FTDI. The Vinculum is controlled from an SPI interface that is created in the CPLD for sending data and commands. The Vinculum is loaded with the VDAP Firmware for access of Disk and Peripherals Other firmware can potentially be used The Vinculum is a device intended to give USB Host functionality to microcontrollers and other embedded equipment The Vinculum is controlled through a very simple 4-wire SPI Interface which is easy to implement in microcontrollers of FPGA’s Firmware can be updated in the field from a USB stick

  21. The Vinculum USB Host Controller Vinculum block diagram Command Mode is for accessing USB Flash Drives Data Mode is for low level control of FTDI base USB peripherals or other devices (printer, mouse etc)‏

  22. The Vinculum USB Host Controller The MLDL2000 will use SPI as the communications port to the Vinculum Monitor Port A block of registers is defined in the I/O Memory map, assuming Page $4 is mapped for I/O Commands can be given to the Vinculum, and data is received Communication is byte-by-byte

  23. The Vinculum USB Host Controller When the Vinculum is successfully started it will respond with a DOS like prompt, and is ready for commands, which are not unlike DOS commands. A special mode is available for giving more compact commands using hexadecimal instructions. Commands are divided in the following groups: Monitor Configuration Commands Disk Commands Power Management Commands Pin I/O Commands Printer Commands USB Device Commands FTDI Device Commands Debug Commands

  24. The Vinculum USB Host Controller Some typical Disk Commands are: DIR List files in current directory CD Change directory OPR filename Open File for Reading SEK dword Seek to byte position RDF word Read from File Etc etc The file system management (FAT32 or FAT16) is implemented in the Vinculum, the HP41 does not have to understand this See www.vinculum.comor www.ftdichip.com for more information on this controller

  25. Project Status The MLDL2000 is an existing device. V2 of this is in its definition phase. Things to do are: Hardware test Build a prototype setup with a Vinculum demo board Implement SPI in the CPLD of the MLDL2000 Perform low level testing for verification of actual operation Test a few minor hardware changes in the MLDL2000 Software tasks Within the user community, define a special ROM with functions for supporting USB mass storage using MLDL2000V2 Design and Production Start the final hardwaredesign and production

  26. MLDL2000 and HEPAX • Both are “MLDL” devices (“Machine Language Development Lab”) • HEPAX • Classic MLDL Device Perhaps the nicest of the classic MLDLs • Consists of HEPAX itself and one or more RAM modules • Modules are very rare • But images are available at hp41.org and elsewhere • Images work in popular simulators (EMU41, 41X, V41) • MLDL2000 • Modern Technology • USB • Flash • SRAM • RAM is larger and faster • Why use HEPAX at all?

  27. MLDL2000 and HEPAX Nostalgia Funny, Strange but Effective Documentation FUN!! Self Contained on the 41C • Onboard Memory Editor • Onboard Disassembler • Lots of other Goodies

  28. MLDL2000 and HEPAX Using HEPAX on MLDL2000 is Tricky • Bug in MLDL2000 V1 Firmware • Mapping of bank pages 2 and 3 swapped • Fixed in upcoming firmware revision • New MLDL2K will allow firmware update • HEPAX RAM Initialization Not Supported • HEPAX uses two undocumented Nut instructions • Neither are Supported by the MLDL2000 • HEPAX relocation/RAM initialization doesn’t work

  29. MLDL2000 and HEPAX Using HEPAX on MLDL2000 is Tricky • Place the HEPAX in an odd numbered page • HEPAX won’t try to relocate itself • Initialize HEPAX RAM Yourself • Using a Perl script – easiest • http://retrocalculator.com/hp41/hepram.pl • Using the provided mcode program on the HP41 • My first one!

  30. MLDL2000 and HEPAX Questions?

More Related