MLDL2000 Conversation



#18

I have not seen any recent conversation on the MLDL2000. I was under the impression that there was going to be a few postings regarding MLDL programming and MCODE. Did this conversation move elswhere?


#19

HI, Jeff;

as I was one of the guys that started some threads about the MLDL2000, I felt like commenting.

As far as I know (or have been told about), it's been a matter of subject only, I mean, no new MLDL2000 related subject to be discussed, though. After some small issues (mainly because of my own actions) and having them all solved with the help of Meindert, Diego and many others, I'm now collecting relevant data and reading many related documentation prior to go ahead (classes are over till February, so I'll have time to get back to some previous issues and to go ahead with new ones, MCODE included). In fact, I saw that MCODE programming and techniques are discussed in at least one publication (MCODE Programming for Beginners, available with the MoHCP CD/DVD set and at TOS, if I am not wrong), as they are the related modules manuals (HEPAX, David Assembler, MLROM, etc.). With these plus the modules contents themselves, we have a vast source of reference. Too bad I had no knowledge about these in the 80's... No complaints, just a bit of sadness.

I want to use HEPAX' DISASM together with the IR module (captured by an HP48G+) and generate my own VASM listings in typset fashion. This is mainly because the available VASM listings (at least the ones I found) are bitmapped images, and I would like to have them in compact, easier to read documentation. And the ones I found are only the C/CV/CX mainframe ROM and the X-Functions plus Time modules. With HEPAX' DISASM it is somehow easier to generate single line, briefly commented VASM listings. As I have two HP41CV fullnut with the possibility to use external batteries, it is just a matter of time and a few try-outs... I'll let you know as I succeed generating usefull documentation.

Any other ideas/suggestions? Let's go ahead with the thread, shall we?

In time: I am trying to get in contact with Meindert and have not 'heard' from him since November; does anybody know any news about him?

Cheers.

Luiz (Brazil)


#20

Hi, Luiz,

"HP41 MCODE for Beginners" is on the museum CD/DVD, but not on TOS. I didn't know it was on the first resource, and I couldn't find it on the second, so I'm grateful for the pointer!

Your documentatiom project sounds very, very interesting. If you'd like someone to transcribe comments found in the NOMAS stuff, I'm willing to help out.

Regards,
Howard


#21

Hello, Howard;

thank you very much for your offer on helping by adding comments to the typesetting VASM listing. I appreciate that! My initial idea, after seeing what can be done with DISASM (the example program in the HEPAX manual, "DISSST", is a lot helpfull, too.), was actually to read the original VASM and to add such relevant comments to the typesetting, generated VASM listing and let it available to download (plain text, TeX/LaTeX, PDF, others?), so your offer comes in the very best moment! I also believe that a coordinated "task force" would improve final results and generate final documentation in less time; is this too ambitious?

I'll try some listings for these days and let you know.

Best regards and thanks again.

Luiz (Brazil)


#22

sorry if this is a very dumb thought - couldn't we do the VASM from the PC to a laser or something via one of the simulaters?

One additional resource for the MCODE stuff I would mention are the documented listings from Angel Martin for both his SandBox project and his 41Z project. They have very good documented code (in color!). he also might have good ideas on how to create a similarily well documented VASM listing. Feel that my skills might be far to inferior to participate in such a project, yet I'm interested nonetheless...

BTW, I have collected all MCODE articles I could find in the various magazines from the old days (PPC, Prisma, HPX, etc) and plan on putting them into a pdf document via scanning or something the like. if that idea is useful for others as well, I might change the timetable from "one day" to "soon"...

Cheers

Peter


#23

Hi, Peter; thank you for your additional suggestion. For the records, I do NOT consider it dumb at all. d8^)

I briefly considered the possibility of generating a plain text listing from a simulator/emulator so one could change it the best way, I mean, organize in many columns as for a reference, add specific/custom comments, etc. I have two emulators installed in my computer (Nonpareil and Warren's), and I do not know how to generate such plain-text file with a VASM listing through a simulator. Using existing ROM features, like HEPAX DISASM or any other, would generate the same commented list, that's a fact, so the ROM format used by the specific emulator would not be an issue. There is also Hrast's HP41X, where I first tested the DISSST functionality (works perfectly fine, you bet!)

My primary proposal is actually not to print a compact VASM listing, but your idea gives another view. Please, let me know if an output file from an emulator with a plain text is easier to generate, because if so, this is going to be faster and more accurate than what I had in mind.

I see we are going ahead with the MCODE development, and this is a very good point by itself.

Thanks!

Luiz (Brazil)


#24

Hi Luiz,

Just a note regarding HEPAX DISASM on HP-41X: Although it is perfectly possible to make disassembled ROM listings using HP-41X (especially in the combination with Helios Printer Emulator on PC) don't do this because HP-41X contains highly modified ROMs inside (disassembled using HP-41EPC built-in disassembler then modified according to my needs and reassembled using my own specialized assembler called ASM41) and its "CPU" is 12-bit (I am currently using only 2048 out of 4096 possible instruction codes, many of them are precompiled GOLs/GSUBs to increase execution speed) so you won't get the expected result :-)


