Merge pull request #2 from ryucats/master

Fix ROM access logic
This commit is contained in:
Joshua M. Thompson 2023-03-16 18:54:00 -04:00 committed by GitHub
commit c617caf7e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 139 additions and 2 deletions

View File

@ -24,8 +24,8 @@ with what made the layout easier.
## Parts List
* A 74HCT245 octal bus transceiver (U1)
* A 28C256 EEPROM (U2)
* A 74LS245 octal bus transceiver (non-TTL appears to have issues with the ROM address decode logic) (U1)
* A 28C256 EEPROM (28-pin JEDEC EPROMs such as the 27128 also work) (U2)
* A 1.8432 MHz 5V oscillator (U3)
* A 22V10 GAL (any speed or variety should work) (U4)
* A W65C51N ACIA (U5)

60
gal/ssc-cr-2023030903.jed Normal file
View File

@ -0,0 +1,60 @@

CUPL(WM) 5.0a Serial# 60008009
Device g22v10 Library DLIB-h-40-1
Created Fri Mar 10 06:33:40 2023
Name Simple Serial Card
Partno SSC0001
Revision 01
Date 3/9/23
Designer Chris RYU
Company RyuCats
Assembly None
Location None
*QP24
*QF5892
*G0
*F0
*L00896 00000000000000000000000000001111
*L00928 11111111111111111111111111111111
*L00960 11111111111111111111101111111111
*L00992 11111111111111111111000000000000
*L01472 00000000000000000000000011111111
*L01504 11111111111111111111111111111111
*L01536 11111111111111111111011111111111
*L01568 11111111110111110000000000000000
*L02144 00000000000011111111111111111111
*L02176 11111111111111111111111111111111
*L02208 11111111111111111111011111111111
*L02240 11111111111111111111111111111011
*L02272 11111111111111110000000000000000
*L02880 00000000000000000000000011111111
*L02912 11111111111111111111111111111111
*L02944 11111111111111111111111111111111
*L02976 11110111111111111111111111111111
*L03008 11111111101111111111111111110000
*L03648 00001111111111111111111111111111
*L03680 11111111111111111111111111111111
*L03712 11111111111111111111011111111111
*L03744 11111111111111111111101111111111
*L03776 11111111000000000000000000000000
*L04288 00000000000000000000000011111111
*L04320 11111111111111111111111111111111
*L04352 11111111111111110111011111111111
*L04384 11111111110111110000000000000000
*L04864 00000000000000000000111111111111
*L04896 11111111111111111111111111111111
*L04928 11111111111111110111111111111111
*L04960 11011111111110111111111111111111
*L04992 11111111111111111111111111111111
*L05024 10111111111111111111011101110111
*L05056 11110000000000000000000000000000
*L05344 00000000000000000000000011111111
*L05376 11111111111111111111111111111111
*L05408 11111111111111111111111111111111
*L05440 11111101111111111111111101111111
*L05472 11111111111111111111111111110000
*L05792 00000000000000000000111111111111
*L05824 11110101001101010011010000110011
*L05856 00000011000000110000001100010000
*C7DCD
*9C8B

61
gal/ssc_gal_wincupl.pld Executable file
View File

@ -0,0 +1,61 @@
Name Simple Serial Card;
Partno SSC0001;
Revision 01;
Date 3/9/23;
Designer Chris RYU;
Company RyuCats;
Location None;
Assembly None;
Device g22v10;
/* Inputs */
Pin 1 = reset;
Pin 2 = CTS;
Pin 3 = io_C800;
Pin 4 = slot_select;
Pin 5 = io_slot_access;
Pin 6 = RW;
Pin 7 = A11;
Pin 8 = A10;
Pin 9 = A9;
Pin 10 = A8;
Pin 11 = A3;
/* Outputs */
Pin 14 = rom_c800_enable;
Pin 15 = rom_latch;
Pin 16 = ls245_enable;
Pin 17 = eprom_a8;
Pin 18 = eprom_a9;
Pin 19 = eprom_a10;
Pin 20 = rom_enable;
Pin 21 = PHI2;
/* Latch (RS flip-flop) definition:
Q = (Q & RESET) # !SET;
*/
PHI2 = !slot_select; /* per schematic */
cf00_access = io_C800 # !(A8 & A9 & A10); /* CF00 access, pull low */
/*
if either reset or cf00 access is pulled low, then rom_latch = 1
if io_slot_access is 0, then rom_latch = 0
if io_slot_access is 1, then rom_latch = no change
*/
/* Q = ROM_LATCH RESET = io_slot_access SET = (reset & cf00_access) */
rom_latch = (rom_latch & io_slot_access) # !(reset & cf00_access);
rom_c800_enable = rom_latch # io_C800; /* enable if both pulled low */
ls245_enable = ( io_slot_access & rom_c800_enable & slot_select); /* c800 ? */
rom_enable = (io_slot_access & rom_c800_enable);
eprom_a8 = A8 # !A11;
eprom_a9 = A9 # !A11;
eprom_a10 = A10 # !A11;

16
rom/Makefile Normal file
View File

@ -0,0 +1,16 @@
# Simple makefile to snarf the Apple SuperSerialCard ROM image and patch it
# for ADTPro bootstrapping
ROM_SOURCE = https://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Serial/Apple%20II%20Super%20Serial%20Card/ROM%20Images/Apple%20II%20Super%20Serial%20Card%20ROM%20-%20341-0065-A.bin
all: 341-0065.bin adtpro-patch-341-0065.bin
adtpro-patch-341-0065.bin: adtpro-patch-341-0065.xdelta
xdelta3 -d -s 341-0065.bin adtpro-patch-341-0065.xdelta \
adtpro-patch-341-0065.bin
341-0065.bin:
curl -o 341-0065.bin $(ROM_SOURCE)
clean:
rm -f 341-0065.bin adtpro-patch-341-0065.bin

Binary file not shown.