|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
I tried to run Turbo Pascal using an external terminal and for some reason, it wouldn't generate the proper ESC sequence to position the cursor so the editor won't work. There's a TINST program that allows you to set the terminal for Turbo Pascal. List of terminals supported by Turbo Pascal: Turns out there's terminal remapping built into apple cpm and a configuration program called CONFIGIO (written in basic!). So there's a "software code" that gets mapped to a "hardware code". I think the idea is to remap the Soroc IQ-120 to whatever terminal you are actually using and you can even map the Soroc IQ-120 to itself (set the hardware codes to match the software codes). It's just a simple translation, the "hardware code" is what's translated and sent to the hardware when it sees a "software code".
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
Just for fun, I wanted to see if you could run Applesoft Basic from an external terminal. So I modified the rs232 terminal to strip out the high bit with "data &= 0x7f;" ./mame apple2p -sl3 ssc -sl3:ssc:rs232 terminal and after hitting RESET after booting, and typing IN#3 and PR#3 you can type with the terminal keyboard and send output to the terminal. Output is simultaneous to the screen and the terminal, and the keyboards work simultaneously as well. One thing that's interesting is that CTRL+C from the terminal will only be processed if there is an INPUT statement, so you can't break basic programs that are running. Micro Display Systems made a full page display called the "Genius Full Page Display Model 101" that had 57 lines * 80 column resolution with RS232 and Apple specific versions. That would have been pretty neat. I think that once 80 columns was ubiquitous with the //e that demand for external terminals faded along with the additional complexity and high cost.
|
1 member likes this:
exidyboy |
|
|
|
Joined: Dec 2015
Posts: 173 Likes: 11
Senior Member
|
Senior Member
Joined: Dec 2015
Posts: 173 Likes: 11 |
For the record, you can work around the high bit issue without modifying the source by configuring the terminal for 7 data bits and mark parity. (This seems to have been one of the most common formats for serial ASCII transmission in the 1960s and 1970s, even after IC UARTs started to make the framing parameters more easily configurable. It became highly undesirable when 8-bit character sets began to proliferate in the 1980s.)
Last edited by AJR; 02/16/23 03:06 AM.
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
I was trying to format a floppy disk image in drive B with copy ii plus 5 on apple2e/apple2p, and it would abort saying error on track XX.
made a 143360 byte disk image with dd if=/dev/zero bs=256 count=$((35*16)) of=NEWBLANKDISK
copy2pv41 works copy2pv51 fails copy2pv55 fails copy2pv71 fails
I was trying to make a disk to get the IWEM laserwriter imagewriter emulator file off of the apple2gs.
Last edited by Golden Child; 06/12/23 03:37 PM.
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
You can create a new pre-formatted ProDOS disk image in MAME's File Manager.
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
I wanted to find a way to press CTRL+Open Apple+ESC to get into the control panel of the apple2gs, but LCTRL+LALT+ESC doesn't get passed on with Ubuntu. One strategy is to assign another key like PgUp to both Open Apple and CTRL, like PgUp, so you can type PgUp + ESC and that will work. I tried assigning PgUp to CTRL and OpenApple and ESC, but pressing all three simultaneously doesn't seem to work. It seems that ESC must be pressed slightly later than CTRL+OpenApple. Another strategy is to use lua to press some keys: So first, let's figure out the names of the ports and fields we need:
[MAME]> function printt(t) for a,b in pairs(t) do print(a,b) end end
[MAME]> printt(manager.machine.ioport.ports)
:a2_config sol.ioport_port*: 0x5645a8e82b28
:macadb:KEY0 sol.ioport_port*: 0x5645a8e5cf88
:macadb:KEY1 sol.ioport_port*: 0x5645a8df18a8
:macadb:KEY2 sol.ioport_port*: 0x5645a8e34068
:macadb:KEY3 sol.ioport_port*: 0x5645a8dc77a8
...
[MAME]> printt(manager.machine.ioport.ports[":macadb:KEY3"].fields)
Command / Open Apple sol.ioport_field*: 0x5645a8efe0e8
Esc sol.ioport_field*: 0x5645a8efa808
Option / Solid Apple sol.ioport_field*: 0x5645a8eff718
Control sol.ioport_field*: 0x5645a8f068d8
...
Once we know the name of the port and the fields we need, we can assign them to some variables and make a coroutine function:
opkey = manager.machine.ioport.ports[":macadb:KEY3"].fields["Command / Open Apple"]
esckey = manager.machine.ioport.ports[":macadb:KEY3"].fields["Esc"]
ctrlkey = manager.machine.ioport.ports[":macadb:KEY3"].fields["Control"]
function cofunc()
print("press op, ctrl")
opkey:set_value(1)
ctrlkey:set_value(1)
emu.wait(2/60)
print("press esc")
esckey:set_value(1)
emu.wait(2/60) print("release")
opkey:set_value(0)
esckey:set_value(0)
ctrlkey:set_value(0)
end
function pressctrlopesc() co1 = coroutine.create(cofunc) coroutine.resume(co1) end
pressctrlopesc()
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
You can always remap the conflicting keys in whatever desktop/window manager you use too.
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
Thanks Vas, that Input Macro plugin is very cool.
|
|
|
1 members (AJR),
259
guests, and
5
robots. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,944
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|