Article # 182, added by Geoworks, historical record
| first | previous | index | next | last |

Reseting Zoomer card slot




Note that this operation is performed at the BIOS level.  It is not part
of the GEOS Socket API. The code shown below is untested and may not work. 
CardServices and SocketServices is an unpublished, unsupported API.

  On a socket-services only platform, reseting the card is accomplished
  by sending Socket Services the ResetSocket command (90h).

	;
	;  To reset a socket (at the socket services layer)
	;  All you need to do is send a reset command for
	;  appropriate adapter and socket.  On the Zoomer
	;  the slot is Adapter 0, Socket 0.
		xor	al, al		; al <- Adapter (0 = 1st adapter)
		mov	bl, al		; bl <- Socket (0 = 1st socket)
		mov	ah, 090h	; ah <- SSCommand (ResetSocket)
		int	1ah		; 1Ah = SocketServices interrupt
		jc	error	; => AH has error code
	;
	;  To test the RESET line, do a GetStatus on the
	;  socket, and check the SBM_RDYBSY pin (#16).
		xor	al, al		; al <- Adapter (0 = 1st adapter)
		mov	bl, al		; bl <- Socket (0 = 1st socket)
		mov	ah, 08fh	; ah <- SSCommand (GetStatus)
		int	1ah		; 1Ah = SocketServices interrupt
		jc	error	; => AH has error code

		test	bh, 040h	; b6 has RDYBSY line
		stc			; assume it's set
		jnz	done		; return Carry SET if RDYBSY line high
		clc			; return Carry CLEAR if line low