8bit Projects For Everyone


Czy jest   dla  

YABUS.ZXISA

Interfejs służący do podłączania kart ISA jako urządzeń wejścia/wyjścia w trybie 8bit. Karty z pamięcią nie mogą zostać użyte. Głównym zastosowaniem jest użycie tanich kart Multi I/O jako interfejsu szeregowego, równoległego oraz kontrolera dyskowego.

ZX Spectrum musi mieć możliwość blokowania wszystkich wewnętrznych adresów portów w przedziale #40..#7F (linią /IORQGE). Zewnętzne interfejsy, jeśli używają portów w tym zakresie, muszą być podłączone za YABUS.ZXISA i podawać stan wysoki na linię przelotową /IORQGE, aby zablokować porty ISA dla wszystkich swoich portów (np. #5B, #5F, #7B, #7F).

YABUS.ZXISA jest krokiem w stronę powstania YABUS.ZXAT - mostu łączącego ZX Spectrum z płytą główną PC AT.

Mapa portów

Interfejs szeregowy / modem - 8 portów jest mapowane na porty #50..#57 Z80. Starszy bajt adresu portu wybiera numer urządzenia (zwykle 0..3).

Interfejs równoległy (niestety, tylko SPP) - 3 porty są mapowane na porty #58..#5A Z80. Starszy bajt adresu portu wybiera numer urządzenia (zwykle 0..1).

Kontroler dyskowy (FDC) - 4 porty są mapowane na porty #72, #74, #75, #77 Z80. Starszy bajt adresu portu jest ignorowany.