#25

Hi, Hrast; thank you for your additional information.

What I did was using the HP41X to write the beginning of the SKWID ROM (example in 'MCODE Programming For Beginners') and disassemble the resulting code, so I saw that the comments added by DISASM are very usefull and help understanding most of what is programmed.

In fact, to do what HP41X does, mostly to access VXMemory (Very eXtended Memory...8^), I guess you needed to modify the code in some ROM images and in the mainframe core so the emulator can handle the extra memory space. Specific parts of the resulting HP41X disassembled code would not be helpfull in a real HP41, right?

Thanks again.

(BTW, did the mail delivered something for you already??? Please, let me know as it happens.)

Luiz (Brazil)


#26

In fact, to do what HP41X does, mostly to access VXMemory (Very eXtended Memory...8^) ...

I would rather call it VLMM (Very Large Main Memory) because it contains 3392 registers of program/data memory so you can easily execute SIZE 1999 and still have .END. REG 1392. Extended Memory is further "extended" to 686 registers.

I guess you needed to modify the code in some ROM images and in the mainframe core so the emulator can handle the extra memory space.

Yes, 4096 registers address space, 16-characters LCD, extended character set, extended XM and many other things required a lot of mainframe (and other modules) changes ...

Specific parts of the resulting HP41X disassembled code would not be helpfull in a real HP41, right?

Yes, the resulting listing would not be "synchronized" with VASM in many places because the code is not equal to the HP-41C ROMs.

BTW, did the mail delivered something for you already??? Please, let me know as it happens.

No, not yet ... I will let you know.

Best regards.

Hrast

Edited: 22 Dec 2005, 3:47 a.m.

#27

Luiz,

I'd be delighted to help out. Just let me know when you have a disassembled listing ready for annotation.

You might consider using the disassembler from SDK41. It can produce output from the ROM images on a PC. It can also fill in the names of system entry points, which would save about half the work required to annotate the listings. It can also generate disassembly in one of three different mnemonic systems, including HP's.

Richard Nelson, in his forward to "HP-41 MCODE for Beginners" mentions that Jim De Arras produced an annotated listing of the 41s OS, which probably caused HP to release their source. I wonder if copies of that listing, presumably already in editable text form, still exist? That too could save work in attempting to annotate a disassembly of the ROM OS.

Regards,
Howard


#28

Hi, Howard;

thanks again for your support and interest. I completely agree with you when you mention time saving by using existing documentation.

After reading Peter's post, I realised that many other ways exist, and my brief consideration in the beginning of using an emulator meets both Peter's and your idea of going ahead with this line of action. What I thought not being available was the possibility of generating a text file as an output from such emulators.

I was reading David Assembler's documentation (ERAMCO) and found a list of mainframe entry points for many usefull routintes. As other ROM may use these entry points as well, David Assembler with the labels ROM give ways to locate 'where does such calls point to'. As I see, there are so many possibilities that we may disassemble the same ROM with different tools and see what we get. As you added, one can either choose the best mnemonic set for each listing.

I guess we can generate many good documentation this way. I'll try some myself and post as I get results. Meanwhile, I'd like also to try some emulators and see what we can get from them. Which others are available that might generate such VASM listings?

I guess HP would never believe that the HP41 structure and related knowledge base would be in such deep studies as it is today with use here. Although we may be a small group of people, I think that each one of us may find new ways to use and understand such stucture. I saw some PDF's generated from original HP41 documantation that are dated 1978. Almost 28 years ago! What were those guys doing at that time? Go figure ...

Cheers.

Luiz (Brazil)


#29

Quote:

As you added, one can either choose the best mnemonic set for each listing.


I think we should stick with the mnemonic set the VASM listings are in - HP's. We should be able to automatically translate between the three types once we have an editable document.

Quote:

I guess we can generate many good documentation this way. I'll try some myself and post as I get results. Meanwhile, I'd like also to try some emulators and see what we can get from them. Which others are available that might generate such VASM listings?


Warren Furlow has SDK41 over on TOS. It's a set of DOS programs including an emulator, an assembler/linker and a disassembler that work on the PC. One could take the system ROMS from one of the emulators and run them through the disassembler. There are two nice things about this approach. First, the toolkit supports three different mnemonic schemes. The oldest publically known one by Jim De Arras, producd without help from HP through reverse engineering, HP's set, used with the NOMAS VASM listings, and the set used by the Zenrom. The second advantage is the most important. The disassembler runs on the PC and roduces PC compatible text file. So no HP-IL or serial or infrared connection is needed.

Quote:

I guess HP would never believe that the HP41 structure and related knowledge base would be in such deep studies as it is today with use here. Although we may be a small group of people, I think that each one of us may find new ways to use and understand such stucture. I saw some PDF's generated from original HP41 documantation that are dated 1978. Almost 28 years ago! What were those guys doing at that time? Go figure ...


