Pravetz 8c / Apple IIe as Linux terminal


Just to make sure you are on the right article, starting with “why we need to do this?”, if similar questions came to your mind, please proceed to step one (ctrl+w)

Recently got my Pravetz 8C (my first computer) back to me after more than 20 years. First question was “How can i have some software for it?”, google it and found some software for Bootstrapping Apple II computers using the serial port (thanks ADTPro). Then “Ok, since we have serial … ” there should be some way to connect it to Linux, yes there is. Using Apple as Linux terminal is not a new idea but hacking the Pravetz is a bit complicated. For anyone who wants to try I wrote all steps below.

Pravetz 8c is Bulgarian Apple IIe clone so this article is also applicable for the Apple.

Hardware you need:

- Laptop with Linux (I use Ubuntu)
- Pravetz 8c or Apple II e
- Apple super serial card (skip if Apple)
Pravetz does not have serial port by default, so we need Apple super serial card ( find on ebay )
Here is how it looks plugged to the motherboard:

- RS232 to USB – to convert to USB. You probably don’t have serial port on your laptop, so you have to run rs232 over USB. You need drivers for this adapter too.

You connect the rs232 to the USB converter and connect the Pravetz to the laptop.

Let’s start:

1. Bootstrap the Pravetz (Apple) using ADTPro tools ( use Windows for ADTPro ).
- download adtpro and learn how to write DSK images on the Pravetz/Apple ][e .

here is ADTPro video tutorial:

After this tutorial you should be able to write .DSK images (downloaded from the internet) to 5.25 disks on the Pravetz (Apple).

2. Copy “Modem MGR program” (.SDK images) to 5.25 Floppy disks using the ADTPro and Apples Floppy

- install disk download
- working disk download

Download and copy these images on 5.25 disks using ADTPro.

3. Create new Linux user for the Pravetz (Apple II):
- Reboot on Ubuntu
- we create new Linux user using only UPPERCASE LETTERS (you will later find why)

sudo -i
useradd -m PRAVETZ
usermod -s /bin/bash PRAVETZ

- set password for user PRAVETZ again using only UPPERCASE LETTERS for the password

passwd PRAVETZ

- add PRAVETZ TO sudoers

echo "PRAVETZ ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

- some settings for Pravetz user (skip if Apple)

su PRAVETZ
cd /home/PRAVETZ
wget http://paceto.net/.screenrc


The screen config file you just downloaded (i created using hexdump on serial port) will be used to fix the PRAVETZ’s keyboard incompatibility ( see .screenrc )

- enable insensetive tabbing
copy/paste to terminal (with PRAVETZ user)

# If ~./inputrc doesn't exist yet, first include the original /etc/inputrc so we don't override it
if [ ! -a ~/.inputrc ]; then echo "\$include /etc/inputrc" > ~/.inputrc; fi

# Add option to ~/.inputrc to enable case-insensitive tab completion
echo "set completion-ignore-case On" >> ~/.inputrc

- return to your user (root :)

sudo -i

4. Open serial port on Linux side using “screen” command:
do NOT use the PRAVETZ user
- open terminal
- find your serial device (over usb)

cd /dev
ls | grep tty | grep USB

this should output something like:

	 	 
ttyUSB0

this is your serial device (over usb)
- now we are running “screen” on the serial device rate 19200 (you can try rate 1200 if face any problems):

 	 
sudo screen /dev/ttyUSB0 19200

5. Remove the jumper from Pravetz (if Apple ignore)
Pravetz has SETMOD 1 custom BASIC command to turn on the little latin characters but it won’t help us due to some software issues we will face later so … remove the jumper marked with red circle to turn off the Cyrillic mode.

6. Installing drivers on the Pravetz (Apple):
- insert Modem MGR install disk and reboot the Pravetz
It will prompt you:

	
Insert work disk with uninstalled or previously installed MDM0 program and press [RETURN]

- insert working disk and press [Retrun]
it loads MDM0 and prompts you:

	 	 
Insert INSTALL disk and press [Return]

- so insert again the install disk and press Return
Now we are going to install drivers for the Pravetz.
- Install Video driver

(press 1 and hit Return)

we choose 80 column video driver

(press 2 and hit Return)

Normal or split-screen?

(press N and hit Return)

Use this driver

(press Y and hit return)
Press any key to go back to main menu

- Install modem driver
goto Install modem driver

(press 2 and hit Return)

choose Internal plug-in serial/comm. card with external modem

(press 2 and hit Return)

we are prompted to choose our serial card, our case we have “Apple Super Serial”

(press 2 and hit Return)

we are prompted to choose Which slot is card in?
You can find your serial card slot written on the mothermoard) in our case it’s slot 4