Karta dźwiękowa - porty są mapowane następująco:

  • Port kontrolny (370h..371h) - #78..#79, starszy bajt ignorowany.
  • Sound Blaster (220h..23Fh) - #0148..#074F.
  • MIDI (330h..331h) - #0448..#0449 lub (300h..301h) - #0668..#0669.
  • AD-LIB (388h..38Bh) - #0260..#0263.
  • Joystick (201h) - #0769.

    Przerwania

    Karty mogą generować przerwania INT w trybie IM1 oraz IM2. Dla IM2 generowany jest wektor o wartości z przedziału #02..#7E.

    BitOpis
    7zawsze 0
    6stan na linii IRQ9
    5stan na linii IRQ7
    4stan na linii IRQ6
    3stan na linii IRQ5
    2stan na linii IRQ4
    1stan na linii IRQ3
    0zawsze 0

    Jeśli wywoływane jest tylko jedno przerwanie, dla poszczególnych przerwań generowane są przesunięcia w tabeli IM2 okreslone jako wektor bazowy:

    LiniaWektor bazowyWszystkie możliwe wektory
    IRQ3+#02 #02, #06, #0A, #0E, #12, #16, #1A, #1E,
    #22, #26, #2A, #2E, #32, #36, #3A, #3E,
    #62, #66, #6A, #6E, #72, #76, #7A, #7E,
    #62, #66, #6A, #6E, #72, #76, #7A, #7E
    IRQ4+#04 #04, #06, #0C, #0E, #14, #16, #1C, #5E,
    #24, #26, #2C, #2E, #34, #36, #3C, #3E,
    #44, #46, #4C, #4E, #54, #56, #5C, #5E,
    #64, #66, #6C, #6E, #74, #76, #7C, #7E
    IRQ5+#08 #08, #0A, #0C, #0E, #18, #1A, #1C, #1E,
    #28, #2A, #2C, #2E, #38, #3A, #3C, #3E,
    #48, #4A, #4C, #4E, #58, #5A, #5C, #5E,
    #68, #6A, #6C, #6E, #78, #7A, #7C, #7E
    IRQ6+#10 #10, #12, #14, #16, #18, #1A, #1C, #1E,
    #30, #32, #34, #36, #38, #3A, #3C, #3E,
    #50, #52, #54, #56, #58, #5A, #5C, #5E,
    #60, #72, #74, #76, #78, #7A, #7C, #7E
    IRQ7+#20 #20, #22, #24, #26, #28, #2A, #2C, #2E,
    #30, #32, #34, #36, #38, #3A, #3C, #3E,
    #60, #62, #64, #66, #68, #6A, #6C, #6E,
    #70, #72, #74, #76, #78, #7A, #7C, #7E
    IRQ9+#40 #40, #42, #44, #46, #48, #4A, #4C, #4E,
    #50, #52, #54, #56, #58, #5A, #5C, #5E,
    #60, #62, #64, #66, #68, #6A, #6C, #6E,
    #70, #72, #74, #76, #78, #7A, #7C, #7E

    Przesunięcie +#00 nie będzie nigdy używane. Możesz więc wypełnić bajty +#00..+#01 taką zawartością, jak dla normalnej, "bezpiecznej" tabeli wektorów IM2. Oczywiście bajty +#80..+#100 też powinny być wypełnione tą samą zawartością. (Pod adresem powstałym ze złożenia wartości wypełniającej tabelę IM2, np. #BFBF dla wartości #BF, powinna być procedura obsługi przerwań ramkowych.)

    Wzajemne priorytety przerwań określa się wpisując odpowiednie adresy pod przesunięcia wypadkowe. Na przykład, jeśli wystąpią jednocześnie IRQ3 i IRQ4, to wypadkowe przesunięcie jest +#06. Jeśli wyższy priorytet ma mieć IRQ3, wpisz pod +#06 taki sam adres, jak pod +#02. Jeśli IRQ4 ma być obsłużone w pierwszej kolejności, wpisz adres taki, jak pod +#04. Kod obsługi musi odblokowywać przerwania (EI) po zakończeniu.

    Dla każdego żródła przerwania (IRQ3..IRQ7,IRQ9) muszą być wpisane adresy w 32 pozycjach tabeli IM2!

    Jak to działa?

    Adres w złączu ISA jest generowany następująco:

    Linia ISALinia Z80 lub stan
    A4=0 lub A5=0A4=1 i A5=1
    IA9zawsze wysoki (1)
    IA8/A8wysoki (1)
    IA7/A3
    IA6A4
    IA5/A5wysoki (1)
    IA4/A9wysoki (1)
    IA3/A10niski (0)
    IA2A2
    IA1A1
    IA0A0

    Płytka drukowana

    Płytka przeznaczona jest dla interfejsu Split. Ma dwie strony z metalizacją otworów. Cztery układy logiki (74LS00, 74LS139, 74LS158, 74LS244) są zamontowane od spodu, dwa złącza ISA-8 są montowane od góry.

    płytka YABUS.ZXISA8 - widok z góry


    Powiedz innym:

    Pliki do pobrania

    zxisa005.zip 66.4kB (2006-04-03 22:46)
    Projekt płytki przeznaczony do produkcji. Pliki danych Eagle oraz Tango PCB.
    zxisa.txt 5.8kB (2006-03-31 13:12)
    [en] Opis techniczny interfejsu.
    modem.zip 10.9kB (1999-07-06 17:04)
    [pl] Opis podłączenia interfejsu szeregowego ISA albo UART 8250 do ZX Spectrum.

    Linki do innych stron



    Zobacz również

    ZX.SPLIT : Sinclair bus splitter
    Pozwala budować rozgałęźniki szyny oraz interfejsy przelotowe.
    YAMOD.FDC765A
    Interfejs FDC 765A, zgodny z ZX Spectrum +3 oraz YABUS.ZXISA.
    DSKHNDLR
    Sterowniki niskiego poziomu do napędów dyskietowych i dysków twardych dla Z80.

  • E-mail:

    Hasło:



    Przypomnieć hasło?

    Rejestracja?
    Apple
    HDD
    Atari
    IDE KMK/JŻ
    MyIDE
    SIO2IDE
    Commodore
    IECATA
    CPC
    CPCISA
    Hacker
    PC
    IDE
    LPT
    Sam Coupé
    Atom
    FDD
    RTC
    Samtrum
    YABUS.SAM
    YAMOD
    ATBUS
    AYLPT
    EPROG
    FDC765A
    IDE8255
    KJOY
    ZXINPUT
    Timex
    BEU
    Cartridge
    FD-68
    Larken
    ZX81
    ZX96
    ZX1541
    ZX Spectrum
    AC-DOS
    Interface 1
    Interface 1 Bis
    Interface 2
    GeneralSound
    Macface
    MB-02
    NMI
    Packet Radio
    PB-3
    PL3MEM
    Plus D
    POLBASIC
    Printer
    Split
    Timex M-397
    CA80
    YABUS.ZX
    YABUS.ZXISA
    YABUS.ZXMEM

    Jeśli widzisz błąd na tej stronie, opisz tutaj:

    © 2009-12-28 21:50 Jarek Adamski, http://8bit.yarek.pl