From 1e32421c8631ca7c956cf743622061d9260bbae7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Izaguirre?= Date: Tue, 8 Mar 2022 20:11:26 +0100 Subject: [PATCH] Swyftcard support (#13) --- apple2Setup.go | 6 + apple2Tester.go | 4 + apple2main.go | 25 +++- cardBase.go | 10 ++ cardSwyft.go | 133 +++++++++++++++++++ cardSwyft_test.go | 26 ++++ memoryManager.go | 31 +++-- resources/SwyftCard ROM.bin | Bin 0 -> 16384 bytes resources/SwyftWare_-_SwyftCard_Tutorial.woz | Bin 0 -> 101807 bytes 9 files changed, 223 insertions(+), 12 deletions(-) create mode 100644 cardSwyft.go create mode 100644 cardSwyft_test.go create mode 100644 resources/SwyftCard ROM.bin create mode 100644 resources/SwyftWare_-_SwyftCard_Tutorial.woz diff --git a/apple2Setup.go b/apple2Setup.go index 879b7c6..09d5db1 100644 --- a/apple2Setup.go +++ b/apple2Setup.go @@ -191,6 +191,12 @@ func (a *Apple2) AddVidexCard(slot int) { a.softVideoSwitch = NewSoftVideoSwitch(c) } +// AddSwyftCard inserts a Swyft card in slot 3 +func (a *Apple2) AddSwyftCard() { + c := NewCardSwyft() + a.insertCard(c, 3) +} + // AddRGBCard inserts an RBG option to the Apple IIe 80 col 64KB card func (a *Apple2) AddRGBCard() { setupRGBCard(a) diff --git a/apple2Tester.go b/apple2Tester.go index f92ceb9..fdb2a4f 100644 --- a/apple2Tester.go +++ b/apple2Tester.go @@ -35,3 +35,7 @@ func (at *apple2Tester) run() { func (at *apple2Tester) getText() string { return screen.RenderTextModeString(at.a, false, false, false, at.a.isApple2e) } + +func (at *apple2Tester) getText80() string { + return screen.RenderTextModeString(at.a, true, false, false, at.a.isApple2e) +} diff --git a/apple2main.go b/apple2main.go index b25b5ee..8ef518e 100644 --- a/apple2main.go +++ b/apple2main.go @@ -18,7 +18,7 @@ func MainApple() *Apple2 { "slot for the disk driver. -1 for none.") diskImage := flag.String( "disk", - "/dos33.dsk", + defaultInternal, "file to load on the first disk drive") diskBImage := flag.String( "diskb", @@ -84,6 +84,10 @@ func MainApple() *Apple2 { "videxCardSlot", 3, "slot for the Videx Videoterm 80 columns card. For pre-2e models. -1 for none") + swyftCard := flag.Bool( + "swyftCard", + false, + "activate a Swyft Card in slot 3. Load the tutorial disk if none provided") nsc := flag.Int( "nsc", -1, @@ -169,6 +173,15 @@ func MainApple() *Apple2 { } } + // Resolve what is the default disk to use if not specified + if diskImageFinal == defaultInternal { + if *swyftCard { + diskImageFinal = "/SwyftWare_-_SwyftCard_Tutorial.woz" + } else { + diskImageFinal = "/dos33.dsk" + } + } + a := newApple2() a.setup(*cpuClock, *fastDisk) a.io.setTrace(*traceSS) @@ -232,6 +245,12 @@ func MainApple() *Apple2 { if *videxCardSlot > 0 { a.AddVidexCard(*videxCardSlot) } + if *swyftCard { + if !a.isApple2e { + panic("SwyftCard available only on Apple IIe or better") + } + a.AddSwyftCard() + } if *smartPortImage != "" { err := a.AddSmartPortDisk(5, *smartPortImage, *traceHD) @@ -354,7 +373,7 @@ func initModel(a *Apple2, model string, romFile string, charRomFile string) { panic("Model not supported") } - // Load ROM if not loaded already + // Load ROM if romFile != "" { err := a.LoadRom(romFile) if err != nil { @@ -362,7 +381,7 @@ func initModel(a *Apple2, model string, romFile string, charRomFile string) { } } - // Load character generator if it loaded already + // Load character generator cg, err := newCharacterGenerator(charRomFile, charGenMap, a.isApple2e) if err != nil { panic(err) diff --git a/cardBase.go b/cardBase.go index 072c6a0..39b06ca 100644 --- a/cardBase.go +++ b/cardBase.go @@ -114,6 +114,16 @@ func (c *cardBase) addCardSoftSwitchW(address uint8, ss softSwitchW, name string c._sswName[address] = name } +func (c *cardBase) addCardSoftSwitchRW(address uint8, ss softSwitchR, name string) { + c._ssr[address] = ss + c._ssrName[address] = name + + c._ssw[address] = func(p *ioC0Page, _ uint8) { + ss(p) + } + c._sswName[address] = name +} + type softSwitches func(io *ioC0Page, address uint8, data uint8, write bool) uint8 func (c *cardBase) addCardSoftSwitches(sss softSwitches, name string) { diff --git a/cardSwyft.go b/cardSwyft.go new file mode 100644 index 0000000..327f667 --- /dev/null +++ b/cardSwyft.go @@ -0,0 +1,133 @@ +package izapple2 + +/* + Swyft card for Apple IIe + +See: + https://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Interface%20Cards/Other/IAI%20SwyftCard/ + +*/ + +/* +"SwyftCard Hardware Theory of Operation". SwyftCard manual, page 98: + +The SwyftCard is a plug-in card for the Apple /Ie that operates in +slot 3. The card contains three integrated circuits which provide a +power-on reset circuit, storage for the SwyftCard program, and control +signals for the card. The card operates by asserting the Apple IIe bus +signal INH' which disables the built-in ROM and enables the SwyftCard +ROM. This permits the SwyftCard program to take over the system at +power-on and run the SwyftCard program. (Please refer to the +schematic.) + +The lM311 voltage comparator is connected to provide the power-on +reset function. When the Apple lie is first turned on, the power-on +reset circuit resets the PAL, turning on the SwyftCard and disabling +the Apple IIe internal ROM. The power-on reset circuit must be +provided because the existing Apple IIe reset function is used by +many Apple lie programs for a "warm start": if Apple lie reset always +started the SwyftCard, other programs could not use the "warm start." + +The 27128 PROM is used to store the SwyftCard program. The PROM +contains 16384 bytes which are mapped into the address space +$DOOO - $FFFF. Since the address space is only 12 Kbytes, there are +two 4 Kbyte sections of the PROM mapped into the address space +$DOOO-$DFFF. + +The card is controlled by the PAL. When the SwyftCard is active, the +PAL asserts the INH' signal, enables the PROM, and bank switches +the $DOOO-$DFFF address space. The card is controlled by two soft +switches. The soft switches are controlled by accessing the following +memory locations with either a read or a write operation. + + $COBO - SwyftCard active, Bank 1 + $COB1 - SwyftCard inactive, Bank 1 + $COB2 - SwyftCard active, Bank 2 + +When the power-on reset circuit asserts the RES signal on Pin 3 of the +PAL, the SwyftCard is made active in Bank 1. Accessing location +$COB1 deactivates the SwyftCard for normal Apple IIe operation. + +The INH' line is driven by a tri-state driver, so if another card in the +Apple /Ie asserts the IINH' signal there will not be a bus contention. +However, there will be a bus contention on the data bus if another card +attempts to control the bus while the SwyftCard is active. + +*/ + +// CardSwyft represents a Swyft card +type CardSwyft struct { + cardBase + bank2 bool + rom []uint8 +} + +// NewCardSwyft creates a new CardSwyft +func NewCardSwyft() *CardSwyft { + var c CardSwyft + c.name = "SwyftCard" + + // The Cx00 rom is not used. The card is expected to be installed in + // slot 3 of an Apple IIe with the 80 column firmware already present. + return &c +} + +func (c *CardSwyft) assign(a *Apple2, slot int) { + // Load main ROM replacement + data, _, err := LoadResource("/SwyftCard ROM.bin") + if err != nil { + // The resource should be internal and never fail + panic(err) + } + c.rom = data + + c.addCardSoftSwitchRW(0, func(*ioC0Page) uint8 { + a.mmu.inhibitROM(c) + c.bank2 = false + return 0x55 + }, "SWYFTONBANK1") + + c.addCardSoftSwitchRW(1, func(*ioC0Page) uint8 { + a.mmu.inhibitROM(nil) + c.bank2 = false + return 0x55 + }, "SWYFTOFFBANK1") + + c.addCardSoftSwitchRW(2, func(*ioC0Page) uint8 { + a.mmu.inhibitROM(c) + c.bank2 = true + return 0x55 + }, "SWYFTONBANK2") + + c.cardBase.assign(a, slot) + a.mmu.inhibitROM(c) +} + +func (c *CardSwyft) translateAddress(address uint16) uint16 { + /* + The four 4k sections of the 16k ROM image are mapped: + D000-DFFF (page 1) + D000-DFFF (page 2) + E000-EFFF + F000-FFFF + */ + if address >= 0xE000 { + return address - 0xE000 + 0x2000 + } + if !c.bank2 { + return address - 0xD000 + } + return address - 0xD000 + 0x1000 +} + +func (c *CardSwyft) peek(address uint16) uint8 { + return c.rom[c.translateAddress(address)] +} + +func (c *CardSwyft) poke(address uint16, value uint8) { + // Nothing +} + +func (c *CardSwyft) setBase(base uint16) { + // Nothing +} diff --git a/cardSwyft_test.go b/cardSwyft_test.go new file mode 100644 index 0000000..c310a50 --- /dev/null +++ b/cardSwyft_test.go @@ -0,0 +1,26 @@ +package izapple2 + +import ( + "strings" + "testing" +) + +func TestSwyftTutorial(t *testing.T) { + at := makeApple2Tester("2e") + at.a.AddSwyftCard() + err := at.a.AddDisk2(6, "/SwyftWare_-_SwyftCard_Tutorial.woz", "", nil) + if err != nil { + panic(err) + } + + at.terminateCondition = func(a *Apple2) bool { + return a.cpu.GetCycles() > 10_000_000 + } + at.run() + + text := at.getText80() + if !strings.Contains(text, "HOW TO USE SWYFTCARD") { + t.Errorf("Expected 'HOW TO USE SWYFTCARD', got '%s'", text) + } + +} diff --git a/memoryManager.go b/memoryManager.go index d6914a9..50142f6 100644 --- a/memoryManager.go +++ b/memoryManager.go @@ -33,15 +33,16 @@ type memoryManager struct { lcAltBank bool // Alternate // Configuration switches, Apple //e - altZeroPage bool // Use extra RAM from 0x0000 to 0x01ff. And additional language card block - altMainRAMActiveRead bool // Use extra RAM from 0x0200 to 0xbfff for read - altMainRAMActiveWrite bool // Use extra RAM from 0x0200 to 0xbfff for write - store80Active bool // Special pagination for text and graphics areas - slotC3ROMActive bool // Apple2e slot 3 ROM shadow - intCxROMActive bool // Apple2e slots internal ROM shadow - intC8ROMActive bool // C8Rom associated to the internal slot 3. Softswitch not directly accessible. See UtA2e 5-28 - activeSlot uint8 // Active slot owner of 0xc800 to 0xcfff - extendedRAMBlock uint8 // Block used for entended memory for RAMWorks cards + altZeroPage bool // Use extra RAM from 0x0000 to 0x01ff. And additional language card block + altMainRAMActiveRead bool // Use extra RAM from 0x0200 to 0xbfff for read + altMainRAMActiveWrite bool // Use extra RAM from 0x0200 to 0xbfff for write + store80Active bool // Special pagination for text and graphics areas + slotC3ROMActive bool // Apple2e slot 3 ROM shadow + intCxROMActive bool // Apple2e slots internal ROM shadow + intC8ROMActive bool // C8Rom associated to the internal slot 3. Softswitch not directly accessible. See UtA2e 5-28 + activeSlot uint8 // Active slot owner of 0xc800 to 0xcfff + extendedRAMBlock uint8 // Block used for entended memory for RAMWorks cards + mainROMinhibited memoryHandler // Alternative ROM from 0xd000 to 0xffff provided by a card with the INH signal. // Configuration switches, Base64A romPage uint8 // Active ROM page @@ -151,6 +152,12 @@ func (mmu *memoryManager) getVideoRAM(ext bool) *memoryRange { return mmu.physicalMainRAM } +func (mmu *memoryManager) inhibitROM(replacement memoryHandler) { + // If a card INH the ROM, it replaces the ROM and the LC RAM + mmu.mainROMinhibited = replacement + mmu.lastAddressPage = invalidAddressPage // Invalidate cache +} + func (mmu *memoryManager) accessRead(address uint16) memoryHandler { if address <= addressLimitZero { return mmu.getPhysicalMainRAM(mmu.altZeroPage) @@ -175,6 +182,9 @@ func (mmu *memoryManager) accessRead(address uint16) memoryHandler { if address <= addressLimitSlotsExtra { return mmu.accessCArea(address) } + if mmu.mainROMinhibited != nil { + return mmu.mainROMinhibited + } if mmu.lcActiveRead { return mmu.accessUpperRAMArea(address) } @@ -205,6 +215,9 @@ func (mmu *memoryManager) accessWrite(address uint16) memoryHandler { if address <= addressLimitSlotsExtra { return mmu.accessCArea(address) } + if mmu.mainROMinhibited != nil { + return mmu.mainROMinhibited + } if mmu.lcActiveWrite { return mmu.accessUpperRAMArea(address) } diff --git a/resources/SwyftCard ROM.bin b/resources/SwyftCard ROM.bin new file mode 100644 index 0000000000000000000000000000000000000000..8d5adcfe46f5d4b13d9d2de0ee3839cf9945c080 GIT binary patch literal 16384 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 literal 0 HcmV?d00001