home *** CD-ROM | disk | FTP | other *** search
-
- nogus db 'No GUS? No demo!',10,13,'$'
-
- ; Carry set - No GUS
- ; No carry - GUS at Base
- DetectGUS:
- mov cs:[Baseport],210h
- TestIt:
- call U_Probe
- jnb FoundIt
- add cs:[Baseport],10h
- cmp cs:[Baseport],270h
- jb TestIt
- FoundIt:
- ret
-
- UDelay:
- push dx ax
- mov dx,300h
- in al,dx
- in al,dx
- in al,dx
- in al,dx
- in al,dx
- in al,dx
- in al,dx
- pop ax dx
- ret
-
- ; BX:CX Set to whatever.
- U_Peek:
- push dx
- mov dx,cs:[BasePort]
- add dx,103h ; 103h
- mov al,43h
- out dx,al
- inc dx ; 104h
- mov ax,cx
- out dx,ax
- dec dx ; 103h
- mov al,44h
- out dx,al
- add dx,2
- mov al,bl
- out dx,al
- add dx,2
- in al,dx
- pop dx
- ret
-
- ; BX:CX Set to whatever.
- ; AX Value to poke
- U_Poke:
- push dx ax
- mov dx,cs:[BasePort]
- add dx,103h
- mov al,43h
- out dx,al
- inc dx
- mov ax,cx
- out dx,ax
- dec dx
- mov al,44h
- out dx,al
- add dx,2
- mov al,bl
- out dx,al
- add dx,2
- pop ax
- out dx,al
- pop dx
- ret
-
-
- ; DX - Base.
- U_Probe:
- mov dx,cs:[BasePort]
- add dx,0103h ; 103h
- mov al,4Ch
- out dx,al
- add dx,2 ; 105h
- mov al,0
- out dx,al
- call UDelay
- call UDelay
- sub dx,2 ; 103h
- mov al,4Ch
- out dx,al
- add dx,2 ; 105h
- mov al,1
- out dx,al
- mov ax,0AAh
- mov bx,0
- mov cx,0
- call U_Poke
- mov ax,055h
- mov bx,1
- call U_Poke
- mov bx,0
- call U_Peek
- push ax
- mov ax,0
- call U_Poke
- sub dx,2 ; 103h
- mov al,4Ch
- out dx,al
- add dx,2 ; 105h
- mov al,0
- out dx,al
- pop ax
- cmp al,0AAh
- jnz @@Nope
- clc
- ret
- @@Nope: stc
- ret
-
-