PALASM is an early hardware description language, used to translate Boolean functions and state transition tables into a fuse map for use with Programmable Array Logic (PAL) devices introduced by Monolithic Memories, Inc. (MMI). The language was developed by John Birkner in the early 1980s. It is not case-sensitive...
INTRODUCTION
Well... many oldschool computers have on board specialised ICs like PALCE, PAL or GAL which are very good successors for standard logic ICs like 74XXX family. They're integrating many ICs in one structure which is good method to integrate whole logic into one IC.
GALs and rest Programmable Logic Array (PL/PLA or PLD) before flash should have prepared data from compiled source wrote in PALASM... but PALASM was prepared early '80 under MS DOS and now is not so easy use it with modern hardware...
This tutorial is covering:
- how to prepare environment with DOS equivalent under Linux OS,
- how to configure PALASM in order to compile any PDS (source file) and generate destination JED file.
- how to disassemble existing JED file in order to find boolean equations for future use.
This tutorial is NOT covering:
-programming in PALASM (sorry, I'm so lazy
![Szczęśliwy :-)](./images/smilies/icon_e_smile.gif)
BASE ENVIRONMENT
I'm Linux user. My philosophy Is: "Everything what you may do under Windows you may do under Linux, but much better!"
My favourite distribution is Linux Mint which is my Desktop and development environment. So, with natural choice I will present "how to use PALASM" on LM.
First, install 'dosemu':
Code: Select all
apt install dosemu
---------------------------------------------------
Since Linux Mint 21, dosemu package is not distributed anymore.
Please use PPA method:
Code: Select all
sudo add-apt-repository ppa:dosemu2/ppa
Code: Select all
sudo apt update
Code: Select all
sudo apt install dosemu2
</Important>
now you have fully working DOS envt. You may try to use it by type: 'dosemu' in terminal:
Hurra! DOS emulator is working... so let's run PALASM software. Type simple 'exitemu' to quit from DOS. Next, you should download PALASM archive and place uncompressed folder it into '~/.dosemu/drive_c'. I downloaded ZIP archive from:
http://www.s100computers.com/My%20Syste ... 20GALs.htm
I attached copy of it to be sure that it will be 'save from oblivion' on the end of this tutorial
![Szczęśliwy :-)](./images/smilies/icon_e_smile.gif)
Code: Select all
pancio@desktop:~$ cd ~/.dosemu/
pancio@desktop:~/.dosemu$
pancio@desktop:~/.dosemu$ ls -al
total 252
drwxr-xr-x 5 pancio pancio 4096 Jan 20 19:06 .
drwx--x---+ 216 pancio pancio 212992 Jan 22 19:52 ..
-rw-r--r-- 1 pancio pancio 4037 Jan 22 20:39 boot.log
-rw-r--r-- 1 pancio pancio 406 Jan 20 19:06 disclaimer
drwxr-xr-x 5 pancio pancio 4096 Jan 20 21:02 drive_c
drwxr-xr-x 2 pancio pancio 4096 Jan 20 19:06 drives
drwx------ 2 pancio pancio 4096 Jan 22 20:39 run
pancio@desktop:~/.dosemu$
pancio@desktop:~/.dosemu$ cd drive_c
pancio@desktop:~/.dosemu/drive_c$ ls -al
total 4944
drwxr-xr-x 5 pancio pancio 4096 Jan 20 21:02 .
drwxr-xr-x 5 pancio pancio 4096 Jan 20 19:06 ..
-rw-r--r-- 1 pancio pancio 632 Jan 20 19:16 autoexec.bat
drwxr-xr-x 2 pancio pancio 4096 Jan 20 19:08 BACKUP
-rw-r--r-- 1 pancio pancio 348 Jan 20 21:02 config.sys
drwxr-xr-x 9 pancio pancio 12288 Jan 20 19:38 PALASM
drwxr-xr-x 2 pancio pancio 4096 Jan 20 19:06 tmp
pancio@desktop:~/.dosemu/drive_c$
1. Edit AUTOEXXEC.BAT file and add:
Code: Select all
path z:\bin;z:\gnu;z:\dosemu;c:\palasm;c:\palasm\exe;c:\palasm4\exe;c:\palasm\dat
SET PALASM=C:\PALASM\
Code: Select all
files=400
buffers=100
Now you may run dosemu again. Then run PALASM by type 'palasm'
![Szczęśliwy :-)](./images/smilies/icon_e_smile.gif)
That's all! We have working very old software but still desirable for modern projects
![Szczęśliwy :-)](./images/smilies/icon_e_smile.gif)
HINTS
During compilation some source files e.g. Hiaasoft's 512k SRAM extension for Atari XL/XE GAL source file I've got a couple of errors. The reasons was so trivial.. but little tricky: some compilation options was not optimally. Those options should be set as shown:
Now compilation will finish with success: