1

Temat: [decompile GAL] Jed 2 eqn

Szukam niezgodności (w mojej atarce) 1MB SIMM by Pasiu vel AVGcart+ECImod patrz "ECI/PBI Cable Mod Funtions"

AVGcart jego 0,5MB działa świetnie, odłącza wbudowane rozszerzenie 1MB.


AVGcart uruchamiając ATRa przez wciśnięcie shift+return przełączam fragment ROM dot. pakietu matematycznego $d800-dfff;
Także HiSIO (czyli patchROM) nie działa, a to także podmiana (?) ori ROM
   (?= na OSXEX2 tzn.przez wpisanie OS w RAM $C000-FFFF)
Na stock Atari działa, na mojej mam czarny ekran,
albo widzę tylko kursor na górze na niebieskim tle
   - patrz plik OSXEX2.xex pod Altirrą zwis na $5000 brk (czyli wejście do SelfTest)

W kompie jest też 4OS na przełącznikach - ale to nie ma wpływu bo nie mam logiki sterującej.


Pytanie, jak działa GAL z SIMMa. Do tego potrzebny byłby kod logiki.

Pod Win10 64bit załączony pakiet OPALa nie działa także w trybie zgodności.

Ma ktoś możliwość uruchomienia cmd:  JED2EQN.EXE simmexp.jed     ????????
Powinien utworzyć się plik simmexp.txt czy coś takiego....


ps. z IDE+2.0 NewDevice po PBI działa bez problemu (ATRy wczytywane z loadera interface urządzenia)

Ostatnio edytowany przez pajero (2022-05-28 14:39:31)

Post's attachments

JED2EQN_OPALjr.zip 625.06 kb, liczba pobrań: 5 (od 2022-05-22) 

OSXEX2.xex 16.1 kb, liczba pobrań: 4 (od 2022-05-22) 

simmexp.jed 1.7 kb, liczba pobrań: 5 (od 2022-05-22) 

Tylko zalogowani mogą pobierać załączniki.

2

Odp: [decompile GAL] Jed 2 eqn

Plik źródłowy SIMMExp napisany w 2003 roku pod jakiś amigowy soft dla układów GAL:

GAL20V8
xxxxxxx

Clock  Ref    A14    A15    PB2    PB3    PB4    CAS    wyl    wylAnt NC     GND
/OE    HALT   LATCH  CAS128 CAS64  XA14   XA15   xHALT  O2     xPB5   PB5    VCC


 xHALT.R =  HALT

 CAS64  = /A15 *  A14 * /PB4 *  wyl * /wylAnt
        + /A15 *  A14 * /PB4 *  wyl *  wylAnt *  xHALT
        + /A15 *  A14 * /PB5 *  wyl *  wylAnt * /xHALT
        +  CAS
        + /O2
 
/CAS128 = /A15 *  A14 * /PB4 *  O2 * /CAS *  wyl * /wylAnt
        + /A15 *  A14 * /PB4 *  O2 * /CAS *  wyl *  wylAnt *  xHALT
        + /A15 *  A14 * /PB5 *  O2 * /CAS *  wyl *  wylAnt * /xHALT
        + /Ref

/XA14   = /A15 * /PB4 * /PB2 *  wyl * /wylAnt
        + /A15 * /PB4 * /PB2 *  wyl *  wylAnt *  xHALT
        + /A15 * /PB5 * /PB2 *  wyl *  wylAnt * /xHALT
        + /A14

 XA15   =  A14 * /PB4 *  PB3 *  wyl * /wylAnt
        +  A14 * /PB4 *  PB3 *  wyl *  wylAnt *  xHALT
        +  A14 * /PB5 *  PB3 *  wyl *  wylAnt * /xHALT
        +  A15

 LATCH  = /PB5 *  wyl *  wylAnt
        + /PB4 *  wyl
        + /O2

 xPB5   =  PB5 +  wylAnt


DESCRIPTION

3

Odp: [decompile GAL] Jed 2 eqn

noga 20 GALa  (xHALT) wisi "w powietrzu" na schemacie a uczestniczy w logice?  Nie rozumiem

https://hardware.atari8.info/simm/simmexp.gif

4

Odp: [decompile GAL] Jed 2 eqn

