Since I had all the opcodes in a json file so that vp-asm.py would aware of what opcodes were valid and how many parameters they required for the error messages I got an idea to expand it and use it for reference, like Linux Man pages.
./vp-man.py
usage: vp-man.py [-h] [--list] [--category CATEGORY] [--search SEARCH] [--validate] [--export-html EXPORT_HTML] [--export-pdf EXPORT_PDF] [opcode]
Opcode Manual Tool
arguments:
opcode Opcode name
options:
-h, --help show this help message and exit
--list
--category CATEGORY List by category
--search SEARCH Search keyword (fuzzy)
--validate
--export-html EXPORT_HTML
Export full manual to HTML
--export-pdf EXPORT_PDF
Export full manual to PDF
I've done this before in another project so I recycled some of my code. I still have to populate the opcodes.json file with the additional information.
So far there are three utilities.
vp-asm to assemble the chip to a chipout file.
vp-loader to upload or upload and save the chipout to the device. It will also upload the image and font data someday
vp-man to quickly lookup opcode details and examples.
I'll use pyinstaller so the end user (on linux, windows or mac) doesn't have to deal with 'pip install' and all the library prerequisites.
Don't worry, I'm not steamrolling your project here. When I get it to a point it's worthy you will have full access to help me work out any glitches. I did throw it together really fast since I don't normally have free time to work on personal projects. It was just good timing. My work on this will come and go depending on my day job, so don't worry if I disappear for a week every now and again.
The Volker-Craig VC-4152 came in, and after re-seating all the sockets there was nothing to fix. How disappointing for a 46 year old machine, fixing them is the best part. It's a bit of an anomaly though as I think it was an internal prototype. The early models were all TTL, then they made a 6502 terminal and later a z80 terminal. This one looks like it came out between the TTL model and 6502 model because of the dates on the chips and it only understands VT52, and not VT100 like the 6502 model.
The one I have isn't documented anywhere and uses a 6800 cpu from 79/11. It has custom burned roms and handwritten stickers with memory locations written on them. Interesting piece of history. Google and ChatGPT says it doesn't exist. At least it's a source of lots of ic's to make tests for!
That's fun. I'm hoping to find a cool little mini-mainframe somewhere before I die. But Really, I already have about 6 various computers I want to get to that I don't have time for.
I moved all the opcode definitions into an opcodes.json file for vp-asm and vp-man to share. The manual utility can now look up any opcode or list all the codes on the screen with basic colouring. It can also output a manual in html or pdf. (Sample attached) Everything still needs formatting and thje opcodes.json file was thrown together quickly so there could be some mistakes in it. The only opcode that has all the fields populated right now is SETPIN.
I also made the vp-asm script accept code in hex or dec so you can use 0xa or 10, whichever you prefer. It's progress!
Thats awesome. I wanted to do something like that too. It's just a matter of finding time for it all. You're like a robot. Sounds very useful and intuitive. I actually have an old CLI I made from the start but that was just for testing things. I felt I needed something for those people that might not be as advanced as others so I tried to make something that could sort of "teach" you as you are coding. I don't know if teach is the right word, but I guess what I mean is that I wanted everything to be there and seen so the uninitiated could see what options they have. I'm sure the GUI will undergo many many revisions. But what you are doing looks great and I'm sure many people will use it.