Difference between revisions of "Guides:MAME - driver - apple2p"
Line 158: | Line 158: | ||
== References == | == References == | ||
+ | * https://archive.org/details/super-serial-card-user-manual | ||
* https://www.reddit.com/r/MAME/comments/gu63am/problems_getting_serial_output_from_emulated/ | * https://www.reddit.com/r/MAME/comments/gu63am/problems_getting_serial_output_from_emulated/ | ||
* https://github.com/danmons/retronas/issues/265 | * https://github.com/danmons/retronas/issues/265 |
Revision as of 19:47, 24 November 2022
Apple II
Introduction
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 |
Prerequisites
- 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 ]PRINT"HELLO" HELLO ]10 PRINT"HELLO" ]20 GOTO 10 ]LIST 10 PRINT "HELLO" 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
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 ADTPro.properties files with these two entries for localhost mode
SerialIPHost=<ip address of the MAME host> SerialIPPort=10000
When we are ready start the server with
./adtpro.sh 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
Bootstrapping
Untested, I am running ADTPro headless at the moment
Troubleshooting
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 0.0.0.0:10000 0.0.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
References
- https://archive.org/details/super-serial-card-user-manual
- https://www.reddit.com/r/MAME/comments/gu63am/problems_getting_serial_output_from_emulated/
- https://github.com/danmons/retronas/issues/265
- https://github.com/ADTPro/adtpro/issues/164
- https://wahki.mameau.com/index.php?title=Guides:MAME_-_bitbanger
- https://www.youtube.com/watch?v=Mo8YdDtzoDE
- https://www.howtouselinux.com/post/tcpdump-ports