Ten sygnał jest używany przez logikę.

5

Odp: [decompile GAL] Jed 2 eqn

no tak, muszę się douczyć o ".R"

"xHALT.R =  HALT"


Czy to Przerzutnik_typu_RS?

Ostatnio edytowany przez pajero (2022-05-22 14:39:27)

6

Odp: [decompile GAL] Jed 2 eqn

.R - registered output

7

Odp: [decompile GAL] Jed 2 eqn

W registered mode na wyjściu jest synchroniczny przerzutnik D, ale ma asynchroniczne wejście reset (AR) i synchroniczne wejście (pre)set (SP).

Niemniej tak do końca to nie rozumiem tych równań, chyba że to .R to nie reset, a właśnie synchroniczny wpis do przerzutnika D.

OPAL bardzo ładnie działa pod DosBoksem, jak i pod vDOSem.

; JED2EQN -- JEDEC file to Boolean Equations disassembler (Version V063)
; Copyright (c) National Semiconductor Corporation 1990-1993
; Disassembled from C:\OPALJR\JED\SIMMEXP.jed. Date: 2-9-120
;$GALMODE REGISTERED

chip SIMMEXP GAL20V8

CLK=1 i2=2 i3=3 i4=4 i5=5 i6=6 i7=7 i8=8 i9=9 i10=10 GND=12 !OE=13 
i14=14 o15=15 o16=16 o17=17 o18=18 o19=19 rf20=20 f21=21 o22=22 
i23=23 VCC=24 

@ues 7878787878787800
@ptd unused

equations

o22 = i23
    # i10
o22.oe = vcc
!f21 = gnd
f21.oe = gnd
rf20 := i14
rf20.oe = OE
o19 = i3 & i6 & !i7 & i9 & !i10
    # i3 & rf20 & i6 & !i7 & i9 & i10
    # !i23 & i3 & !rf20 & i6 & i9 & i10
    # i4
o19.oe = vcc
!o18 = !i4 & !i5 & !i7 & i9 & !i10
    # !i4 & !i5 & rf20 & !i7 & i9 & i10
    # !i23 & !i4 & !i5 & !rf20 & i9 & i10
    # !i3
o18.oe = vcc
o17 = i3 & !i4 & !i7 & i9 & !i10
    # i3 & !i4 & rf20 & !i7 & i9 & i10
    # !i23 & i3 & !i4 & !rf20 & i9 & i10
    # i8
    # !f21
o17.oe = vcc
!o16 = i3 & !i4 & f21 & !i7 & !i8 & i9 & !i10
    # i3 & !i4 & f21 & rf20 & !i7 & !i8 & i9 & i10
    # !i23 & i3 & !i4 & f21 & !rf20 & !i8 & i9 & i10
    # !i2
o16.oe = vcc
o15 = !i23 & i9 & i10
    # !i7 & i9
    # !f21
o15.oe = vcc

Ostatnio edytowany przez _tzok_ (2022-05-25 23:47:36)

Atari 1040STe (TOS 1.62/2.06 UK, 4MB RAM), Atari 1040STfm (TOS 1.04 UK, 4MB RAM, BLiTTER, Gotek HxC) + Digital Data Deicke HD64, SF314, UltraSatan, Gotek HxC, NetUSBee
Atari 800XE (SIMM EXP 1MB), Atari 800XL (RAMBO XL 256kB), Sinclair SPECTRUM+ (48kB), TIMEX Computer 2048 (48kB)
Commodore A600 (KS 1.3/3.1, 2MB CHIP RAM, 4MB FAST RAM, CF 4GB, Gotek FF)

8

Odp: [decompile GAL] Jed 2 eqn

Może się przyda:
https://systemembedded.eu/viewtopic.php?f=29&t=43

kiedyś opisałem jak odpalić PALASM pod DOSemu pod  Linuxem. Można też zrobić deasemblację...

https://systemembedded.eu/
"...Mówił mi to jeden facet, który znał się na atari i takich różnych rzeczach. On mówił, że procesor 6502 to był początkowo procesor wojskowy. On ma tajne funkcje, nie wiadomo w ogóle, co one mogą robić..."
ABBUC Member #319. Preferowana forma kontaktu: email

9

