NewsProductsSprinterSupportDownloadSprinter ForumAbout usLinksSite map Russian site

English
   >> Software programming for the computer Sprinter
Thread views: 95 *View all threadsNext thread*Threaded Mode

dirtyfly
(stranger )
2002/03/05 18:08
ISA Access on the sprinter Reply to this post

Hi all,

How do i Acess a isa card from the sprinter ?

I wanted to control a ISA serial interface , on the PC is quite easy, but how do i do it on my beloved sprinter ?

thanks

Jorge



Alex_GoryachevAdministrator
(Sprinter Team)
2002/03/06 09:41
Re: ISA Access on the sprinter new [re: dirtyfly]Reply to this post

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.



*View all threadsNext thread*Threaded Mode
Jump to