so

(press 4 and hit Return)

Use this driver?

(press Y and hit return)

we are prompted to choose Modem type and we are choose Non-smart Modem option

(type 10 and hit Return)

Use this driver?

(press Y and hit return)
Press any key to go back to main menu

- Save the installation we just did
save it

(press 9 and hit return)

You are prompted to insert the working disk so

(insert it and hit Return)

It will now save your configuration on the working disk.

- Let’s connect!
Reboot the Pravetz and wait working disk to load.
Pravetz 8c is extremely fast so set Modem baud rate to 19200 :D

(press Esc, M, O)

it shows “Wait …” (actually you don’t have to wait proceed to next step)
setting Length/stop/party to “8+1+none” which is option 6

(press esc, J, 6)
press esc, shift + |


note:
(“|” – for Pravetz it’s the button next to the “+” button. For Apple It could be the “colon” button not sure … try both )

We are now connected to the Linux “screen”.
Huh :)

If you type something on the Pravetz it will appear on the Linux.
We now have serial port connection “Pravetz” <--> “Linux screen” and going to establish a Linux session.

7. Establish new linux session
Go to Linux console where “screen” is running

 
press ctrl + A	 	 
press shift + :

We need to prompt login:

note: execute the whole string you see

 	 	 
exec ::: /bin/login

Login prompt will appear on the Pravetz and you will find that you are able to use only UPPERCASE LETTERS, so login with the PRAVETZ user you previously created.

8. Fixing lowercase letters mapping on the Pravetz (skip if Apple)

Here is the issue:
Pravetz 8c keyboard is able to work with two different character tables (8-bit table and 7-bit table).

8-bit table:
You can enable it by using the custom BASIC’s command SETMOD 1 which enables all letters Cyrillic and Latin (lower and upper case) so everything is fine.
The problem is that the “Modem MGR” manager (software we use on the Pravetz) by some reason overwrites the memory area (from C000 to CFFF) where character table is stored and reset it to default SETMOD 0
I was not able to fix it so we have to use the default 7-bit table.

7-bit table:
7-bit table overwrites all lowercase latin letters with UPPER-CASE Cyrillic. We already turned off the Cyrillic letters (removing the jumper) but the arrangement still messed up corresponding to BDS standard.

Rewrite the characters table calling another screen (skip if Apple)
I used “hexdump” command on the serial port to dump the octal codes on the PRAVETZ keyboard creating a custom map (/.screenrc you already downloaded) that fixes the keys arrangement.
It also fixes/enables some useful functional keys for linux terminal ( we have bash history keys ).

go to the Pravetz and run new screen session (completion-ignore-case is On, so use it to convert to lower-case SUDO + TAB … SCREEN + TAB)

 	
sudo screen

Keyboard is now fixed : )

some special characters you need to know:
“,” = [C\L] + “р”
“{” = [C\L] + “л”
“}” = [C\L] + “б”
“|” = [C\L] + “м”

9. you can now detach the linux console and close it

 
Ctrl+A followed by D	 	 
exit

Login from the Pravetz.
That’s all.

One thought on “Pravetz 8c / Apple IIe as Linux terminal

Leave a Reply

Your email address will not be published. Required fields are marked *



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>