Guides:MAME - driver - apple2p

From Wah!ki
Jump to navigation Jump to search

Apple II


There are a few variants of this machine

For general information on the MESS project and how to use it including external references see the dedicated MESS Page


  • Appropriate MAME setup

Apple Super Serial Card

Start the MAME apple2p with the ssc slot device with a null_modem attached to it attached. Configure a bitbanger device. To test the configuration we will output to a file on the host OS. The key to getting this to work is to ensure the slot device config matches the bitbanger device configuration within MAME.

mame apple2p -v -w -nomax -sl1 ssc -sl1:ssc:rs232 null_modem -bitb a2out.txt -flop1 dos33.dsk

In the MAME (for this test only) due to high ascii output (see references)

  • Dip Switches (slot device)
 * Mode: Communications Mode
 * Baud Rate: 9600
 * End of Line: Don't add LF after CR
 * Parity: None
 * Data Bits: 7
 * Stop Bits: 1
 * Interrupts: On
  • Machine Configuration (null_modem/bitb device)
 * Flow Control: off
 * Data Bits: 7
 * Parity: None
 * RX Baud: 9600
 * Stop Bits: 1
 * TX Baud: 9600

Let the apple2p machine boot DOS 3.3 you will be presented with a "]" prompt

To begin outputting to your file at the prompt type "PR#n" where n is the slot number you attached the ssc device too. Everything after this will display in the file

$ tail -f a2out.txt 


]20 GOTO 10


20  GOTO 10

If the version of DOS you use does not output a linefeed after CR change the "End of Line option" option in the dip settings.


ADTPro supports bootstrapping a machine and/or transfer data between machines. It is a server(+gui) application written in Java that can be run in multiple modes of operation to support the widest range of scenarios

We will use localhost mode (serial over ip) with MAME to send and receive files. (why? i needed to test the RetroNAS implementation of ADTPro)

Note: ensure the MAME device slot matches the ADTPro configured ssc slot otherwise it can hang start up

Note: ADTPro required 8N1 configuration for serial over ip

Configure MAME

Boot the ADTPro client disk with the bitbanger device pointing to a socket:port. (19200 is the max configured speed I could use with the apple2p due to navigation issues, you may be able to configure 115200)

mame apple2p -v -w -nomax -sl1 ssc -sl1:ssc:rs232 null_modem -bitb socket.<ipaddress>:10000 -flop1 ADTPRO-2.1.0.DSK

  • Dip Switches (slot device)
 * Mode: Communications Mode
 * Baud Rate: 19200
 * End of Line: Don't add LF after CR
 * Parity: None
 * Data Bits: 8
 * Stop Bits: 1
 * Interrupts: On
  • Machine Configuration (null_modem/bitb device)
 * Flow Control: off
 * Data Bits: 8
 * Parity: None
 * RX Baud: 19200
 * Stop Bits: 1
 * TX Baud: 19200

Configure ADTPro Server

Configure the files with these two entries for localhost mode

SerialIPHost=<ip address of the MAME host>

When we are ready start the server with

./ headless localhost

Configure the ADTPro client

1. Boot the client disk in MAME

2. Press "S" to go into Serial Mode

3. Press "G" to enter the configuration screen

4. Select your SSC slot

5. Configure Speed/Baud to 19200

6. Save your settings

Sending/Receiving Files

1. Start MAME, leaving it on the info screen. It will begin listening on the configured bitbanger port

2. Start ATDpro in localhost mode it will connect to the MAME instance

3. Let MAME boot into the ADTPro software

4. Press "S" to go into Serial Mode

5. Press S or R to go into send or receive modes, type the filename

  * in Send mode, select the volume to send data from, the filename you created will be created on the remote end
  * in Receive mode, the filename you type will be sent from the remote end and written to the volume you select

Note: it is advisable to write to a new blank disk in the drive


Untested, I am running ADTPro headless at the moment


is bitb listening

On the MAME host machine, check MAME is listening on the socket you configured

$ ss -lnp | grep mame
tcp   LISTEN 0      0                                    *    users:(("mame",pid=1032959,fd=31))   

traffic flow on your bitb port

using tcpdump look for traffic flow on your listening port between both endpoints of the connection

# tcpdump -i ens192 port 10000
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), snapshot length 262144 bytes