I was thinking similar thoughts recently. The 41C suprised HP with its popularity. It had a ten year run on HP's price list, which was twice as long as they predicted. Those who worked for the calculator division then must pinch themselves when looking at the current level of interest in the HP-41C. As we have seen, the interest has continued, sustained by a few of the old timers, some of whom post here frequently, and by others that joined in later. It kept the art and science of the 41C alive. As we WWII baby boomers near retirement (I'm a "late boomer" and still have a way to go.) I suspect we will see a continuing upsurge of interest in early computing systems, particlarly ones of such high quality as the HP-41C. We all have those torch-bearers to thank for the fact that so much has been preserved, so that we have this marvelous menu of stuff to play and work with.

Here's my "thank you" and best wishes for the holiday season to all of them, to today's innovators on the old technologies, and to everyone else here. You've made my world a nicer place.

Regards.
Howard

#30

It's trivially easy to do with SDK41. The file HP41ROM.TXT gives a roadmap of the ROMs, and the file MANUAL.TXT describes how to run D41.EXE. For the 41-CX ROMs I did the following:

D41/P0 XNUT0
D41/P1 XNUT1
D41/P2 XNUT2
D41/P3 CXFUNS0
D41/P5 CXFUNS1

This disassembled each of the files, with base page numbers determined by the /P switch. The disassembly was done with the default HP mnemonics. SDK41 contains a map of system entry points, so these have been substituted into the listing automatically. Otherwise the code contains no comments. That gives us something to do, anyway. 8)

The five source files are zipped up and available here.

I'm not sure which version of the OS is documented in the VASM listings. The 41C ROMS are also included with SDK41, so I could easily produce that source code too. I'm done for the evening, but I'll take a look at the VASM listings tomorrow to see if I can match up this code with what's there.

Regards,
Howard


#31

Hi, Howard;

thanks for your updated information. I downloaded the .ZIP file now and I'm going to open it later. I agree with you that the task is in the very beginning, and a lot is yet to be done (adding comments and the like). And think of the possibilities we have when considering the even more data we can disassemble. I see Angél's listings (41Z documentation and others) and I think that this is the sort of infomation we should have available... or, in the lack of such information, generate it. Someone has to do that, why not us?

I'll report any news as soon as it happens.

XMas greetings for all.

Luiz (Brazil)

#32

I have done initial tests on my MLDL2000 but i am hoping to get some time with it over the holidays.
On the vasm listings thing i have a vaque recollection of a HP41 only printer with a stripboard breakout in the cable and a tap going to a PC. The PC (it may have been a 8 bitter like a BBC/B) then decoded the hp41 serial to ascii. By listing the assembler (with ZENROM) to the printer the PC could capture a copy. I guess it could be done nowadays with a PIC chip.

hmm. that might be another little project for 06!


happy merry and a good new to all from bonnie scotland

#33

Merry Christmas to all friends in the forum.

I am currently with family to celebrate Christmas and now have internet access for 2 days. In the past two months I have been in temporary housing without Internet access, and did all my HP related communications from my work. Since December 15th I am on vacation to get my new house ready to move into, and we now have less then one week of hard work to do before we actually move. We should then have a 6 mbit ADSL line (if my provider does what they have promised), and my computers should be working again. This is the reason why you have not heard from me for some time.

I have been going through this thread, and ask for a little bit of patience. I plan to improve the software so communication between the MLDL2000 and the PC is much easier. I have compiled a list of things that I plan to do on www.kuipers.to/hp41. Of course my new house also needs attention ...

All the best wishes for 2006!

Meindert


#34

Merry Christmas to you Meindert and good luck with your new house, it must be very "interesting" to move over christmas!

All the best and me (and I'm quite certain a lot of other here) are very happy that "you are back" and will ad more goodies to your already fabulous device!

Cheers

Peter

PS: got your email, will try things out and let you know.


Possibly Related Threads...
Thread Author Replies Views Last Post
  New website address for Meindert Kuipers' MLDL2000? Garth Wilson 2 290 08-11-2013, 01:43 PM
Last Post: Meindert Kuipers
  Meindert's MLDL2000 robertoataulfo 7 473 12-05-2011, 04:39 PM
Last Post: Ángel Martin
  HP41 MLDL2000 add-on wins Distinctive Excellence award Meindert Kuipers 4 353 05-28-2011, 07:56 AM
Last Post: exschr
  HP41 MLDL2000 V2 demo Meindert Kuipers 7 414 03-08-2011, 01:43 AM
Last Post: Paul Dale
  Important MLDL2000 update Meindert Kuipers 1 194 11-28-2010, 12:09 PM
Last Post: Angel Martin
  MLDL2000 update Meindert Kuipers 5 347 09-30-2010, 02:36 AM
Last Post: Håkan Thörngren
  MLDL2000 update Meindert Kuipers 5 348 07-05-2010, 11:45 AM
Last Post: Geir Isene
  MLDL2000 V2 update Meindert Kuipers 9 518 04-15-2010, 03:32 PM
Last Post: Gerry Schultz
  New MLDL2000 Disassembler function PeterP 3 290 03-07-2010, 10:04 AM
Last Post: Meindert Kuipers
  MLDL2000 Disassembler to SDK - Help PeterP 1 185 03-07-2010, 10:01 AM
Last Post: Meindert Kuipers

Forum Jump: