Code: Summary This article describe ISA-8 interaction. More information If you want to interaction with ISA devices, you have to make following steps: 1) send 10h value to port 1FFDh(system port); 2) send control byte to port 0E2h(third memory window port); control byte: D7...should be 1 D6...should be 1 D5...should be 0 D4...should be 1 D3...should be 0 D2...specify number of ISA slot D1...specify access mode (0 - ISA memory, 1 - ISA ports) D0...should be 0 The read/write signals are forming from read/write signals memory range 0C000h-0FFFFh. And the address lines A13...A0 has taken from processor data-BUS. The other ISA-signals such as RESET, AEN, A19...A14 can be set in port 9FBDh. And default value is 00h. port 9FBDh: D7...RESET D6...AEN D5...A19 D4...A18 D3...A17 D2...A16 D1...A15 D0...A14
ISA_DIR EQU 9FBDh SC_PORT EQU 1FFDh PAGE3 EQU 0E2h
SAVE_PAGE DB 0 ;variable for previous status of third memory port
RESET_ISA: ; reset ISA device LD C, ISA_DIR LD A,0C0h OUT (C),A CALL Pause_10ms LD A,0 OUT (C),A RET
Pause_10ms: LD HL,10000 Loop: DEC HL LD A,H XOR L JR NZ,Loop RET
OPEN_ISA_PORTS: ; open access to ISA LD BC,SC_PORT LD A,10h OUT (C),A IN A,(PAGE3) ; read value from memory port LD (SAVE_PAGE),A ; save previous status of memory port LD A,0D2h ; control byte for (first (upper) ISA slot) OUT (PAGE3), A ; opening ISA port address space LD C,ISA_DIR LD A,0 ; high ISA addresses RESET and AEN signals. OUT (C),A RET
CLOSE_ISA_PORTS: ; close access to ISA LD A,(SAVE_PAGE) OUT (PAGE3),A ; restore value of memory port LD BC,SC_PORT LD A,0 OUT (C),A ; RET
WRITE_ISA_PORT: LD HL,ADRESS_PORT+0C000h ; ISA port address + 0C000h offset 3 memory page LD A,DATA_OUT ; data for writing LD (HL),A ; write data to port which pointered HL RET
READ_ISA_PORT: LD HL, ADRESS_PORT+0C000h ; ISA port address + 0C000h offset 3 memory page LD A,(HL) ; read data from port which pointered HL RET When you work with ISA, the access to third memory page are disabled. If you want to address ISA-memory more than 3FFFh, you should specify high bits in port 9FBDh.
|