LisaList2
General Category => LisaList2 => Topic started by: AlexTheCat123 on January 20, 2025, 07:55:51 pm
-
I've just released my new ProFile emulator and diagnostic tool on GitHub, called ESProFile (https://github.com/alexthecat123/ESProFile).
A couple years back, I developed the ArduinoFile ProFile emulator (https://github.com/alexthecat123/ArduinoFile), with the goal of coming up with something that was inexpensive and easy to build. While I believe that I succeeded in accomplishing both of those things, ArduinoFile had a lot of shortcomings that made it impractical for a lot of Lisa users.
ArduinoFile worked great with the Lisa 2/5 (and presumably the Lisa 1, although I'm not sure if anybody's ever tested it on one), but things started falling apart if you tried to use it with a Lisa 2/10, a parallel card, or an XLerated Lisa. The Arduino was already being pushed to its limits on the 2/5, but the faster strobe pulses on these other Lisa configurations were just too much for it to keep up with. With some help from ArduinoFile users, I was able to come up with a couple patches that made ArduinoFile kind of work on the 2/10 and parallel card, but it was still really unreliable. And it still doesn't work with an XLerator at all!
So I decided to develop a replacement that's based around the ESP32 instead, hence the name ESProFile. And wow, it's a massive improvement! Emulation now works with every Lisa configuration I've been able to get my hands on, including with the 16MHz XLerator, and the cost is even lower than with ArduinoFile because of how cheap ESP32s are.
And, in an attempt to make things more accessible to people who don't know how to solder (and also easier for those of us who do), I've designed everything with JLCPCB's assembly service in mind. Just upload the Gerbers, the pick and place file, and the BOM to their site, and they'll fabricate and assemble 5 boards for you for about $30 or $40, including the cost of parts. You just have to add the ESP32, an interface cable, and an SD card, and you're ready to go!
ESProFile also comes in two different board versions: an internal one and an external one. The external one is designed for use outside a Lisa like a ProFile, while the internal board mounts right inside your drive cage like a Widget.
Porting the emulator mode over was fairly straightforward, although there were several major roadblocks and I also added quite a few quality-of-life improvements. However, ArduinoFile also had a very rudimentary diagnostic mode that allowed you to connect it to an actual ProFile and send over a couple basic commands for troubleshooting a drive (although it was pretty buggy). ESProFile's diagnostic mode has been greatly improved over ArduinoFile's, to the point that it now supports pretty much every command in the ProFile command set, including the 5MB and 10MB diagnostic Z8 command sets and all of the Widget's special commands. And it also has a lot of useful utility functions like drive backups and searching your disk for a particular string.
ArduinoFile didn't have enough flash to hold both emulator mode and diagnostic mode at the same time, so you had to upload new firmware to the board to switch between the two modes. But this has been solved on ESProFile, and you can change between modes by simply flipping a switch on the board!
If you think you might want to build one for yourself, feel free to check it out (https://github.com/alexthecat123/ESProFile)!
-
Fantastic work, sir! Looking forward to putting one together!
-
Thank you!
-
Congratulations! Looks like a fantastic little gizmo. I've thought a few times how there ought to be an ESP-powered ProFile emulator, and it sure looks like you didn't just do it halfway!
The docs and the design for production are impressive. Now, I've always been bad at arithmetic, but do I have it right that (without the cable) we're looking at a unit cost of below fifteen dollars?
-
Now, I've always been bad at arithmetic, but do I have it right that (without the cable) we're looking at a unit cost of below fifteen dollars?
Yeah, that's right! I was pretty shocked that it ended up being that low; one of my biggest goals was to make it cheap, but I wasn't expecting it to be quite that affordable. Granted, if you're doing assembly through JLCPCB, you'll have to end up paying $30 or $40 for the minimum quantity of 5 boards, but that gives you 4 extra assembled boards that you could give (or sell) to your friends!
-
If anyone is building a batch can you count me in for one?
-
If anyone is building a batch can you count me in for one?
I have large batch in production now, PM me.
Rick
-
I've just released my new ProFile emulator and diagnostic tool
An impressive amount of work for sure -- I'm looking forward to trying it out!
-
This is great news - I was interested in your original emulator.
Am I correct to think I can effectively create a monster drive of test programs - basically all the different tests available for the Lisa 1 through XL.
I think the obvious answer is yes, but how would do we handle those running programs that are intended to run upon boot.
A review of the github didn't show anything obvious how this could be handled.
Anyway, thanks again for the work - I will definitely want to get a couple one way or the other. :)
-
If it works like ArduinoFile and Cameo/Aphid, the SD card would potentially have multiple drive images, with the one named 'profile.image' being the one that gets loaded by the Lisa and presented as a real ProFile.
If you use the Selector image (Tom's program) and name that as profile.image, it will boot into a custom "boot menu" of sorts, allowing you to choose a bootable image to (re)boot from.
All of this is VERY slick and much appreciated.
-
James is absolutely correct!
The SDTemplate folder in the ESProFile repo is already set up with a disk image of the Selector (and backup images of it in the rescue folder), so you just copy that over to your SD card and you're ready to go. I don't talk about how to use the Selector in the readme since Tom already has some great documentation about it, but I did link to his documentation somewhere in there. But if you don't feel like going back through the readme, you can also find his Selector manual here (https://github.com/stepleton/cameo/blob/master/aphid/selector/MANUAL.md).
With the Selector, you can put as many images as you want onto your SD card, and then just pick one to boot from whenever you start up your Lisa. It's really awesome; thanks again Tom for making such a great program!
-
If anyone is building a batch can you count me in for one?
I have large batch in production now, PM me.
Rick
I have had several requests to get in on this batch. All of the boards are accounted for now.
Thank you,
Rick
-
Last night I had a small production line going building these.. ;)
-
I also have a handful of each, should someone want one.
-
It's nice to start seeing these things out in the wild! If anybody runs across any problems or has any feedback, please let me know. I want to be sure that ESProFile is as reliable and easy to use as possible!
-
I know this is a Lisa site but..
For fun, I tested a ESPROFILE with my Apple ///. Unfortunately it did not work. Good news it that no magic smoke was let out!
Using a blank 5M profile image, I tried to format the ESPROFILE with the SOS system utilities, but it throws an error and will not initialize. Then using BLU on the Lisa, I copied a known good A3 profile to the ESPROFILE. BLU was able to copy the data fine, but that also did not work on the A3. Also tried A3 CP/M but no bueno... :(
The A3 profile card does not use the VIA chip like Lisa has, I am guessing there is some sort of interface incompatibility. My X/Profile works perfectly on the A3.
If anyone has any luck with ESPROFILE on a A3 let me know.
Rick
-
Yeah, I've been waiting for someone to say something one way or the other about Apple /// compatibility. My Apple /// isn't with me right now, so I haven't been able to test it on one yet and I can't do any Apple /// debugging at the moment, but I'd like to look into that once I get my hands on it again.
The Apple /// sends faster strobe pulses than the Lisa because it uses DMA to transfer data to and from the ProFile, so it's basically the worst case in terms of emulator compatibility. I've never actually measured them, but I believe the strobe frequency is about 1MHz. I'm 99% sure that's what the problem is, but the only way to know for sure is to hook up a logic analyzer and start messing around!
-
Just a quick update: I noticed an issue where I would sometimes experience some weirdness when using ESProFile with parallel cards under certain OS's in certain configurations, and I was able to trace it down to a simple issue involving the timing of the BSY signal. The parallel card just expects it to be asserted much more quickly than the built-in port. And I have now fixed that problem, along with adding a couple SD card-related optimizations to improve disk access speed.
If you've had any problems with using ESProFile on a parallel card, go back and download the latest firmware, and you should be good to go. I actually fixed this problem about a week ago, but I just wanted to make an annoucement since people probably didn't notice!
-
Alex, your ESProFile is becoming famous!
https://www.youtube.com/watch?v=HwdE017c7yw
-
Yeah, I saw that this morning! He was originally planning on making an ArduinoFile, but I reached out to him in December and sent him a prototype of ESProFile instead since it's so much better and more reliable.
It's a shame that he's having some problems installing LOS, but I emailed him about it and hopefully we can get it figured out. I'm pretty sure that something's wrong with his Lisa as opposed to his ESProFile because I tested that board in a 2/10 before I sent it to him and everything was working fine. Plus, I know of plenty of other people using them in 2/10s without issue. But I'll definitely let everybody know if we end up finding and fixing some kind of weird bug that only shows up under really specific circumstances!
-
Thank you so much for making the ESProFile. It has been a fantastic help with my LISA restoration and usage.
-
Thank you so much for making the ESProFile. It has been a fantastic help with my LISA restoration and usage.
I'm really glad you've been enjoying it!
-
Thank you as well! Heres to hoping someday soon someone makes some new software for the old girl.
-
Heres to hoping someday soon someone makes some new software for the old girl.
It's nothing super impressive, but I'm working on something in 68K assembly right now. It's not an LOS app or anything, but it's still something that people will hopefully find pretty neat!
-
Anything is far better than the vast nothingness that has been LISA development.
-
So, this opinion is one you've expressed on vcfed for a few years now. If you want some Lisa apps, why not make them yourself? The tools are out there:
https://bitsavers.org/bits/Apple/Lisa/workshop_3.0/
https://bitsavers.org/bits/Apple/Lisa/toolkit_3.0/
and so is the documentation:
http://www.bitsavers.org/pdf/apple/lisa/workshop_3.0/
http://www.bitsavers.org/pdf/apple/lisa/toolkit_3.0/Package_2_Examples/
-
And that was the exact thing you said to me there..............
I really have no clue how my wishing there was new Lisa software is so upsetting to you.. But it obviously is.
-
Just a quick update: I noticed an issue where I would sometimes experience some weirdness when using ESProFile with parallel cards ...
Speaking of the parallel card, I came across this for the connecting cable. I think it should work. While I know the parts from Digikey are listed on the github site, just figured that some people might not want to make their own.
https://www.amazon.com/gp/product/B07S8WN57B/ref=ox_sc_act_title_1?smid=A1THAZDOWP300U&psc=1
-
Just a quick update: I noticed an issue where I would sometimes experience some weirdness when using ESProFile with parallel cards ...
Speaking of the parallel card, I came across this for the connecting cable. I think it should work. While I know the parts from Digikey are listed on the github site, just figured that some people might not want to make their own.
https://www.amazon.com/gp/product/B07S8WN57B/ref=ox_sc_act_title_1?smid=A1THAZDOWP300U&psc=1
Neat! So this should work on the external ESP device? Thats great.
-
Neat! So this should work on the external ESP device? Thats great.
Yeah, that should work fine. It can be a pain to squish those connectors onto the ends of a ribbon cable, so a ready-made solution like this is really nice! I might add it to the readme next time I update it.
-
Thanks for the link. Im going to buy one myself.
I dont need two so if someone in the states wants the second one for the cost of postage let me know.
-
https://www.amazon.com/gp/product/B07S8WN57B/ref=ox_sc_act_title_1?smid=A1THAZDOWP300U&psc=1
Those should work and are a less expensive alternative to building your own if you don't already have some length of ribbon cable, DB25/IDC26 connectors, and the crimping tool. It also might be long enough if you install the internal version into a 2/5 and use the Twiggy connector for power but need to snake the DB25 out the back.
If you're using stock Apple motherboard and parallel port or card you will likely need to snip Pin 7 in the top center.
-
And that was the exact thing you said to me there..............
I really have no clue how my wishing there was new Lisa software is so upsetting to you.. But it obviously is.
Lisa development isn't exactly trivial, and up until ~2 years ago there were some wonky bugs in LisaEm that impacted development in Lisa Workshop. There probably still are bugs there, but the main contributor to LisaEm is no longer available to work those out. So, we're left with a small pool of hobbyists that 1) have actual Lisa hardware available and 2) are adept enough to fire up Lisa Workshop and the limited amount of available documentation to actually build a "useful" application. I don't know if anyone has kicked the tires on Workshop in LisaEm lately to know if it will output a working application.
But, as Tom pointed out, there's some Pascal and Toolkit docs out there that can point a willing individual in the right direction of drawing circles and squares to make the first-of-its-kind Lisa Solitaire program (should they be so inclined).
-
Oh I never thought it was trivial in the least. Im sure its quite the opposite.
-
I never thought it was trivial...
This is the issue for me... what software would be worth the effort?
The only thing that has tempted me over the years is a hex file/disk editor, but even that is a stretch now that we have ProFile emulators.
More recently now that we have LOS source code, I would add a SCSI driver to the list of possible software projects.
Still, I think being able to recompile and install LOS would come first... but the scale of the project... !
Things like Tom's Selector, LisaEm, and dare I say BLU probably give a more immediate benefit from cycles invested. ymmv
-
There's a few things I would like. If I were retired and could buy a few extra years for my life, I'd like to make a powerpoint clone for the Office System: it's a part of the modern office suite that's missing on Lisa and it also tells you how much fun I am at parties.
Somehow about nine months ago this new piece of Lisa software went up on Github (https://github.com/stepleton/teslerpoint) as a bit of a stopgap. And I did actually haul my Lisa 1 into work and give a slide show presentation with the thing --- it was a fun stunt.
Solitaire is a great idea and is probably more fun to program than presentation software. QuickPort (the limited but easier way to "port" Workshop apps to the Office System) would probably do the job here, although my recollection from LisaMandelbrot (https://github.com/stepleton/LisaMandelbrot/tree/master/Port) is that drawing bitmaps (like you'd probably have on the cards) is a bit awkward, hence warnings like these (https://github.com/stepleton/LisaMandelbrot/tree/master/Port#usage-instructions-and-notes). It might be better to make the card designs with ordinary draw commands. This reminds me that I'd like to make a LisaMandelbrot from ToolKit someday.
To add to the media drivers idea: I'd love to see some kind of networked storage option, similar to FujiNet perhaps. Most? (all?) ESP32s have WiFi, and being able to exchange files over the network would be amazing. This Lisa Device Drivers Manual presumably provides the additional guidance one would want in order to write the drivers:
https://www.applefritter.com/content/lisa-device-drivers-manual
and now that we have the OS source code, we ought to be able to build the units (=libraries) that drivers need, which I don't think are included in the standard Workshop install. Just like so many other things, device drivers seem perhaps a bit overdesigned for the application and can be loaded or unloaded from the OS without rebooting. In fact, you can mark drivers so that they're dynamically loaded and installed only when you use a device that needs them! Another thing about Lisa that's technically and puzzlingly impressive.
-
Thanks for the Link!
I also hope to use the Lisa for presentations
There's a few things I would like. If I were retired and could buy a few extra years for my life, I'd like to make a powerpoint clone for the Office System: it's a part of the modern office suite that's missing on Lisa and it also tells you how much fun I am at parties.
Somehow about nine months ago this new piece of Lisa software went up on Github (https://github.com/stepleton/teslerpoint) as a bit of a stopgap. And I did actually haul my Lisa 1 into work and give a slide show presentation with the thing --- it was a fun stunt.
-
Here is my 3d printed ESProfile holder (from the other thread).
I have a white one also but the orange caught my eye. I have an extra if anyone wants it!
I am powering the fan from the card also.
-
I am powering the fan from the card also.
Nice!
In the latest design revision, I've added a fan header, so you can now plug the fan straight in instead of using clips if you have the latest board!
-
Sigh.
https://www.bleepingcomputer.com/news/security/undocumented-commands-found-in-bluetooth-chip-used-by-a-billion-devices/
"The ubiquitous ESP32 microchip made by Chinese manufacturer Espressif and used by over 1 billion units as of 2023 contains undocumented commands that could be leveraged for attacks.
The undocumented commands allow spoofing of trusted devices, unauthorized data access, pivoting to other devices on the network, and potentially establishing long-term persistence..."
-
Ironically, I am planning on using my LISA (when I get it fully running and outfitted) to write security blogs on things like IOT devices.
thanks for the heads up!!!
-
using my LISA ... to write security blogs
Interesting! If you proceed with that you may be one of the few using a Lisa for actual productivity/work.
I don't recall specifics as to when the first viruses appeared for the Macintosh, but I'm confident the Mac Plus could be infected, which means that if you're using MW+/II you're vulnerable.
I presume some other vintage Mac forum has info about those early viruses... something to watch for when testing old software if you depend on your Lisa for work.
-
Here is a Pascal code snippet for Lisa Workshop that enables the use of a SCSI hard drive with Lisa OS 3.0.1:
This is AI written wonder if it would work?
A basic example, Yes. Also very high level.
My low level HI (Human Intelligence) predicts this will not work... calling a SCSI manager that does not exist in the Lisa OS.
-
using my LISA ... to write security blogs
Interesting! If you proceed with that you may be one of the few using a Lisa for actual productivity/work.
If you're using MW+/II, you're vulnerable. This is something to watch for when testing old software if you depend on your Lisa for work.
I hope I am successful!
If I do run into one, it is not likely to get far as the O/S is contained to SD cards and floppy images....
-
Here is a Pascal code snippet for Lisa Workshop that enables the use of a SCSI hard drive with Lisa OS 3.0.1:
This is AI written wonder if it would work?
(What is Lisa OS 3.0.1?)
As Lisa2 has pointed out, this program is bogus. The AI has done what they usually do when they don't know what they're talking about, which is to give you an attractive-looking lie.
The program does appear to be valid Pascal syntax, so that's a good start. What it seems to want to do is use some built-in SCSI functionality to mount a SCSI drive. The Lisa OS doesn't have any SCSI functionality at all, so this program is trying to use something that doesn't exist. And the way it uses its made-up functionality --- mount a drive --- is probably something that you could do with the Preferences program or the Workshop shell if that functionality did exist. In other words, if this program worked, there probably would not be a need for it...
The way the program is trying to invoke that functionality appears to be through a library called "SCSI" (see under "USES"). There is no SCSI library in the Lisa OS: this is something we would have to write. The library would probably make use of a SCSI device driver (or a stack of them: one for SCSI, one for storage that uses SCSI), which is also something we would have to write. The device driver manual that I linked to earlier would probably help out a lot with that, but it would still be an ambitious undertaking!
The program also appears to be using a library called LisaTypes, which I don't remember existing either. Presumably this is where the SCSIdevice record type would have been defined.
For programs that you build with the Workshop, all but the most fundamental libraries have to be listed alongside a special comment that tells the compiler where to find the library. This comment takes the form {$U library_file_name.OBJ }. You can see some of these in a real Workshop Pascal program here: https://github.com/stepleton/LisaMandelbrot/blob/master/Pro/MANDELQD.TEXT#L81
The rest of the program goes on to use the made-up SCSI library in a made-up way. Pure imagination can never be right or wrong, so there's not much to say about what you see here, other than that it won't be very helpful in getting SCSI in the Lisa OS in real life. As one final nit, though, Workshop Pascal files usually have the extension .TEXT, not .PAS.
Doing this development for real will be a big lift for a human or an AI. Despite what I've said here, I do think generative AI systems could play a role here: used well and with appropriate hand-holding, they're pretty good at writing code. But I don't think they're going to know how to write Lisa device drivers "out of the box". At a minimum, I think you will need to use a model with a big context window and provide useful resources within that context window, like that device driver manual and perhaps even some of the source code for the libraries that the example code in the manual uses. You will also need to provide low-level information about the SCSI card that you'd like the driver to use, potentially including the datasheet for the SCSI IC that it employs. Ultimately, by the time you've given the AI everything it needs to do the job, you may find that you can do a lot of the job on your own anyway...
-
We are completely off topic, but I want to share this:
Code for a SCSI driver for early Macintosh computers, written in 1985:
https://github.com/SuperSVGA/MacSCSI/tree/main
Unfortunately, the full code is not present, only parts of it.
-
AI has done what they usually do when they don't know what they're talking about, which is to give you an attractive-looking lie.
I'm intrigued by the potential to train some AI thing by feeding it valid Lisa documents and known-working code. Much easier done by those who (think they) control the AI, but I think the possibility is there for those of us on the outside to influence its learning.
I tried to get Chat-GPT to help me with some 6504 code for BLU; after I managed to correct some misunderstanding it had about the 6504, it could make an improvement, but it would soon revert to its misunderstanding when I tried to get back to the original objective. So as far as I'm concerned, it wasn't ready to learn something new, but I can see how a Chat-GPT expert could make much better progress than I.
-
Code for a SCSI driver ... the full code is not present, only parts of it.
The LSAC (and the QuickBoot derivative) has basic bare-metal SCSI functionality for the Lisa SCSI. I hope to open-source the code at some point, but am currently dealing with another's effort to "open-source" another piece of my work before I'm ready to do so, which isn't encouraging for the time-line.
Regardless, I may be happy to help someone else if they take on the LOS SCSI driver project.
-
Here is my ESProfile case for the external board that I created for my Lisa ESProfile card. The inside has slots to hold the board in place I can post more pictures if anyone is interested.
-
Thats pretty nice. Will you post the STL files?
-
I'm on vacation right now, but I'm planning on adding it to the ESProFile GitHub repo once I get back!