Hardware > Hardware (Classic 16-/32-Bit)

GAL Programmierung der einstieg

<< < (6/11) > >>

tuxie:
Es kommt ein wenig auf den Gal ASM an, das wird von ASM zu ASM unterschiedlich behandelt.

Welchen setzt du ein ? JEDI und GABI ?

FrankR:
Hallo Ingo,
bislang noch keinen. Ich habe mir mal schnell WinCUPL, GDSwin und einen PALasm in C heruntergeladen. Letzteren müsstd ich noch compilieren. Bin aber noch nicht dazu gekommen, die mal auszuprobieren. GABI und Jedi laufen unter TOS? Welchen empfiehlst du? Mit dem steige ich dann ein. Den Brenner (TL866II Plus) betreibe ich am PC, aber wo der Binärcode entsteht, dürfte ja egal sein.
Richtig?
Grüße
Frank

EDIT: Falls der GAL-Typ relevant sein sollte: ich habe hier einige Lattice 16V8D rumliegen.

tuxie:
Wie schon geschrieben wird der Tristate mode in den ASM unterschiedlich behandelt!

Meist hat man eine Bedingung wann der Ausgang aktiv also als Ausgang geschalten werden soll.

bsp.

DTACK.E = /AS * A23 * A22;

Das bedeutet das wenn diese Bedingung erfüllt ist, wird der Ausgang eingeschaltet, ansonsten verbleibt er im Tristate mode! Dies ist die Bedingung wann der Ausgang eingeschaltet werden soll, die genaue Bedingung was der Ausgang machen soll, muß natürlich extra definiert werden.

Bsp.
DTACK.E = /AS * A23 * A22;
DTACK = /AS * A23 * A22 */A21
             + /AS * A23 * A22 * A21 * /A20;


(reines Beispiel)
Bei der Pindefinition muß der Ausgang natürlich noch auf tristate gesetzt werden.

DTACK.T hier das .T anhängen.


So würde ich es z.b. in Jedi machen. Und ja, Jedi läuft unter TOS, da viele Atari Projekte für Jedi geschrieben sind. Ob die Jed Datei dann so gebrannt werden kann, da muß ich passen. Hab nicht mal einen GAL Prommer für den PC. Daher nur am Atari. Aber ich denke das sollte gehen!

Guus.Assmann:
Andere Programmer, da weiss Ich was dazu.
Ein Jedec Datei kann mit andere Programiergeräten benützt werden.
Ich hab ein Programmer am Atari und auch am PC.
Wenn Ich ein Jedec Datei nehme, bekomme Ich den gleichen Gal-function.
Also unabhängig vor Programmer und/oder Compiler-Programm.

Noch etwas wichtiges.
Ein Gal hat ein "Protection-Bit" (Oder mehrere)
Dies benütze Ich principiel nicht.
Wenn es aktief ist, kann man den Gal nicht mehr Lesen. (Nür verify, wenn original Jedec da ist)
Mag gut sein für comerciëlle hHersteller, ist aber ..... (Pain in the ....)
Manche Programmern setzen dieses per Default.  >:(

Auch noch, Ja, Gal-type ist wichtig.
Ein Gal 16V8 oder 18V10 haben gleichen Pin-zahlen. Aber 16 oder 18 Inputs, 8 oder 10 Outputs.
Gleich wie 20V8 und 22V10 mit 24 pins....
Je mehr Ausgänge, um so meht "Output-controll-blocks"

mfg/
Guus

FrankR:

--- Zitat von: tuxie am Do 19.08.2021, 09:34:51 ---Bsp.
DTACK.E = /AS * A23 * A22;
DTACK = /AS * A23 * A22 */A21
             + /AS * A23 * A22 * A21 * /A20;
Bei der Pindefinition muß der Ausgang natürlich noch auf tristate gesetzt werden.

DTACK.T hier das .T anhängen.


--- Ende Zitat ---

Mal sehen,ob ich das geschnallt habe. Gehen wir mal davon aus, ich wollte das /DTACK Signal für einen Adressdecoder für TOS 2.06 im alten Atari ST erzeugen. Dafür schreibe ich:

--- Code: ---%IDENTIFICATION

   Adressdecoder blablabla

%TYP
   GAL16V8
 

%PINS   
A23 A22 A21 A20 A19 A18 RW AS ROM2 GND
NC CE DTACK.T NC NC NC NC NC NC VCC

%LOGIC
/CE = /(RW * A23 * A22 * A21 */A20 * /A19 * /A18 * /AS) * /ROM2
DTACK.E = /ROM2
/DTACK = RW * A23 * A22 * A21 * /A20 * /A19 * /A18 * /AS

%END

--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln