Cross Platform Coding for the Apple ][

12 posts / 0 new
Last post
ragooman's picture
Offline
Last seen: 7 years 2 months ago
Joined: Apr 9 2011 - 16:28
Posts: 4
Cross Platform Coding for the Apple ][

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

------------------------------------------------
problem#1,
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.

problem#2,
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.

problem#3
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%],

But then,
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
1. Editor
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.
Dan

MarkO's picture
Offline
Last seen: 2 weeks 4 days ago
Joined: Dec 10 2011 - 16:26
Posts: 688
Re: Cross Platform Coding for the Apple ][

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.

MarkO

evank's picture
Offline
Last seen: 2 weeks 3 days ago
Joined: Jan 29 2005 - 22:33
Posts: 54
Re: Cross Platform Coding for the Apple ][

Yes but as I posted in the Facebook group I am not (and will not) use Windows. Smile

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.

speedyG's picture
Offline
Last seen: 4 years 10 months ago
Joined: Nov 16 2011 - 07:45
Posts: 2493
Re: Cross Platform Coding for the Apple ][

Hello Evan,

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....

speedyG

ragooman's picture
Offline
Last seen: 7 years 2 months ago
Joined: Apr 9 2011 - 16:28
Posts: 4
Re: Cross Platform Coding for the Apple ][

Hello Evan,

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....

speedyG

I'm agnostic with the OS Smile
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

ragooman's picture
Offline
Last seen: 7 years 2 months ago
Joined: Apr 9 2011 - 16:28
Posts: 4
Re: Cross Platform Coding for the Apple ][

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.

MarkO

now this is an interesting strategy,
thanks for the tip,
have to try it tonight

ragooman's picture
Offline
Last seen: 7 years 2 months ago
Joined: Apr 9 2011 - 16:28
Posts: 4
Re: Cross Platform Coding for the Apple ][

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
<br /> For any new programs or editing an existing program in a text file<br /> 1. write your new Applesoft Basic code or edit an existing program , and save this into a text file<br /> 2. take an existing Dos or ProDos disk image, which can be found online, and open it with CiderPress<br /> 3. a. Select this operation in the menu, Actions---&gt; Convert to File Archive<br /> this will create an archive image in the shrinkit format<br /> b. you get a popup window called 'Convert to Archive"<br /> c. the button for 'Convert All Files' should be ON<br /> d. the box for 'Preserve Empty Folders' should be checked<br /> e. Click GO and you get the Save dialog window popup<br /> f. select your directory, such as your project, enter filename of this new archive file, click SAVE<br /> 4. Open this new archive file, you should see the same files from the disk image<br /> 5. a. Select this operation in the menu, Actions---&gt; Import BAS from Text<br /> b. the 'Open Text File' dialog window will popup, select the text file containing your code<br /> c. you get another popup window, 'Import BAS from Text File'<br /> d. the filename box is pre-filled with the same filename of your code<br /> e. I suggest to changing this to CAPs for the Apple ][ system, then click SAVE<br /> f. the new code will now appear as an Applesoft Basic file in the new disk volume of the archive<br /> 6. a. Select this operation in the menu, Actions---&gt; Convert to Disk Image<br /> b. you get a popup window called 'Convert to Disk Image"<br /> c. the button for 'Convert All Files' should be ON<br /> d. select the correct disk size, in our case, this was 140KB, 5.25" Floppy<br /> e. at the bottom, enter the new name of the ProDos volume, use CAPs, then click GO<br /> f. you get the Save dialog window popup, select your project directory, enter filename of the new disk image, click SAVE<br /> this is now a *.po disk image, which is specifically for ProDos disk images<br /> and it's still compatible with the emulator and ADTPro<br /> 7. Verify the disk image<br /> you can try this new disk image in the emulator to confirm the integrity of the disk image, before transferring with ADTPro<br /> 8. once it checks good, transfer the disk image back to the Apple ][ using ADTPro<br />

Offline
Last seen: 1 year 6 months ago
Joined: May 27 2013 - 13:01
Posts: 849
Re: Cross Platform Coding for the Apple ][

Yes but as I posted in the Facebook group I am not (and will not) use Windows. Smile

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.

EVANK! EVANK! Please don't leave us again!

You post only twice a year...

Offline
Last seen: 1 month 3 weeks ago
Joined: Jun 5 2008 - 07:26
Posts: 475
Re: Cross Platform Coding for the Apple ][

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.

regards,
Mike Willegal

evank's picture
Offline
Last seen: 2 weeks 3 days ago
Joined: Jan 29 2005 - 22:33
Posts: 54
Re: Cross Platform Coding for the Apple ][

Insanitor: That's an odd comment. Smile

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. Smile

Offline
Last seen: 5 years 1 month ago
Joined: Dec 20 2016 - 12:41
Posts: 7
Re: Cross Platform Coding for the Apple ][

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.
-JB
Twitter: @JBrooksBSI

mmphosis's picture
Offline
Last seen: 2 weeks 1 day ago
Joined: Aug 18 2005 - 16:26
Posts: 433
Re: Cross Platform Coding for the Apple ][

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
3) Terminal

The alias mondump will dump a binary in a format suitable for pasting into the monitor:

alias mondump='hexdump -v -e '\''":" 16/1 "%X " "\n"'\'''

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.)

Log in or register to post comments