Anyone have some success with getting the right tools to setup a workflow for building a cross platform coding on the Apple ][ ?
I'm not sure if this topic has been covered here already. If so, I haven't had luck in finding this info, just some basic material so far.
I found some tools already which I hope someone can give us some advice to build a practical workflow. While helping Evan from the VCFed museum on his Lego robot project, the traditional method of coding directly on the vintage platform becomes a burden when trying to collaborate over the phone, email or online. Because you can't see what's on their screen and you can't share the screen online as with today's desktops. No amount of chit-chatting to summarize the code without looking at it directly is going to help. For the moment, he wants to work with Applesoft Basic, and perhaps later once the bugs are worked out and the project is running, then dive into some 6502 assembly.
In the past, because it's simply not practical to do that, I once had Evan and Jeff[also VCFed museum] shine their phone's camera over the computer screen during a video conference to help debug the code, it worked But I suggested they get one of those goose-neck mounts to hold the phone or webcam so they can type faster
Now I recommended that we change to the cross platform coding because it helps to share the code, share the work, especially when it comes time to debug any problems while we collaborate on this project from long distances. And these situations happen often on a new project, with new hardware, etc. So it becomes practical over the phone, email or online. I do this already with my C64 assembly coding project to collaborate with Jeff and others at long distances.
But now I'm not sure if my google-foo has lots of static for this Apple ][ topic because I never had so much trouble finding enough info, versus the time when I had to setup one for my C64. That one did take some time, but mostly to get familiar with the software tools out there which is specific to that machine. Then after it just took some time to iron out the steps between each tool.
For the Apple ][
this is what I found so far
1. Editor = I think any editor would suffice here, maybe there's one specific for the Apple][ ?
2. Disk Imager = AppleCommander[jav], CiderPress[win], Ominvore[win], DiskBrowser[win]
3. Emulator = AppleWin[win], LinApple[nix]---> both are the same port
4. Floppy emulator = ADTPro[jav] via serial port
Now these tools work as described, but there's still some glitches in the workflow
I can open any disk image with the tools mentioned. But then when I try to extract the Basic file on my desktop, the tools give you 2 choices, either the original Apple format, or text format. The original format is so you can later import the file to the disk image. But then it's not possible to edit the file cause I can't locate an editor which can view the file in the first place. And the viewer in the disk imagers don't let you edit file.
With AppleCommander, i can extract the Basic file. It's always exported as a text file. But then it insert extra CR's on every line.
I can edit the code. then import the file back into the disk image. I can verify the code is good when I view this in the disk imager.
And then I load this into the emulator. But when I list the file, there's always some glitches with extra lines of garbage text, either at the beginning or end, maybe in the middle.
When I view a Basic file in CiderPress, it possible to copy the text in that viewer and paste into a text file on my desktop,
So then I edit the new code into that, but then I can't take that new code and paste back into that viewer inside the CiderPress disk imager.
We also can't paste the lines of code into either emulator
We're trying to avoid retyping the whole program.
How do we get this into a useful format for the live hardware ?
So we can do these basic things[summary],
load disk images,
make disk images,
view files in the disk images,
extract files from the disk images[not 100%],
we can't successfully import the files from the desktop with the Basic code,
into the disk images for the emulator or live hardware,
even though the viewer in the disk imager verifies its there and readable,
the listing viewed in the emulator shows the glitches
This is what we're facing and we like to find somebody that can give us advice on this
For the C64,
I use Assembly coding. It became easier to build a practical workflow. I just use an editor, then a script for the Assembler to build the code, the symbol table, listing file, even a debug listing for the emulator, so I can set breakpoints on the labels from the code when debugging, and even the image file so I can add it to the disk image.
Then there's a 2nd tool to build the disk images for the Commodore systems. And then a very powerful emulator called VICE, which handles every single computer made by Commodore -- to load the disk images for testing/debugging the code. And the same disk image is stored on a SD card to load into the C64 hardware for live testing.
For Assembly coding, it's only 5 tools for cross platform coding on the C64
Plus there are some other tools which you use in parallel,
for creating graphics, sprites and sound effects, and SID music
2. Assembler = DASM
3. Disk Imager
4. Emulator = VICE
5. uIEC = SD card floppy
For those that use Basic coding, it's even simpler. Lots of people have been very progressive in building powerful coding tools for the Commodore scene. So there's one called CBM studio. This replaces #1, #2, and #3.
1. CBM studio
2. Emulator = VICE
3. uIEC = SD card floppy
Some use the CBM studio for Assembly coding. But as you know with Assemblers, not all are compatible, because of their syntax style. So I try to avoid stuff like that. Because on one project, I tried to rewrite this network game, it was coded using DASM and I wasn't about to edit 100's of lines of code in a dozen files just for that, I had enough work ahead of me already, so I just kept using my editor and that assembler.
And there there's always the issue that many of the tools are not built for multiple desktop platforms. I don't fault the developers for this. Because there are some very good and powerful software tools for all aspects of the machine, for graphics hardware, sound hardware, etc, not just assembly coding. So I just keep using tools like VMware to run the different tools.
You have to give lots of credit to the many people who devote so much time to building these tools. Because it really promotes a wide avenue for other people to use these to get very creative. I noticed there are always multiple types of people, this is just one example. People who know how to build the right tools for you, and people that get very creative by using the right tools. Example, If you want to build your own house, you like to find the right tools, rather than getting the "forge and anvil" to build your tools -- which can already be done better by those experts who devote their time -- so you can spend more time being creative on your house design.
The BASIC Files on the Apple Disk are Tokenized, to save space..
You can use AppleWin, and Select the option to have the Printer (e.g. PR#1 ) be directed to a file, ( that will be in the AppleWin Sub-directory ).. So Print your Code, then Edit with a Text Editor and then AppleWin will let you Copy and Paste back.
Yes but as I posted in the Facebook group I am not (and will not) use Windows.
CiderPress shows an option to import text to BAS files in the Action menu but that's grayed out until you open a file and it will not let me open a text file, odd catch-22 there.
one question about your Apple hardware:
do you habe a mass storage based on CF- Card or USB-Stick ?
and Dan, i guess you prefer to use windows as OS with EMU ?
depending to the answers i might make a suggestion....
I'm agnostic with the OS
I use any platform that's possible
In lots of cases I will run vmware on Linux to run a windows tool
In the case of the emulator, LinApple is a port of AppleWin
But many of the tools are windows only, so vmware helps take care of that
Some are java like AppleCommander, so it doesn't matter
Evan has ADTPro to transfer disk images back n forth
now this is an interesting strategy,
thanks for the tip,
have to try it tonight
ok, after digging around some more with these tools,
and chatting on the phone with Evan,
I found the solution.
these are the steps,
doesn't matter what OS, or using VMware, since some of the tools are linux, java, or only windows
Evan let me know if i missed anything
EVANK! EVANK! Please don't leave us again!
You post only twice a year...
There is an alternative approach that I use.
Create the code using the editor and compilier, interpreter or assembler of your choice.
From there, I create cassette port compatible audio files using Virtual ][ or some tools I have written. At that point, you can load onto real HW from an portable music player through the cassette interface.
Insanitor: That's an odd comment.
I read Applefritter frequently.
Dan figured out how to use CP to do what I needed. The trick is to start with a disk image such as ProDOS.
To answer Speedy: I don't have any mass storage other than floppy disks.
I use Mac OS to cross-develop Apple ][ & IIGS code. Sometimes I test on the Mac using an emulator, other projects require Disk II hardware or accurate timing and only run on physical Apple II hardware.
The primary programs I use:
1) Xcode IDE for editing, source version control, & building
2) Merlin32 by Brutal Deluxe to assemble 6502, 65c02, or 65816 code (crazy fast)
3) Cadius by Brutal Deluxe to copy files between the Mac OS SSD and ProDOS disk images
Execution on an emulator:
1) GSport with disk image mounted as 32MB HD, 800k 3.5", or 140k 5.25"
2) I typically run GSport at 8MHz 6502 speed for asm testing, or 100+MHz speed for Applesoft code
For testing Apple ][, ][+ & //e compatibility I use Virtual ][ on Mac OS with 140k 5.25 disk images.
For Applesoft development, I write the source text in Xcode, use Cadius to write it to the HD disk image, then in ProDOS I just EXEC it at 100+Mhz which types it in, tokenizes and runs it.
Execution on physical Apple II hardware:
I use a IIGS serial-to-USB cable and wrote an app to transfer data via a ProDOS driver, but you can do something similar with stock ADT Pro.
1) Use ADT VDrive to 'mount' a disk image (32MB HD, 800k 3.5", or 140k 5.25") stored on the Mac so it appears as a virtual slot 2 drive on the Apple II
2) Run the code on the Apple II. The slot 2 drive will read & write blocks to the Mac via ADT & the serial port automatically
3) Use Cadius on Mac OS to inspect & change files on the disk image
Alternately, you can use a CFFA or other SDCard/USB storage to move data to & from the Apple II, but I prefer the fast, scriptable approach of using disk images and virtual drives which reside on the Mac and are accessed by the Apple II.
Hope that helps.
I often use Mac OS X, and sometimes Linux, to cross-develop Apple ][ code. I test and run on the Mac or Linux PC using emulators.
Along with the clipboard, the programs I use:
1) Xcode or TextEdit or gedit (Linux)
2) Merlin32, asm6 or one of these 6502 assemblers
mondumpwill dump a binary in a format suitable for pasting into the monitor:
Execution on an emulator:
KEGS (or GSport) - see this
AppleWin - the printer.txt file that others mentioned, or Paste using the button in the settings dialog box for input.
Virtual II - if you are willing to pay, this application appears to have some pretty awesome facilities
Catakig - type in by hand! This is an old emulator and Paste usually does NOT work
Using a real Apple ][+, I used a Super Serial Card connected to a Mac, so the workflow was very similar to KEGS. It was a long time ago, and I remember that getting the serial port settings, on both the SSC and in the Terminal on the Mac, was pretty hairy until I got it right. I created a custom program to read disks and transfer them to the Mac before I had ever heard of ADTPro (it might not have been around at that time.)