Odp: [decompile GAL] Jed 2 eqn

Dziękuję za decompilację

Moje próby zrozumienia tego, ktoś coś więcej z wyjaśnieniem a "po co to ?"

Opisałem we/wy zgodnie z schematem który załączyłem powyżej, posortowałem równania....

; JED2EQN -- JEDEC file to Boolean Equations disassembler (Version V063)
; Copyright (c) National Semiconductor Corporation 1990-1993
; Disassembled from C:\OPALJR\JED\SIMMEXP.jed. Date: 2-9-120
;$GALMODE REGISTERED

chip SIMMEXP GAL20V8

CLK=1 iREF=2 iA14=3 iA15=4 iPB2=5 iPB3=6 iPB4=7 iCAS=8 iSWITCH_ON=9 iSWITCH_CS_NI=10 GND=12 
!OE=13 iHALT=14 oLS175_CLK=15 oCASsimm=16 oCAS64=17 oXA14=18 oXA15=19 rf20=20 f21=21 oLS157_1A=22 iPB5=23 VCC=24 

@ues 7878787878787800
@ptd unused

; TRUE is:

; !iPB4 = CPU   ExtraRAM !(0=yes)    "Cpu4extRam"
; !iPB5 = Antic ExtraRAM !(0=yes)  "Antic4extRam"

; iA14 & !iA15 = HIadr 01xxxxxx = $4000-4FFF

; iSWITCH_CS_NI  =   1 as 512kB (CompyShop)
; !iSWITCH_CS_NI = !(0) as 1MB (Rambo)

; rf20  =    1 as no Halt CPU
; !rf20 = !(0) as is Halt CPU (Antic DMA)




equations

oLS157_1A = iPB5 # iSWITCH_CS_NI ;=1 if: no Antic DMA or switch=1MB
oLS157_1A.oe = vcc

!f21 = gnd    
f21.oe = gnd

rf20 := iHALT
rf20.oe = OE

;select CAS line A15     A14= (bit=1)
oXA15 =   iA14 & iPB3         & !iPB4 & iSWITCH_ON & !iSWITCH_CS_NI  ;                          &   Cpu4extRam & switch=1MB
        # iA14 & iPB3 & rf20  & !iPB4 & iSWITCH_ON & iSWITCH_CS_NI   ;              & noHaltCPU &   Cpu4extRam & switch=512kB  (Rambo)
        # iA14 & iPB3 & !rf20 & !iPB5 & iSWITCH_ON & iSWITCH_CS_NI   ;              & isHaltCPU & Antic4extRam & switch=512kB  (CompyShop)
        # iA15                                                       ;if ExtraRamOff
oXA15.oe = vcc

;select CAS line A14    !iA15= !(bit=0)
!oXA14 =  !iA15 & !iPB2         & !iPB4 & iSWITCH_ON & !iSWITCH_CS_NI ;                          &   Cpu4extRam & switch=1MB
        # !iA15 & !iPB2 & rf20  & !iPB4 & iSWITCH_ON & iSWITCH_CS_NI  ;              & noHaltCPU &   Cpu4extRam & switch=512kB  (Rambo)
        # !iA15 & !iPB2 & !rf20 & !iPB5 & iSWITCH_ON & iSWITCH_CS_NI  ;              & isHaltCPU & Antic4extRam & switch=512kB  (CompyShop)
        # !iA14                                                       ;if ExtraRamOff
oXA14.oe = vcc

oCAS64 = iA14 & !iA15 &         !iPB4 & iSWITCH_ON & !iSWITCH_CS_NI  ;adr at: ExtRam $4000-4FFF             &   Cpu4extRam & switch=1MB
       # iA14 & !iA15 &  rf20 & !iPB4 & iSWITCH_ON & iSWITCH_CS_NI   ;adr at: ExtRam $4000-4FFF & noHaltCPU &   Cpu4extRam & switch=512kB
       # iA14 & !iA15 & !rf20 & !iPB5 & iSWITCH_ON & iSWITCH_CS_NI   ;adr at: ExtRam $4000-4FFF & isHaltCPU & Antic4extRam & switch=512kB
       # iCAS
       # !f21
oCAS64.oe = vcc

