Removed modem code.
This commit is contained in:
@@ -1,453 +0,0 @@
|
|||||||
;Copyright (C) 1997-2005 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach )
|
|
||||||
;
|
|
||||||
;http://www.zsnes.com
|
|
||||||
;http://sourceforge.net/projects/zsnes
|
|
||||||
;
|
|
||||||
;This program is free software; you can redistribute it and/or
|
|
||||||
;modify it under the terms of the GNU General Public License
|
|
||||||
;as published by the Free Software Foundation; either
|
|
||||||
;version 2 of the License, or (at your option) any later
|
|
||||||
;version.
|
|
||||||
;
|
|
||||||
;This program is distributed in the hope that it will be useful,
|
|
||||||
;but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;GNU General Public License for more details.
|
|
||||||
;
|
|
||||||
;You should have received a copy of the GNU General Public License
|
|
||||||
;along with this program; if not, write to the Free Software
|
|
||||||
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%include "macros.mac"
|
|
||||||
|
|
||||||
EXTSYM ComNum,ComIRQ,BaudRate,FossilUse,delay
|
|
||||||
|
|
||||||
%ifdef __MSDOS__
|
|
||||||
EXTSYM dssel
|
|
||||||
%endif
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
NEWSYM UartType, resb 1
|
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
NEWSYM cantinitmodem, db 1
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
NEWSYM ModemInited, resb 1
|
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
ComPort dw 2E8h ; 1=3F8,2=2F8,3=3E8,4=2E8
|
|
||||||
PortData dw 0,3F8h,2F8h,3E8h,2E8h
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
ComInt resb 1
|
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
BRateSel dw 000Ch,0008h,0006h,0004h,0003h,0002h,0001h
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
oldhandmodems resw 1
|
|
||||||
oldhandmodemo resd 1
|
|
||||||
|
|
||||||
SECTION .data
|
|
||||||
PICMaskPm db 21h
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
PortNum resw 1
|
|
||||||
CharStore resb 1
|
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
NEWSYM ModemGetChar
|
|
||||||
cmp byte[UartType],2
|
|
||||||
je near FossilGetChar
|
|
||||||
xor dh,dh
|
|
||||||
mov eax,[modemhead]
|
|
||||||
cmp eax,[modemtail]
|
|
||||||
je .nonewchar
|
|
||||||
mov dh,1
|
|
||||||
mov dl,[modembuffer+eax]
|
|
||||||
inc dword[modemhead]
|
|
||||||
and dword[modemhead],2047
|
|
||||||
.nonewchar
|
|
||||||
ret
|
|
||||||
|
|
||||||
FossilGetChar:
|
|
||||||
pushad
|
|
||||||
mov ah,0Ch
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h
|
|
||||||
cmp ax,0FFFFh
|
|
||||||
je .nochar
|
|
||||||
mov ah,02h
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h
|
|
||||||
mov [CharStore],al
|
|
||||||
popad
|
|
||||||
mov dh,1
|
|
||||||
mov dl,[CharStore]
|
|
||||||
ret
|
|
||||||
.nochar
|
|
||||||
popad
|
|
||||||
xor dh,dh
|
|
||||||
ret
|
|
||||||
|
|
||||||
NEWSYM ModemCheckRing
|
|
||||||
cmp byte[UartType],2
|
|
||||||
je near .fossil
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,6
|
|
||||||
in al,dx
|
|
||||||
shr al,6
|
|
||||||
and al,01h
|
|
||||||
ret
|
|
||||||
.fossil
|
|
||||||
pushad
|
|
||||||
mov ah,03h
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h
|
|
||||||
test al,40h
|
|
||||||
jnz .ring
|
|
||||||
popad
|
|
||||||
xor al,al
|
|
||||||
ret
|
|
||||||
.ring
|
|
||||||
popad
|
|
||||||
mov al,1
|
|
||||||
ret
|
|
||||||
|
|
||||||
NEWSYM ModemCheckDCD
|
|
||||||
cmp byte[UartType],2
|
|
||||||
je near .fossil
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,6
|
|
||||||
in al,dx
|
|
||||||
shr al,7
|
|
||||||
and al,01h
|
|
||||||
ret
|
|
||||||
.fossil
|
|
||||||
pushad
|
|
||||||
mov ah,03h
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h
|
|
||||||
test al,80h
|
|
||||||
jnz .dcd
|
|
||||||
popad
|
|
||||||
xor al,al
|
|
||||||
ret
|
|
||||||
.dcd
|
|
||||||
popad
|
|
||||||
mov al,1
|
|
||||||
ret
|
|
||||||
|
|
||||||
NEWSYM ModemSendChar
|
|
||||||
cmp byte[UartType],2
|
|
||||||
je near FossilSendChar
|
|
||||||
push ecx
|
|
||||||
push edx
|
|
||||||
push ebx
|
|
||||||
mov ecx,1000000
|
|
||||||
mov bl,al
|
|
||||||
.loop
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,5
|
|
||||||
in al,dx
|
|
||||||
test al,00100000b
|
|
||||||
jnz .transokay
|
|
||||||
dec ecx
|
|
||||||
jnz .loop
|
|
||||||
xor al,al
|
|
||||||
pop ebx
|
|
||||||
pop edx
|
|
||||||
pop ecx
|
|
||||||
ret
|
|
||||||
.transokay
|
|
||||||
mov al,bl
|
|
||||||
mov dx,[ComPort] ; Send the char through the modem
|
|
||||||
out dx,al
|
|
||||||
pop ebx
|
|
||||||
pop edx
|
|
||||||
pop ecx
|
|
||||||
ret
|
|
||||||
|
|
||||||
FossilSendChar:
|
|
||||||
pushad
|
|
||||||
mov ah,01h
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h
|
|
||||||
popad
|
|
||||||
ret
|
|
||||||
|
|
||||||
NEWSYM InitModem
|
|
||||||
mov byte[ModemInited],1
|
|
||||||
cmp byte[FossilUse],0
|
|
||||||
jne near InitFossil
|
|
||||||
mov byte[cantinitmodem],0
|
|
||||||
cli
|
|
||||||
; Get Port value
|
|
||||||
xor eax,eax
|
|
||||||
mov al,[ComNum]
|
|
||||||
mov ax,[PortData+eax*2]
|
|
||||||
mov [ComPort],ax
|
|
||||||
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,2
|
|
||||||
xor al,al
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
; Set IRQ PIC Mask Port
|
|
||||||
mov byte[PICMaskPm],21h
|
|
||||||
mov bl,[ComIRQ]
|
|
||||||
cmp bl,7
|
|
||||||
jbe .noupper
|
|
||||||
add bl,60h
|
|
||||||
add byte[PICMaskPm],80h
|
|
||||||
.noupper
|
|
||||||
add bl,8
|
|
||||||
mov [ComInt],bl
|
|
||||||
|
|
||||||
; Get IRQ handler
|
|
||||||
mov ax,204h
|
|
||||||
mov bl,[ComInt]
|
|
||||||
int 31h
|
|
||||||
mov [oldhandmodems],cx
|
|
||||||
mov [oldhandmodemo],edx
|
|
||||||
; Set IRQ handler
|
|
||||||
mov ax,205h
|
|
||||||
mov bl,[ComInt]
|
|
||||||
mov cx,cs
|
|
||||||
mov edx,modemhandler
|
|
||||||
int 31h
|
|
||||||
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,3
|
|
||||||
mov al,00000011b
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
; Set Normal Modem functioning, User2 bit, and DTR
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,4
|
|
||||||
mov al,00001011b
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
; Enable IRQ
|
|
||||||
xor dh,dh
|
|
||||||
mov dl,[PICMaskPm] ; Output to IRQ PIC Mask Port
|
|
||||||
mov cl,[ComIRQ] ; Get proper bit
|
|
||||||
and cl,07h
|
|
||||||
mov al,01h
|
|
||||||
shl al,cl
|
|
||||||
not al ; Complement since clear bit = enable
|
|
||||||
mov bl,al
|
|
||||||
in al,dx ; input to preserve other bits
|
|
||||||
and al,bl
|
|
||||||
xor al,al
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
; Enable interrupt to execute only on data available
|
|
||||||
mov dx,[ComPort]
|
|
||||||
inc dx
|
|
||||||
mov al,00000001b
|
|
||||||
out dx,al
|
|
||||||
sti
|
|
||||||
|
|
||||||
; Write baudrate
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,3
|
|
||||||
in al,dx
|
|
||||||
or al,10000000b
|
|
||||||
out dx,al
|
|
||||||
mov eax,[BaudRate]
|
|
||||||
mov ax,[BRateSel+eax*2]
|
|
||||||
mov dx,[ComPort]
|
|
||||||
inc dx
|
|
||||||
push eax
|
|
||||||
mov al,ah
|
|
||||||
out dx,al
|
|
||||||
pop eax
|
|
||||||
dec dx
|
|
||||||
out dx,al
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,3
|
|
||||||
in al,dx
|
|
||||||
and al,01111111b
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
; Initialize 16550A UART chip
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,2
|
|
||||||
mov al,0C7h
|
|
||||||
out dx,al
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
in al,dx
|
|
||||||
mov byte[UartType],1
|
|
||||||
test al,40h
|
|
||||||
jnz .passed16550a
|
|
||||||
xor al,al
|
|
||||||
out dx,al
|
|
||||||
mov byte[UartType],0
|
|
||||||
.passed16550a
|
|
||||||
ret
|
|
||||||
|
|
||||||
InitFossil:
|
|
||||||
xor edx,edx
|
|
||||||
mov dl,[ComNum]
|
|
||||||
dec dl
|
|
||||||
mov [PortNum],dx
|
|
||||||
mov byte[cantinitmodem],0
|
|
||||||
mov byte[UartType],2
|
|
||||||
mov ah,04h
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h
|
|
||||||
cmp ax,1954h
|
|
||||||
jne .notsuccess
|
|
||||||
xor ah,ah
|
|
||||||
mov al,00000011b ; 19200 baud, 81N
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h
|
|
||||||
ret
|
|
||||||
.notsuccess
|
|
||||||
mov byte[cantinitmodem],1
|
|
||||||
ret
|
|
||||||
|
|
||||||
modemhandler:
|
|
||||||
push ds
|
|
||||||
push eax
|
|
||||||
%ifdef __MSDOS__
|
|
||||||
mov ax,[cs:dssel]
|
|
||||||
%endif
|
|
||||||
mov ds,ax
|
|
||||||
push edx
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,4
|
|
||||||
in al,dx
|
|
||||||
and al,11111101b
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
.next
|
|
||||||
mov dx,[ComPort]
|
|
||||||
in al,dx
|
|
||||||
mov edx,[modemtail]
|
|
||||||
mov [modembuffer+edx],al
|
|
||||||
inc dword[modemtail]
|
|
||||||
and dword[modemtail],2047
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,2
|
|
||||||
in al,dx
|
|
||||||
test al,1
|
|
||||||
jz .next
|
|
||||||
|
|
||||||
mov al,20h
|
|
||||||
out 20h,al
|
|
||||||
|
|
||||||
cmp byte[ComIRQ],7
|
|
||||||
jbe .nohighirq
|
|
||||||
mov al,20h
|
|
||||||
out 0A0h,al
|
|
||||||
.nohighirq
|
|
||||||
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,4
|
|
||||||
in al,dx
|
|
||||||
or al,00000010b
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
pop edx
|
|
||||||
pop eax
|
|
||||||
pop ds
|
|
||||||
iretd
|
|
||||||
|
|
||||||
NEWSYM ModemClearBuffer
|
|
||||||
mov dword[modemhead],0
|
|
||||||
mov dword[modemtail],0
|
|
||||||
ret
|
|
||||||
|
|
||||||
SECTION .bss
|
|
||||||
NEWSYM modembuffer, resb 2048
|
|
||||||
NEWSYM modemhead, resd 1
|
|
||||||
NEWSYM modemtail, resd 1
|
|
||||||
SECTION .text
|
|
||||||
|
|
||||||
NEWSYM DeInitModem
|
|
||||||
cmp byte[ModemInited],1
|
|
||||||
je .okaydeinit
|
|
||||||
ret
|
|
||||||
.okaydeinit
|
|
||||||
mov byte[ModemInited],0
|
|
||||||
cmp byte[UartType],2
|
|
||||||
je near DeInitFossil
|
|
||||||
cli
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,2
|
|
||||||
xor al,al
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
xor dh,dh
|
|
||||||
mov dl,[PICMaskPm]
|
|
||||||
mov cl,[ComIRQ]
|
|
||||||
and cl,07h
|
|
||||||
mov al,01h
|
|
||||||
shl al,cl
|
|
||||||
mov bl,al
|
|
||||||
in al,dx
|
|
||||||
or al,bl
|
|
||||||
xor al,al
|
|
||||||
out dx,al
|
|
||||||
mov dx,[ComPort]
|
|
||||||
inc dx
|
|
||||||
mov al,00h
|
|
||||||
out dx,al
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,4
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
mov cx,[oldhandmodems]
|
|
||||||
mov edx,[oldhandmodemo]
|
|
||||||
mov ax,205h
|
|
||||||
mov bl,[ComInt]
|
|
||||||
int 31h
|
|
||||||
sti
|
|
||||||
ret
|
|
||||||
|
|
||||||
DeInitFossil:
|
|
||||||
mov byte[cantinitmodem],0
|
|
||||||
jne .nodeinit
|
|
||||||
mov ax,0600h
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h ; Lower DTR
|
|
||||||
mov ah,05h
|
|
||||||
mov dx,[PortNum]
|
|
||||||
int 14h
|
|
||||||
.nodeinit
|
|
||||||
ret
|
|
||||||
|
|
||||||
NEWSYM DeInitModemC
|
|
||||||
cmp byte[ModemInited],1
|
|
||||||
je .okaydeinit
|
|
||||||
ret
|
|
||||||
.okaydeinit
|
|
||||||
cmp byte[UartType],2
|
|
||||||
je near DeInitFossil
|
|
||||||
cli
|
|
||||||
mov al,00h
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,4
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
mov al,13
|
|
||||||
mov dx,[ComPort]
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
mov ecx,16384
|
|
||||||
call delay
|
|
||||||
|
|
||||||
out dx,al
|
|
||||||
|
|
||||||
mov al,00001001b
|
|
||||||
mov dx,[ComPort]
|
|
||||||
add dx,4
|
|
||||||
out dx,al
|
|
||||||
sti
|
|
||||||
ret
|
|
||||||
@@ -185,7 +185,7 @@ JMAOBJ=${JMADIR}/7zlzma${OE} ${JMADIR}/crc32${OE} ${JMADIR}/iiostrm${OE}\
|
|||||||
MAINOBJ=cfgload${OE} endmem${OE} init${OE} initc${OE} uic${OE} patch${OE}\
|
MAINOBJ=cfgload${OE} endmem${OE} init${OE} initc${OE} uic${OE} patch${OE}\
|
||||||
ui${OE} vcache${OE} version${OE} zmovie${OE} zstate${OE} zloader${OE}
|
ui${OE} vcache${OE} version${OE} zmovie${OE} zstate${OE} zloader${OE}
|
||||||
|
|
||||||
DOSOBJORIG=${DOSDIR}/debug${OE} ${DOSDIR}/joy${OE} ${DOSDIR}/modemrtn${OE} ${DOSDIR}/vesa2${OE}\
|
DOSOBJORIG=${DOSDIR}/debug${OE} ${DOSDIR}/joy${OE} ${DOSDIR}/vesa2${OE}\
|
||||||
${DOSDIR}/initvid${OE} ${DOSDIR}/sw${OE} ${DOSDIR}/gppro${OE} ${DOSDIR}/vesa12${OE}
|
${DOSDIR}/initvid${OE} ${DOSDIR}/sw${OE} ${DOSDIR}/gppro${OE} ${DOSDIR}/vesa12${OE}
|
||||||
|
|
||||||
|
|
||||||
@@ -343,7 +343,6 @@ ${DOSDIR}/vesa12${OE}: $< macros.mac
|
|||||||
${DOSDIR}/joy${OE}: $< macros.mac
|
${DOSDIR}/joy${OE}: $< macros.mac
|
||||||
${DOSDIR}/sw${OE}: $< macros.mac
|
${DOSDIR}/sw${OE}: $< macros.mac
|
||||||
${DOSDIR}/gppro${OE}: $< macros.mac
|
${DOSDIR}/gppro${OE}: $< macros.mac
|
||||||
${DOSDIR}/modemrtn${OE}: $< macros.mac
|
|
||||||
|
|
||||||
${NETDIR}/ztcp${OE}: $<
|
${NETDIR}/ztcp${OE}: $<
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user