diff --git a/README.md b/README.md index c375b1e..c5e1b39 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ to overwrite itself in ROM. The A1C expansion card in RAM mode works great in conjunction with [Apple-1 Serial Interface](http://github.com/flowenol/apple1serial) card or the original Apple Cassette Interface, expanding the available address space to load programs. +You can also replace the Apple-1 on-board RAM entirely using an alternative address decoder mapping (check details in the [Mappings](#mappings) section). + ## Memory map With physical switch in ROM position: @@ -55,6 +57,17 @@ The contents of this repository are as following: * scripts/ - a bunch of useful python scripts which do the conversion between binary and Woz monitor format and vice versa * src/ - contains the 6502 assembly sources for the on-board ROM loader programs +## Mappings + +There are two .jed files for the GAL22V10 based address decoder: + +1. **address_decoder.jed** - defines the standard mapping where additional RAM memory is mapped to the regions `$1000-$BFFF` as +described above. This mapping assumes that your Apple-1 board has "X" and "W" RAM chips populated and mapped to regions +`$0000-$0FFF` and `$E000-$EFFF`. +2. **address_decoder1.jed** - defines an alternative mappig allowing tu run Apple-1 Computer entirely from the A1C. The regions +`$0000-$0FFF` and `$E000-$EFFF` are additionally mapped to the A1C RAM1 chip. Be sure to remove the "X" and "W" memory chips +from Apple-1 board for safety, and to disconnect the "X" and "W" lines (if they were mapped to the "0" and "E" segments). + ## Requirements You need the following to successfully build and install the firmware: diff --git a/mapping/address_decoder1.eqn b/mapping/address_decoder1.eqn new file mode 100644 index 0000000..53f2eea --- /dev/null +++ b/mapping/address_decoder1.eqn @@ -0,0 +1,22 @@ +chip GAL22V10 + +NC=1 PHI=2 RW=3 MOD=4 A3=11 A4=10 A5=9 A6=8 A7=7 A8=6 A9=5 A10=17 GND=12 +A11=18 A12=16 A13=14 A14=15 A15=13 RAM2=19 RAM1=20 ROM=21 FF=22 BANK=23 VCC=24 + +equations + +/ROM = /A15 * A14 * /A13 * /A12 * /A11 * RW * MOD + + /A15 * A14 * RW * BANK * MOD + + A15 * /A14 * RW * BANK * MOD +/RAM1 = /A15 * /A14 * /A13 * /A12 * PHI + + /A15 * /A14 * /A13 * A12 * PHI + + /A15 * /A14 * A13 * /A12 * PHI + + /A15 * /A14 * A13 * A12 * PHI + + A15 * A14 * A13 * /A12 * PHI +/RAM2 = /A15 * A14 * /A13 * /A12 * A11 * /BANK * PHI * MOD + + A15 * /A14 * /BANK * PHI * MOD + + /A15 * A14 * A13 * /BANK * PHI * MOD + + /A15 * A14 * /A13 * A12 * /BANK * PHI * MOD + + /A15 * A14 * PHI * /MOD + + A15 * /A14 * PHI * /MOD +FF = A3 * A4 * A5 * A6 * A7 * A8 * A9 * A10 * /A11 * /A12 * /A13 * A14 * /A15 * /RW * PHI * MOD diff --git a/mapping/address_decoder1.jed b/mapping/address_decoder1.jed new file mode 100644 index 0000000..8b248b3 --- /dev/null +++ b/mapping/address_decoder1.jed @@ -0,0 +1,37 @@ + +GAL22V10 +EQN2JED - Boolean Equations to JEDEC file assembler (Version V101) +Copyright (c) National Semiconductor Corporation 1990-1993 +Assembled from "e:/MAPPING/ADDRES~2.EQN". Date: 12-7-122 +* +NOTE PINS PHI:2 RW:3 MOD:4 A9:5 A8:6 A7:7 A6:8 A5:9 A4:10 A3:11* +NOTE PINS GND:12 A15:13 A13:14 A14:15 A12:16 A10:17 A11:18 RAM2:19* +NOTE PINS RAM1:20 ROM:21 FF:22 BANK:23 VCC:24* +QF5828*QP24*F0* +L0440 +11111111111111111111111111111111111111111111 +11110111101101110111011001010110010101100110* +L0924 +11111111111111111111111111111111111111111111 +11111111011101111111111011111110110111101110 +11011111011101111111111111111111110111111110 +11011111011101111111111111111111111011111101* +L1496 +11111111111111111111111111111111111111111111 +11110111111111111111111111111110111011101110 +11110111111111111111111111111101111011101110 +11110111111111111111111111111110111011011110 +11110111111111111111111111111101111011011110 +11110111111111111111111111111110110111011101* +L2156 +11111111111111111111111111111111111111111111 +11100111111101111111110111111110110111101110 +11100111111101111111111111111111111011111101 +11100111111101111111111111111111110111011110 +11100111111101111111111111111101110111101110 +11110111111110111111111111111111110111111110 +11110111111110111111111111111111111011111101* +L5808 +01110101010101010101* +C5BFC* +0000 diff --git a/mapping/address_decoder1.log b/mapping/address_decoder1.log new file mode 100644 index 0000000..f04addc --- /dev/null +++ b/mapping/address_decoder1.log @@ -0,0 +1,76 @@ +EQN2JED - Boolean Equations to JEDEC file assembler (Version V101) +Copyright (c) National Semiconductor Corporation 1990-1993 + +Log file for e:/MAPPING/ADDRES~2.EQN +Device: G22V10 + +Pin Label Type +--- ----- ---- +2 PHI pos,com input +3 RW pos,com input +4 MOD pos,com input +5 A9 pos,com input +6 A8 pos,com input +7 A7 pos,com input +8 A6 pos,com input +9 A5 pos,com input +10 A4 pos,com input +11 A3 pos,com input +12 GND ground pin +13 A15 pos,com input +14 A13 pos,com input +15 A14 pos,com input +16 A12 pos,com input +17 A10 pos,com input +18 A11 pos,com input +19 RAM2 neg,trst,com output +20 RAM1 neg,trst,com output +21 ROM neg,trst,com output +22 FF pos,trst,com output +23 BANK pos,com input +24 VCC power pin + + EQN2JED - Boolean Equations to JEDEC file assembler (Version V101) +Copyright (c) National Semiconductor Corporation 1990-1993 + +Device Utilization: + +No of dedicated inputs used : 12/12 (100.0%) +No of feedbacks used as dedicated inputs : 5/10 (50.0%) +No of feedbacks used as dedicated outputs : 4/10 (40.0%) + + ------------------------------------------ + Pin Label Terms Usage + ------------------------------------------ + 22 FF.oe 1/1 (100.0%) + 22 FF 1/10 (10.0%) + 21 ROM.oe 1/1 (100.0%) + 21 ROM 3/12 (25.0%) + 20 RAM1.oe 1/1 (100.0%) + 20 RAM1 5/14 (35.7%) + 19 RAM2.oe 1/1 (100.0%) + 19 RAM2 6/16 (37.5%) + ------------------------------------------ + Total Terms 19/132 (14.4%) + ------------------------------------------ + + EQN2JED - Boolean Equations to JEDEC file assembler (Version V101) +Copyright (c) National Semiconductor Corporation 1990-1993 + + Chip diagram (DIP) + + ._____ _____. + | \__/ | + CLK | 1 24 | VCC + PHI | 2 23 | BANK + RW | 3 22 | FF + MOD | 4 21 | ROM + A9 | 5 20 | RAM1 + A8 | 6 19 | RAM2 + A7 | 7 18 | A11 + A6 | 8 17 | A10 + A5 | 9 16 | A12 + A4 | 10 15 | A14 + A3 | 11 14 | A13 + GND | 12 13 | A15 + |______________|