!oCASsimm   = iA14 & !iA15 & f21 &         !iPB4 & !iCAS & iSWITCH_ON & !iSWITCH_CS_NI  ;jw + CAS
            # iA14 & !iA15 & f21 & rf20  & !iPB4 & !iCAS & iSWITCH_ON & iSWITCH_CS_NI
            # iA14 & !iA15 & f21 & !rf20 & !iPB5 & !iCAS & iSWITCH_ON & iSWITCH_CS_NI
            # !iREF                                                                     ;memory refresh 
oCASsimm.oe = vcc

oLS175_CLK = !iPB5 & iSWITCH_ON & iSWITCH_CS_NI  ;Antic4extRam & switch=512kB
           # !iPB4 & iSWITCH_ON                  ;  Cpu4extRam 
           # !f21                                ;gnd
oLS175_CLK.oe = vcc

Ostatnio edytowany przez pajero (2022-05-27 18:14:07)

10

Odp: [decompile GAL] Jed 2 eqn

Z tego co opisujesz wynika, że masz jakieś "zderzenia" na szynach pomiędzy AVGcart a Pasiu-1MB. Nie powinno się tak dziać.

W trybie NI jest używany HALT do rozróżnienia co ma dostęp do RAM i w którym momencie (Sally bądź Antic), w trybie RAMBO HALT nie jest używany. Oczywiście na bitach PortB jest kodowany numer banku. W sumie nie ma tu nic takiego. Obstawiam jakiś hazard sprzętowy - być może na bicie 0 portu B?

Pozdrawiam

http://atari.myftp.org  Atari - Power without price and neccesary elements
Różne różności dla Atari i nie tylko - przydatne, bądź nie ale i tak warto zajrzeć...
Adresy rezerwowe nieaktualizowane http://raven1.magix.net   http://atari.000space.com

11

Odp: [decompile GAL] Jed 2 eqn

Za radą Pasia zrobiłem viewer obszaru pakietu matematycznego (widać stronę $D800) oraz rejestr $D1FF

Opis softu   PBItest.xex

Na górze ekranu widać wzór strony $D800 bez NevDevice - by mieć co porównywać :)
Potem wgląd w ten obszar (w kodach antic'a)

Poniżej stan odczytu z $d1ff (r) PDVINT.
Klawiszami 0-7 możemy ustawić bit w tym rejestrze (w) PDVREG.

Klawiszami A-O możemy odczytać sektor 1 w wybranej partycji.

Pod Altirrą z KMK wygląda to inaczej niż na real atari (no mogłem coś źle poustawiać):

https://drive.google.com/uc?export=view&id=1ZUf4f-1u3FaPI6KeMgfZd88mURJ57_Ap

Najpierw test z KMK IDE+2.0 v.C jako, że tu PBI działa w 100%
  Pod klawiszem 3 widać zmianę strony $d800,
  także odczyt z istniejącej partycji (status st:01) pokazuje zmiany tej strony
  W załączeniu foto i film do pobrania

Test AVGcart pokazuje, że jest to NevDevice, ale niczego na stronie $d800 nie zmieniam, nie mogę odczytać nic z partycji.
  Foto w załączeniu
Coś ten cart inaczej robi..... może autor @tmp podpowie.

ps. Na stock atarku AVGcart+ECI  (NevDevice) działa - dodałem foto jak zmienia się bit 0


Pliki umieściłem na też google

Ostatnio edytowany przez pajero (2022-05-28 14:18:09)

Post's attachments

Altirra KMK_PBI_bit0.png 7.41 kb, liczba pobrań: 1 (od 2022-05-28) 

AVG_PBI_bit0-stock.jpg 466.46 kb, liczba pobrań: 1 (od 2022-05-28) 

AVG_PBI_nobit.jpg 592.29 kb, liczba pobrań: 1 (od 2022-05-28) 

KMK_PBI_bit3.jpg 462.42 kb, liczba pobrań: 1 (od 2022-05-28) 

PBItest.asm 2.85 kb, liczba pobrań: 3 (od 2022-05-28) 

PBItest.atr 179.64 kb, liczba pobrań: 1 (od 2022-05-28) 

PBItest.xex 570 b, liczba pobrań: 3 (od 2022-05-28) 

Tylko zalogowani mogą pobierać załączniki.