Removed some DOS only code from other ports.
This commit is contained in:
@@ -74,8 +74,7 @@ VIDEOBJ=${VIDEODIR}/makev16b.o ${VIDEODIR}/makev16t.o ${VIDEODIR}/makevid.o\
|
||||
WINOBJ=${WINDIR}/copyvwin.o ${WINDIR}/sdlintrf.o ${WINDIR}/sdllink.o @GL_DRAW@\
|
||||
${WINDIR}/sw_draw.o ${WINDIR}/zfilew.o
|
||||
|
||||
WINDOSOBJ=${DOSDIR}/debug.o ${DOSDIR}/joy.o ${DOSDIR}/vesa2.o\
|
||||
${DOSDIR}/initvid.o ${DOSDIR}/sw.o ${DOSDIR}/gppro.o ${DOSDIR}/vesa12.o
|
||||
WINDOSOBJ=${DOSDIR}/debug.o ${DOSDIR}/joy.o ${DOSDIR}/vesa2.o
|
||||
|
||||
ZIPOBJ=${ZIPDIR}/unzip.o ${ZIPDIR}/zpng.o
|
||||
|
||||
@@ -196,11 +195,7 @@ ${CPUDIR}/tablec.o: ${CPUDIR}/tablec.asm macros.mac ${CPUDIR}/65816dc.inc\
|
||||
${CPUDIR}/address.inc ${CPUDIR}/addrni.inc ${CPUDIR}/e65816c.inc
|
||||
|
||||
${DOSDIR}/debug.o: ${DOSDIR}/debug.asm macros.mac
|
||||
${DOSDIR}/gppro.o: ${DOSDIR}/gppro.asm macros.mac
|
||||
${DOSDIR}/initvid.o: ${DOSDIR}/initvid.asm macros.mac ${DOSDIR}/vga.inc
|
||||
${DOSDIR}/joy.o: ${DOSDIR}/joy.asm macros.mac
|
||||
${DOSDIR}/sw.o: ${DOSDIR}/sw.asm macros.mac
|
||||
${DOSDIR}/vesa12.o: ${DOSDIR}/vesa12.asm macros.mac
|
||||
${DOSDIR}/vesa2.o: ${DOSDIR}/vesa2.asm macros.mac
|
||||
|
||||
${EFFECTSDIR}/burn.o: ${EFFECTSDIR}/burn.c
|
||||
@@ -271,7 +266,7 @@ ${VIDEODIR}/sw_draw.o: ${VIDEODIR}/sw_draw.asm macros.mac
|
||||
${WINDIR}/copyvwin.o: ${WINDIR}/copyvwin.asm macros.mac
|
||||
${WINDIR}/gl_draw.o: ${WINDIR}/gl_draw.c gblhdr.h
|
||||
${WINDIR}/sdlintrf.o: ${WINDIR}/sdlintrf.asm macros.mac
|
||||
${WINDIR}/sdllink.o: ${WINDIR}/sdllink.c gblhdr.h ${WINDIR}/sw_draw.h\
|
||||
${WINDIR}/sdllink.o: ${WINDIR}/sdllink.c asm_call.h gblhdr.h ${WINDIR}/sw_draw.h\
|
||||
${WINDIR}/gl_draw.h
|
||||
${WINDIR}/sw_draw.o: ${WINDIR}/sw_draw.c gblhdr.h
|
||||
${WINDIR}/zfilew.o: ${WINDIR}/zfilew.c
|
||||
|
||||
@@ -75,10 +75,6 @@ dossrc = Split('''
|
||||
dos/debug.asm
|
||||
dos/joy.asm
|
||||
dos/vesa2.asm
|
||||
dos/initvid.asm
|
||||
dos/sw.asm
|
||||
dos/gppro.asm
|
||||
dos/vesa12.asm
|
||||
''')
|
||||
effectssrc = Split('''
|
||||
effects/burn.c
|
||||
|
||||
@@ -35,7 +35,7 @@ EXTSYM tableadc,SA1UpdateDPage,Makemode7Table,nextmenupopup,MovieProcessing
|
||||
EXTSYM DosExit,InitDir,InitDrive,createnewcfg,sfxramdata,deinitvideo
|
||||
EXTSYM SFXEnable,wramdata,cycpbl,cycpblt,irqon,spcon
|
||||
EXTSYM multchange,romispal,scrndis,sprlefttot,sprleftpr,processsprites
|
||||
EXTSYM cachesprites,NextLineStart,FlipWait,LastLineStart,opcjmptab,CheatOn
|
||||
EXTSYM cachesprites,opcjmptab,CheatOn
|
||||
EXTSYM INTEnab,JoyCRead,NMIEnab,NumCheats,CurrentExecSA1,ReadInputDevice
|
||||
EXTSYM StartDrawNewGfx,VIRQLoc,cachevideo,cfield,cheatdata,curblank,curnmi
|
||||
EXTSYM curypos,cycpl,doirqnext,drawline,exechdma,hdmadelay,intrset,newengen
|
||||
@@ -58,7 +58,7 @@ EXTSYM ResetDuringMovie,EMUPauseKey,INCRFrameKey,MovieWaiting,NoInputRead
|
||||
EXTSYM AllocatedRewindStates,PauseFrameMode,RestorePauseFrame,BackupPauseFrame
|
||||
|
||||
%ifdef __MSDOS__
|
||||
EXTSYM dssel,Game60hzcall
|
||||
EXTSYM dssel,Game60hzcall,NextLineStart,FlipWait,LastLineStart
|
||||
%endif
|
||||
|
||||
SECTION .data
|
||||
@@ -763,6 +763,7 @@ NEWSYM exitloop
|
||||
ALIGN16
|
||||
|
||||
%macro FlipCheck 0
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[FlipWait],0
|
||||
je %%noflip
|
||||
push edx
|
||||
@@ -787,6 +788,7 @@ ALIGN16
|
||||
pop eax
|
||||
pop edx
|
||||
%%noflip
|
||||
%endif
|
||||
%endmacro
|
||||
|
||||
NEWSYM execute
|
||||
|
||||
@@ -38,7 +38,7 @@ EXTSYM DSPDisable,SBInt,PICMaskP,SBIrq,SBHandler,InitSB,handler8h
|
||||
EXTSYM handler9h,init60hz,Interror,init18_2hz,DeInitSPC,GUIinit36_4hz
|
||||
EXTSYM GUIoldhand9s,GUIoldhand9o,GUIoldhand8s,GUIoldhand8o,GUIhandler9h
|
||||
EXTSYM GUIhandler8h,GUIinit18_2hz,dosmakepal,doschangepal,dosinitvideo
|
||||
EXTSYM dosinitvideo2,DosDrawScreen,cvidmode,vidbuffer,GUICPC,DosDrawScreenB
|
||||
EXTSYM DosDrawScreen,cvidmode,vidbuffer,GUICPC,DosDrawScreenB
|
||||
EXTSYM DOSClearScreen,DosUpdateDevices,DOSJoyRead,pl1contrl,pl2contrl,pl3contrl
|
||||
EXTSYM pl4contrl,pl5contrl
|
||||
EXTSYM GrayscaleMode
|
||||
@@ -871,8 +871,6 @@ NEWSYM saveselectpal
|
||||
; ** init video mode functions **
|
||||
NEWSYM initvideo ; Returns 1 in videotroub if trouble occurs
|
||||
jmp dosinitvideo
|
||||
NEWSYM initvideo2 ; ModeQ scanline re-init (Keep blank on non-dos ports)
|
||||
jmp dosinitvideo2
|
||||
NEWSYM deinitvideo
|
||||
mov al,[previdmode]
|
||||
mov ah,0
|
||||
|
||||
@@ -22,23 +22,13 @@
|
||||
|
||||
%include "macros.mac"
|
||||
|
||||
EXTSYM InitVesa2,cbitmode,cvidmode,makepal,scanlines,selcA000,vesa2_bits
|
||||
EXTSYM vesa2_x,vesa2_y,vesa2selec,InitVesa12,videotroub
|
||||
|
||||
%ifdef __MSDOS__
|
||||
EXTSYM cscopymodeq,cscopymodex
|
||||
%endif
|
||||
|
||||
SECTION .bss
|
||||
|
||||
NEWSYM clearfilter, resw 1
|
||||
NEWSYM res640, resb 1
|
||||
NEWSYM res480, resb 1
|
||||
EXTSYM InitVesa2,cbitmode,cvidmode,dosmakepal,scanlines,selcA000,vesa2_bits
|
||||
EXTSYM vesa2_x,vesa2_y,vesa2selec,InitVesa12,videotroub,cscopymodeq,cscopymodex
|
||||
EXTSYM res640,res480
|
||||
|
||||
|
||||
SECTION .text
|
||||
|
||||
NEWSYM dosinitvideo2
|
||||
NEWSYM initvideo2
|
||||
cmp byte[cvidmode],2
|
||||
jne .nomodeq
|
||||
jmp dosinitvideo.initmodeq256
|
||||
@@ -103,11 +93,9 @@ NEWSYM dosinitvideo
|
||||
;*******************************************************
|
||||
|
||||
.initmodeq224
|
||||
%ifdef __MSDOS__
|
||||
SetVGAMode .Mode256x224c
|
||||
call cscopymodeq
|
||||
%endif
|
||||
call makepal
|
||||
call dosmakepal
|
||||
ret
|
||||
|
||||
;*******************************************************
|
||||
@@ -115,11 +103,9 @@ NEWSYM dosinitvideo
|
||||
;*******************************************************
|
||||
|
||||
.initmodeq240
|
||||
%ifdef __MSDOS__
|
||||
SetVGAMode .Mode256x240c
|
||||
call cscopymodeq
|
||||
%endif
|
||||
call makepal
|
||||
call dosmakepal
|
||||
ret
|
||||
|
||||
;*******************************************************
|
||||
@@ -127,7 +113,6 @@ NEWSYM dosinitvideo
|
||||
;*******************************************************
|
||||
|
||||
.initmodeq256
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[scanlines],1
|
||||
je near .scanlines
|
||||
SetVGAMode .Mode256x256c
|
||||
@@ -137,8 +122,7 @@ NEWSYM dosinitvideo
|
||||
jmp .done
|
||||
.done
|
||||
call cscopymodeq
|
||||
%endif
|
||||
call makepal
|
||||
call dosmakepal
|
||||
ret
|
||||
|
||||
|
||||
@@ -147,11 +131,9 @@ NEWSYM dosinitvideo
|
||||
;*******************************************************
|
||||
|
||||
.initmodex224
|
||||
%ifdef __MSDOS__
|
||||
SetVGAMode .Mode320x224
|
||||
call cscopymodex
|
||||
%endif
|
||||
call makepal
|
||||
call dosmakepal
|
||||
ret
|
||||
|
||||
;*******************************************************
|
||||
@@ -159,11 +141,9 @@ NEWSYM dosinitvideo
|
||||
;*******************************************************
|
||||
|
||||
.initmodex240
|
||||
%ifdef __MSDOS__
|
||||
SetVGAMode .Mode320x240
|
||||
call cscopymodex
|
||||
%endif
|
||||
call makepal
|
||||
call dosmakepal
|
||||
ret
|
||||
|
||||
;*******************************************************
|
||||
@@ -171,7 +151,6 @@ NEWSYM dosinitvideo
|
||||
;*******************************************************
|
||||
|
||||
.initmodex256
|
||||
%ifdef __MSDOS__
|
||||
cmp byte[scanlines],1
|
||||
je near .scanlines2
|
||||
SetVGAMode .Mode320x256
|
||||
@@ -181,8 +160,7 @@ NEWSYM dosinitvideo
|
||||
jmp .done2
|
||||
.done2
|
||||
call cscopymodex
|
||||
%endif
|
||||
call makepal
|
||||
call dosmakepal
|
||||
ret
|
||||
|
||||
|
||||
@@ -200,7 +178,7 @@ NEWSYM dosinitvideo
|
||||
jne .notrouble
|
||||
ret
|
||||
.notrouble
|
||||
call makepal
|
||||
call dosmakepal
|
||||
; clear screen (320*240 bytes)
|
||||
push es
|
||||
mov ax,[vesa2selec]
|
||||
@@ -258,7 +236,7 @@ NEWSYM dosinitvideo
|
||||
jne .notrouble3
|
||||
ret
|
||||
.notrouble3
|
||||
call makepal
|
||||
call dosmakepal
|
||||
; clear screen (640*480 bytes)
|
||||
push es
|
||||
mov ax,[vesa2selec]
|
||||
@@ -318,7 +296,7 @@ NEWSYM dosinitvideo
|
||||
jne .notrouble11
|
||||
ret
|
||||
.notrouble11
|
||||
call makepal
|
||||
call dosmakepal
|
||||
; clear screen (800*600 bytes)
|
||||
push es
|
||||
mov ax,[vesa2selec]
|
||||
@@ -377,7 +355,7 @@ NEWSYM dosinitvideo
|
||||
jne .notrouble5
|
||||
ret
|
||||
.notrouble5
|
||||
call makepal
|
||||
call dosmakepal
|
||||
; clear screen (320*480 bytes)
|
||||
push es
|
||||
mov ax,[vesa2selec]
|
||||
@@ -436,7 +414,7 @@ NEWSYM dosinitvideo
|
||||
jne .notrouble7
|
||||
ret
|
||||
.notrouble7
|
||||
call makepal
|
||||
call dosmakepal
|
||||
; clear screen (512*384 bytes)
|
||||
push es
|
||||
mov ax,[vesa2selec]
|
||||
@@ -494,7 +472,7 @@ NEWSYM dosinitvideo
|
||||
jne .notrouble9
|
||||
ret
|
||||
.notrouble9
|
||||
call makepal
|
||||
call dosmakepal
|
||||
; clear screen (640*400 bytes)
|
||||
push es
|
||||
mov ax,[vesa2selec]
|
||||
|
||||
@@ -22,11 +22,15 @@
|
||||
|
||||
%include "macros.mac"
|
||||
|
||||
EXTSYM WhichSW,_SW1,_SW2,_readSideWinder,_SWCount,_SW3,_SW4,delay,pl1contrl
|
||||
EXTSYM WhichSW,delay,pl1contrl
|
||||
EXTSYM pl2contrl,pl1p209,pl2p209,pl3p209,pl4p209,pl3contrl,pl4contrl,pressed
|
||||
EXTSYM read_gpp,pl5contrl,pl5p209,CalibXmin,CalibYmin,CalibXmax,CalibYmax
|
||||
EXTSYM pl5contrl,pl5p209,CalibXmin,CalibYmin,CalibXmax,CalibYmax
|
||||
EXTSYM CalibXmin209,CalibYmin209,CalibXmax209,CalibYmax209
|
||||
|
||||
%ifdef __MSDOS__
|
||||
EXTSYM read_gpp,_readSideWinder,_SW1,_SW2,_SW3,_SW4,_SWCount
|
||||
%endif
|
||||
|
||||
SECTION .data
|
||||
NEWSYM JoyAltrn2, db 2
|
||||
SECTION .bss
|
||||
@@ -188,6 +192,7 @@ NEWSYM GetCoords3
|
||||
sti
|
||||
ret
|
||||
|
||||
%ifdef __MSDOS__
|
||||
NEWSYM DosUpdateDevices
|
||||
mov byte[PPad],0
|
||||
mov byte[JoyQuant],0
|
||||
@@ -494,10 +499,6 @@ NEWSYM DosUpdateDevices
|
||||
.none2
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
NEWSYM JoyReadControl, db 0
|
||||
SECTION .text
|
||||
|
||||
JoyRead209:
|
||||
cmp byte[JoyAltrn],1
|
||||
jne near .noanalog
|
||||
@@ -907,7 +908,7 @@ GamePadPro2:
|
||||
.error
|
||||
ret
|
||||
|
||||
NEWSYM SideWinder
|
||||
SideWinder:
|
||||
mov al,[NumSWs]
|
||||
mov [_SWCount],al
|
||||
mov dx,201h
|
||||
@@ -1089,7 +1090,7 @@ GamePadPro2209:
|
||||
.error
|
||||
ret
|
||||
|
||||
NEWSYM SideWinder209
|
||||
SideWinder209:
|
||||
mov al,[NumSWs209]
|
||||
mov [_SWCount],al
|
||||
mov dx,209h
|
||||
@@ -1223,7 +1224,7 @@ NEWSYM SideWinder209
|
||||
%%nobutton
|
||||
%endmacro
|
||||
|
||||
NEWSYM GetParallelPlayer1
|
||||
GetParallelPlayer1:
|
||||
mov dx, 0378h
|
||||
mov byte[pressed+180h],0
|
||||
mov byte[pressed+181h],0
|
||||
@@ -1251,7 +1252,7 @@ NEWSYM GetParallelPlayer1
|
||||
PPortHelp 0F9h, 40h, 18Bh
|
||||
ret
|
||||
|
||||
NEWSYM GetParallelPlayer2
|
||||
GetParallelPlayer2:
|
||||
mov dx, 0378h
|
||||
mov byte[pressed+190h],0
|
||||
mov byte[pressed+191h],0
|
||||
@@ -1279,7 +1280,7 @@ NEWSYM GetParallelPlayer2
|
||||
PPortHelp 0F9h, 20h, 19Bh
|
||||
ret
|
||||
|
||||
NEWSYM GetParallelPlayer3
|
||||
GetParallelPlayer3:
|
||||
mov dx, 0378h
|
||||
mov byte[pressed+1A0h],0
|
||||
mov byte[pressed+1A1h],0
|
||||
@@ -1307,7 +1308,7 @@ NEWSYM GetParallelPlayer3
|
||||
PPortHelp 0F9h, 10h, 1ABh
|
||||
ret
|
||||
|
||||
NEWSYM GetParallelPlayer4
|
||||
GetParallelPlayer4:
|
||||
mov dx, 0378h
|
||||
mov byte[pressed+1B0h],0
|
||||
mov byte[pressed+1B1h],0
|
||||
@@ -1335,7 +1336,7 @@ NEWSYM GetParallelPlayer4
|
||||
PPortHelp 0F9h, 08h, 1BBh
|
||||
ret
|
||||
|
||||
NEWSYM GetParallelPlayer5
|
||||
GetParallelPlayer5:
|
||||
mov dx, 0378h
|
||||
mov byte[pressed+1c0h],0
|
||||
mov byte[pressed+1c1h],0
|
||||
@@ -1674,3 +1675,4 @@ NEWSYM SetInputDevice209
|
||||
.nopp5
|
||||
.exit
|
||||
ret
|
||||
%endif
|
||||
|
||||
@@ -37,25 +37,25 @@ NEWSYM granadd, resd 1
|
||||
SECTION .text
|
||||
|
||||
NEWSYM VESA12EXITTODOS
|
||||
mov ax,0003h
|
||||
int 10h
|
||||
push edx
|
||||
mov edx,.exitfromvesa12
|
||||
mov ah,9
|
||||
int 21h
|
||||
pop edx
|
||||
mov ah,9
|
||||
int 21h
|
||||
mov edx,.return
|
||||
mov ah,9
|
||||
int 21h
|
||||
mov ax,0003h
|
||||
int 10h
|
||||
push edx
|
||||
mov edx,.exitfromvesa12
|
||||
mov ah,9
|
||||
int 21h
|
||||
pop edx
|
||||
mov ah,9
|
||||
int 21h
|
||||
mov edx,.return
|
||||
mov ah,9
|
||||
int 21h
|
||||
|
||||
mov dl,[InitDrive]
|
||||
mov ebx,InitDir
|
||||
call Change_Dir
|
||||
mov dl,[InitDrive]
|
||||
mov ebx,InitDir
|
||||
call Change_Dir
|
||||
|
||||
mov byte[videotroub],1
|
||||
jmp DosExit
|
||||
mov byte[videotroub],1
|
||||
jmp DosExit
|
||||
|
||||
|
||||
SECTION .data
|
||||
@@ -64,153 +64,152 @@ SECTION .data
|
||||
SECTION .text
|
||||
|
||||
;*******************************************************
|
||||
; Set up Vesa 2
|
||||
; Set up Vesa 2
|
||||
;*******************************************************
|
||||
|
||||
NEWSYM InitVesa12
|
||||
;-------------------------------------------------;
|
||||
; First - allocate some bytes in DOS memory for ;
|
||||
; communication with VBE ;
|
||||
; communication with VBE ;
|
||||
;-------------------------------------------------;
|
||||
|
||||
mov eax,0100h
|
||||
mov ebx,512/16 ; 512 bytes
|
||||
int 31h ; Function 31h,100h - Allocate DOS memory (512 bytes)
|
||||
jnc .gotmem
|
||||
mov edx,.nomemmessage
|
||||
jmp VESA12EXITTODOS
|
||||
mov eax,0100h
|
||||
mov ebx,512/16 ; 512 bytes
|
||||
int 31h ; Function 31h,100h - Allocate DOS memory (512 bytes)
|
||||
jnc .gotmem
|
||||
mov edx,.nomemmessage
|
||||
jmp VESA12EXITTODOS
|
||||
.gotmem
|
||||
mov fs,dx ; FS now points to the DOS buffer
|
||||
mov fs,dx ; FS now points to the DOS buffer
|
||||
|
||||
|
||||
;--------------------------------------------------;
|
||||
; Now, get information about the video card into ;
|
||||
; a data structure ;
|
||||
;--------------------------------------------------;
|
||||
;--------------------------------------------------;
|
||||
; Now, get information about the video card into ;
|
||||
; a data structure ;
|
||||
;--------------------------------------------------;
|
||||
|
||||
mov edi,RMREGS
|
||||
mov dword[fs:0],'VBE1' ; Request VBE 2.0 info
|
||||
mov dword[RMREGS.eax],4f00h
|
||||
mov word[RMREGS.es],ax ; Real mode segment of DOS
|
||||
; buffer
|
||||
mov dword[RMREGS.edi],0
|
||||
mov edi,RMREGS
|
||||
mov dword[fs:0],'VBE1' ; Request VBE 2.0 info
|
||||
mov dword[RMREGS.eax],4f00h
|
||||
mov [RMREGS.es],ax ; Real mode segment of DOS buffer
|
||||
mov dword[RMREGS.edi],0
|
||||
|
||||
push es
|
||||
push ds
|
||||
pop es
|
||||
mov eax,300h
|
||||
mov ebx,10h
|
||||
xor ecx,ecx
|
||||
int 31h ; Simulate real mode interrupt
|
||||
pop es
|
||||
push es
|
||||
push ds
|
||||
pop es
|
||||
mov eax,300h
|
||||
mov ebx,10h
|
||||
xor ecx,ecx
|
||||
int 31h ; Simulate real mode interrupt
|
||||
pop es
|
||||
|
||||
jnc .int1ok
|
||||
mov edx,.noint1message
|
||||
jmp VESA12EXITTODOS
|
||||
jnc .int1ok
|
||||
mov edx,.noint1message
|
||||
jmp VESA12EXITTODOS
|
||||
|
||||
.int1ok ; Real mode int successful!!!
|
||||
mov eax,[RMREGS.eax]
|
||||
cmp al,4fh ; Check vbe interrupt went OK
|
||||
jz .vbedetected
|
||||
mov edx,.novbemessage
|
||||
jmp VESA12EXITTODOS
|
||||
.int1ok ; Real mode int successful!!!
|
||||
mov eax,[RMREGS.eax]
|
||||
cmp al,4fh ; Check vbe interrupt went OK
|
||||
jz .vbedetected
|
||||
mov edx,.novbemessage
|
||||
jmp VESA12EXITTODOS
|
||||
|
||||
.vbedetected
|
||||
cmp dword[fs:0000],'VESA'
|
||||
jz .vesadetected ; Check for presence of vesa
|
||||
mov edx,.novesamessage
|
||||
jmp VESA12EXITTODOS
|
||||
.vbedetected
|
||||
cmp dword[fs:0000],'VESA'
|
||||
jz .vesadetected ; Check for presence of vesa
|
||||
mov edx,.novesamessage
|
||||
jmp VESA12EXITTODOS
|
||||
|
||||
|
||||
.vesadetected
|
||||
cmp word[fs:0004],102h
|
||||
jae .vesa12detected ; Check we've got VESA 1.2 or greater
|
||||
mov edx,.novesa2message
|
||||
jmp VESA12EXITTODOS
|
||||
.vesadetected
|
||||
cmp word[fs:0004],102h
|
||||
jae .vesa12detected ; Check we've got VESA 1.2 or greater
|
||||
mov edx,.novesa2message
|
||||
jmp VESA12EXITTODOS
|
||||
|
||||
|
||||
;-----------------------------------------------------;
|
||||
; OK - vesa 2.0 or greater has been detected. Copy ;
|
||||
; mode information into VESAmodelist ;
|
||||
;-----------------------------------------------------;
|
||||
;-----------------------------------------------------;
|
||||
; OK - vesa 2.0 or greater has been detected. Copy ;
|
||||
; mode information into VESAmodelist ;
|
||||
;-----------------------------------------------------;
|
||||
|
||||
.vesa12detected
|
||||
mov ax,[fs:12h] ; Get no. of 64k blocks
|
||||
mov [noblocks],ax
|
||||
mov ax, 2
|
||||
mov bx,[fs:10h]
|
||||
int 31h
|
||||
mov ax,[fs:12h] ; Get no. of 64k blocks
|
||||
mov [noblocks],ax
|
||||
mov ax, 2
|
||||
mov bx,[fs:10h]
|
||||
int 31h
|
||||
|
||||
jnc .wegottheselector
|
||||
mov edx, .oopsnoselector
|
||||
jmp VESA12EXITTODOS
|
||||
jnc .wegottheselector
|
||||
mov edx, .oopsnoselector
|
||||
jmp VESA12EXITTODOS
|
||||
|
||||
.wegottheselector
|
||||
.wegottheselector
|
||||
|
||||
mov gs,ax
|
||||
xor eax,eax
|
||||
mov ebp,VESAmodelist
|
||||
mov ecx,512
|
||||
mov ax,[fs:0eh]
|
||||
mov gs,ax
|
||||
xor eax,eax
|
||||
mov ebp,VESAmodelist
|
||||
mov ecx,512
|
||||
mov ax,[fs:0eh]
|
||||
|
||||
.loopcopymodes
|
||||
mov bx,[gs:eax]
|
||||
mov [ebp],bx
|
||||
cmp bx,0ffffh
|
||||
jz .copiedmodes
|
||||
add ebp,2
|
||||
add eax,2
|
||||
dec ecx
|
||||
jz .outofmodelistspace
|
||||
jmp .loopcopymodes
|
||||
.loopcopymodes
|
||||
mov bx,[gs:eax]
|
||||
mov [ebp],bx
|
||||
cmp bx,0ffffh
|
||||
jz .copiedmodes
|
||||
add ebp,2
|
||||
add eax,2
|
||||
dec ecx
|
||||
jz .outofmodelistspace
|
||||
jmp .loopcopymodes
|
||||
|
||||
.outofmodelistspace
|
||||
mov edx,.outofmodelistspacemessage
|
||||
jmp VESA12EXITTODOS
|
||||
.outofmodelistspace
|
||||
mov edx,.outofmodelistspacemessage
|
||||
jmp VESA12EXITTODOS
|
||||
|
||||
;----------------------------------------------;
|
||||
; OK - Scan the mode list to find a matching ;
|
||||
; mode for vesa2_x, vesa2_y and vesa2_depth ;
|
||||
;----------------------------------------------;
|
||||
;----------------------------------------------;
|
||||
; OK - Scan the mode list to find a matching ;
|
||||
; mode for vesa2_x, vesa2_y and vesa2_depth ;
|
||||
;----------------------------------------------;
|
||||
|
||||
.copiedmodes
|
||||
|
||||
mov ebp,VESAmodelist
|
||||
xor ecx,ecx
|
||||
mov ebp,VESAmodelist
|
||||
xor ecx,ecx
|
||||
|
||||
.loopcheckmodes
|
||||
mov cx, [ebp]
|
||||
cmp cx, 0ffffh
|
||||
jnz .notendoflist
|
||||
mov cx, [ebp]
|
||||
cmp cx, 0ffffh
|
||||
jnz .notendoflist
|
||||
|
||||
mov edx,.endoflist
|
||||
jmp VESA12EXITTODOS
|
||||
mov edx,.endoflist
|
||||
jmp VESA12EXITTODOS
|
||||
|
||||
.notendoflist
|
||||
|
||||
mov edi, RMREGS
|
||||
mov dword[RMREGS.eax],4f01h
|
||||
mov dword[RMREGS.ebx],0
|
||||
mov [RMREGS.ecx],ecx
|
||||
mov dword[RMREGS.edi],0
|
||||
mov edi, RMREGS
|
||||
mov dword[RMREGS.eax],4f01h
|
||||
mov dword[RMREGS.ebx],0
|
||||
mov [RMREGS.ecx],ecx
|
||||
mov dword[RMREGS.edi],0
|
||||
|
||||
push es
|
||||
push ds
|
||||
pop es
|
||||
mov eax,300h
|
||||
mov ebx,10h
|
||||
xor ecx,ecx
|
||||
int 31h ; Simulate real mode interrupt
|
||||
pop es
|
||||
jnc .modecheckok
|
||||
mov edx,.modecheckfail
|
||||
jmp VESA12EXITTODOS
|
||||
push es
|
||||
push ds
|
||||
pop es
|
||||
mov eax,300h
|
||||
mov ebx,10h
|
||||
xor ecx,ecx
|
||||
int 31h ; Simulate real mode interrupt
|
||||
pop es
|
||||
jnc .modecheckok
|
||||
mov edx,.modecheckfail
|
||||
jmp VESA12EXITTODOS
|
||||
|
||||
.modecheckok
|
||||
add ebp,2
|
||||
.modecheckok
|
||||
add ebp,2
|
||||
|
||||
test word[fs:0000h],1b
|
||||
jz near .loopcheckmodes ; If mode is not available
|
||||
test word[fs:0000h],1b
|
||||
jz near .loopcheckmodes ; If mode is not available
|
||||
|
||||
;
|
||||
; xor eax,eax
|
||||
@@ -233,15 +232,15 @@ NEWSYM InitVesa12
|
||||
; mov dl,10
|
||||
; int 21h
|
||||
|
||||
mov eax,[vesa2_x]
|
||||
cmp [fs:12h],ax ; Check that the height matches
|
||||
jnz near .loopcheckmodes
|
||||
mov eax,[vesa2_y]
|
||||
cmp [fs:14h],ax ; Check that the width matches
|
||||
jnz near .loopcheckmodes
|
||||
mov al,[vesa2_bits]
|
||||
cmp [fs:19h],al ; Check bits/pixel for match
|
||||
jnz near .loopcheckmodes
|
||||
mov eax,[vesa2_x]
|
||||
cmp [fs:12h],ax ; Check that the height matches
|
||||
jnz near .loopcheckmodes
|
||||
mov eax,[vesa2_y]
|
||||
cmp [fs:14h],ax ; Check that the width matches
|
||||
jnz near .loopcheckmodes
|
||||
mov al,[vesa2_bits]
|
||||
cmp [fs:19h],al ; Check bits/pixel for match
|
||||
jnz near .loopcheckmodes
|
||||
|
||||
; mov ah,07h
|
||||
; int 21h
|
||||
@@ -257,23 +256,23 @@ NEWSYM InitVesa12
|
||||
; 1 = Window is writeable
|
||||
; D3-D7 = Reserved
|
||||
|
||||
mov byte[.whichwin],0
|
||||
mov al,[fs:2] ; Get window A attributes
|
||||
and al,0100b
|
||||
cmp al,0100b
|
||||
je .foundwin ; Mode supported
|
||||
mov al,[fs:3] ; Get window B attributes
|
||||
and al,0100b
|
||||
cmp al,0100b
|
||||
jne .foundwin ; Mode not supported
|
||||
mov byte[.whichwin],1
|
||||
mov byte[.whichwin],0
|
||||
mov al,[fs:2] ; Get window A attributes
|
||||
and al,0100b
|
||||
cmp al,0100b
|
||||
je .foundwin ; Mode supported
|
||||
mov al,[fs:3] ; Get window B attributes
|
||||
and al,0100b
|
||||
cmp al,0100b
|
||||
jne .foundwin ; Mode not supported
|
||||
mov byte[.whichwin],1
|
||||
.foundwin
|
||||
|
||||
; Success - a match has been found!!
|
||||
; Success - a match has been found!!
|
||||
|
||||
sub ebp,2
|
||||
mov ax,[ebp]
|
||||
mov [vesamode],ax ; Store vesa 1.2 mode number
|
||||
sub ebp,2
|
||||
mov ax,[ebp]
|
||||
mov [vesamode],ax ; Store vesa 1.2 mode number
|
||||
; and eax,0FFFFh
|
||||
; push eax
|
||||
; mov ax,0003h
|
||||
@@ -282,229 +281,227 @@ NEWSYM InitVesa12
|
||||
; call printnum
|
||||
; jmp DosExit
|
||||
|
||||
mov ax,[fs:10h]
|
||||
mov byte[vesa2red10],0
|
||||
mov byte[vesa2_rposng],11
|
||||
mov byte[vesa2_gposng],6
|
||||
mov byte[vesa2_bposng],0
|
||||
mov dword[vesa2_clbitng],1111011111011110b
|
||||
mov dword[vesa2_clbitng2],11110111110111101111011111011110b
|
||||
mov dword[vesa2_clbitng2+4],11110111110111101111011111011110b
|
||||
mov dword[vesa2_clbitng3],0111101111101111b
|
||||
mov [bytesperscanline],ax ; Store bytes per scan line
|
||||
cmp byte[fs:20h],10
|
||||
jne .nored10
|
||||
mov byte[fs:20h],11
|
||||
mov byte[vesa2red10],1
|
||||
mov byte[vesa2_rposng],10
|
||||
mov byte[vesa2_gposng],5
|
||||
mov dword[vesa2_clbitng],0111101111011110b
|
||||
mov dword[vesa2_clbitng2],01111011110111100111101111011110b
|
||||
mov dword[vesa2_clbitng2+4],01111011110111100111101111011110b
|
||||
mov dword[vesa2_clbitng3],0011110111101111b
|
||||
mov ax,[fs:10h]
|
||||
mov byte[vesa2red10],0
|
||||
mov byte[vesa2_rposng],11
|
||||
mov byte[vesa2_gposng],6
|
||||
mov byte[vesa2_bposng],0
|
||||
mov dword[vesa2_clbitng],1111011111011110b
|
||||
mov dword[vesa2_clbitng2],11110111110111101111011111011110b
|
||||
mov dword[vesa2_clbitng2+4],11110111110111101111011111011110b
|
||||
mov dword[vesa2_clbitng3],0111101111101111b
|
||||
mov [bytesperscanline],ax ; Store bytes per scan line
|
||||
cmp byte[fs:20h],10
|
||||
jne .nored10
|
||||
mov byte[fs:20h],11
|
||||
mov byte[vesa2red10],1
|
||||
mov byte[vesa2_rposng],10
|
||||
mov byte[vesa2_gposng],5
|
||||
mov dword[vesa2_clbitng],0111101111011110b
|
||||
mov dword[vesa2_clbitng2],01111011110111100111101111011110b
|
||||
mov dword[vesa2_clbitng2+4],01111011110111100111101111011110b
|
||||
mov dword[vesa2_clbitng3],0011110111101111b
|
||||
.nored10
|
||||
; fix up bit lengths
|
||||
mov al,16
|
||||
sub al,[fs:20h]
|
||||
mov ah,[fs:22h]
|
||||
sub ah,[fs:20h]
|
||||
mov bl,[fs:24h]
|
||||
sub bl,[fs:20h]
|
||||
mov bh,al
|
||||
cmp bh,ah
|
||||
jb .scheck1
|
||||
mov bh,ah
|
||||
; fix up bit lengths
|
||||
mov al,16
|
||||
sub al,[fs:20h]
|
||||
mov ah,[fs:22h]
|
||||
sub ah,[fs:20h]
|
||||
mov bl,[fs:24h]
|
||||
sub bl,[fs:20h]
|
||||
mov bh,al
|
||||
cmp bh,ah
|
||||
jb .scheck1
|
||||
mov bh,ah
|
||||
.scheck1
|
||||
cmp bh,bl
|
||||
jb .scheck2
|
||||
mov bh,bl
|
||||
cmp bh,bl
|
||||
jb .scheck2
|
||||
mov bh,bl
|
||||
.scheck2
|
||||
mov byte[fs:19h],5
|
||||
mov byte[fs:19h],5
|
||||
|
||||
mov al,16
|
||||
sub al,[fs:22h]
|
||||
mov ah,[fs:20h]
|
||||
sub ah,[fs:22h]
|
||||
mov bl,[fs:24h]
|
||||
sub bl,[fs:22h]
|
||||
mov bh,al
|
||||
cmp bh,ah
|
||||
jb .scheck1b
|
||||
mov bh,ah
|
||||
mov al,16
|
||||
sub al,[fs:22h]
|
||||
mov ah,[fs:20h]
|
||||
sub ah,[fs:22h]
|
||||
mov bl,[fs:24h]
|
||||
sub bl,[fs:22h]
|
||||
mov bh,al
|
||||
cmp bh,ah
|
||||
jb .scheck1b
|
||||
mov bh,ah
|
||||
.scheck1b
|
||||
cmp bh,bl
|
||||
jb .scheck2b
|
||||
mov bh,bl
|
||||
cmp bh,bl
|
||||
jb .scheck2b
|
||||
mov bh,bl
|
||||
.scheck2b
|
||||
mov [fs:21h],bh
|
||||
mov [fs:21h],bh
|
||||
|
||||
mov al,16
|
||||
sub al,[fs:24h]
|
||||
mov ah,[fs:20h]
|
||||
sub ah,[fs:24h]
|
||||
mov bl,[fs:22h]
|
||||
sub bl,[fs:24h]
|
||||
mov bh,al
|
||||
cmp bh,ah
|
||||
jb .scheck1c
|
||||
mov bh,ah
|
||||
mov al,16
|
||||
sub al,[fs:24h]
|
||||
mov ah,[fs:20h]
|
||||
sub ah,[fs:24h]
|
||||
mov bl,[fs:22h]
|
||||
sub bl,[fs:24h]
|
||||
mov bh,al
|
||||
cmp bh,ah
|
||||
jb .scheck1c
|
||||
mov bh,ah
|
||||
.scheck1c
|
||||
cmp bh,bl
|
||||
jb .scheck2c
|
||||
mov bh,bl
|
||||
cmp bh,bl
|
||||
jb .scheck2c
|
||||
mov bh,bl
|
||||
.scheck2c
|
||||
mov [fs:23h],bh
|
||||
mov [fs:23h],bh
|
||||
|
||||
mov word[vesa2_clbit],0
|
||||
mov word[vesa2_clbit],0
|
||||
|
||||
cmp byte[fs:20h],10
|
||||
jne .nottopbit
|
||||
mov word[vesa2_usbit],8000h
|
||||
cmp byte[fs:20h],10
|
||||
jne .nottopbit
|
||||
mov word[vesa2_usbit],8000h
|
||||
.nottopbit
|
||||
|
||||
; Process Red Stuff
|
||||
mov al,[fs:20h] ; bit sizes = [fs:19h,21h,23h]
|
||||
mov cl,al
|
||||
mov bx,1
|
||||
shl bx,cl
|
||||
cmp byte[fs:19h],6
|
||||
jne .no6bit
|
||||
mov [vesa2_usbit],bx
|
||||
inc al
|
||||
; Process Red Stuff
|
||||
mov al,[fs:20h] ; bit sizes = [fs:19h,21h,23h]
|
||||
mov cl,al
|
||||
mov bx,1
|
||||
shl bx,cl
|
||||
cmp byte[fs:19h],6
|
||||
jne .no6bit
|
||||
mov [vesa2_usbit],bx
|
||||
inc al
|
||||
.no6bit
|
||||
or [vesa2_clbit],bx
|
||||
mov [vesa2_rpos],al
|
||||
dec al
|
||||
mov cl,al
|
||||
mov bx,001Fh
|
||||
cmp cl,0FFh
|
||||
je .shrr
|
||||
shl bx,cl
|
||||
jmp .shlr
|
||||
or [vesa2_clbit],bx
|
||||
mov [vesa2_rpos],al
|
||||
dec al
|
||||
mov cl,al
|
||||
mov bx,001Fh
|
||||
cmp cl,0FFh
|
||||
je .shrr
|
||||
shl bx,cl
|
||||
jmp .shlr
|
||||
.shrr
|
||||
shr bx,1
|
||||
shr bx,1
|
||||
.shlr
|
||||
mov [vesa2_rfull],bx
|
||||
add al,5
|
||||
mov bx,1
|
||||
mov cl,al
|
||||
shl bx,cl
|
||||
mov [vesa2_rtrcl],bx
|
||||
xor bx,0FFFFh
|
||||
mov [vesa2_rtrcla],bx
|
||||
mov [vesa2_rfull],bx
|
||||
add al,5
|
||||
mov bx,1
|
||||
mov cl,al
|
||||
shl bx,cl
|
||||
mov [vesa2_rtrcl],bx
|
||||
xor bx,0FFFFh
|
||||
mov [vesa2_rtrcla],bx
|
||||
|
||||
; Process Green Stuff
|
||||
mov al,[fs:22h]
|
||||
mov cl,al
|
||||
mov bx,1
|
||||
shl bx,cl
|
||||
cmp byte[fs:21h],6
|
||||
jne .no6bitb
|
||||
mov [vesa2_usbit],bx
|
||||
inc al
|
||||
; Process Green Stuff
|
||||
mov al,[fs:22h]
|
||||
mov cl,al
|
||||
mov bx,1
|
||||
shl bx,cl
|
||||
cmp byte[fs:21h],6
|
||||
jne .no6bitb
|
||||
mov [vesa2_usbit],bx
|
||||
inc al
|
||||
.no6bitb
|
||||
or [vesa2_clbit],bx
|
||||
mov [vesa2_gpos],al
|
||||
dec al
|
||||
mov cl,al
|
||||
mov bx,001Fh
|
||||
cmp cl,0FFh
|
||||
je .shrg
|
||||
shl bx,cl
|
||||
jmp .shlg
|
||||
or [vesa2_clbit],bx
|
||||
mov [vesa2_gpos],al
|
||||
dec al
|
||||
mov cl,al
|
||||
mov bx,001Fh
|
||||
cmp cl,0FFh
|
||||
je .shrg
|
||||
shl bx,cl
|
||||
jmp .shlg
|
||||
.shrg
|
||||
shr bx,1
|
||||
shr bx,1
|
||||
.shlg
|
||||
mov [vesa2_gfull],bx
|
||||
add al,5
|
||||
mov bx,1
|
||||
mov cl,al
|
||||
shl bx,cl
|
||||
mov [vesa2_gtrcl],bx
|
||||
xor bx,0FFFFh
|
||||
mov [vesa2_gtrcla],bx
|
||||
mov [vesa2_gfull],bx
|
||||
add al,5
|
||||
mov bx,1
|
||||
mov cl,al
|
||||
shl bx,cl
|
||||
mov [vesa2_gtrcl],bx
|
||||
xor bx,0FFFFh
|
||||
mov [vesa2_gtrcla],bx
|
||||
|
||||
; Process Blue Stuff
|
||||
mov al,[fs:24h]
|
||||
mov cl,al
|
||||
mov bx,1
|
||||
shl bx,cl
|
||||
cmp byte[fs:23h],6
|
||||
jne .no6bitc
|
||||
mov [vesa2_usbit],bx
|
||||
inc al
|
||||
; Process Blue Stuff
|
||||
mov al,[fs:24h]
|
||||
mov cl,al
|
||||
mov bx,1
|
||||
shl bx,cl
|
||||
cmp byte[fs:23h],6
|
||||
jne .no6bitc
|
||||
mov [vesa2_usbit],bx
|
||||
inc al
|
||||
.no6bitc
|
||||
or [vesa2_clbit],bx
|
||||
mov [vesa2_bpos],al
|
||||
dec al
|
||||
mov cl,al
|
||||
mov bx,001Fh
|
||||
cmp cl,0FFh
|
||||
je .shrb
|
||||
shl bx,cl
|
||||
jmp .shlb
|
||||
or [vesa2_clbit],bx
|
||||
mov [vesa2_bpos],al
|
||||
dec al
|
||||
mov cl,al
|
||||
mov bx,001Fh
|
||||
cmp cl,0FFh
|
||||
je .shrb
|
||||
shl bx,cl
|
||||
jmp .shlb
|
||||
.shrb
|
||||
shr bx,1
|
||||
shr bx,1
|
||||
.shlb
|
||||
mov [vesa2_bfull],bx
|
||||
add al,5
|
||||
mov bx,1
|
||||
mov cl,al
|
||||
shl bx,cl
|
||||
mov [vesa2_btrcl],bx
|
||||
xor bx,0FFFFh
|
||||
mov [vesa2_btrcla],bx
|
||||
mov [vesa2_bfull],bx
|
||||
add al,5
|
||||
mov bx,1
|
||||
mov cl,al
|
||||
shl bx,cl
|
||||
mov [vesa2_btrcl],bx
|
||||
xor bx,0FFFFh
|
||||
mov [vesa2_btrcla],bx
|
||||
|
||||
xor word[vesa2_clbit],0FFFFh
|
||||
xor word[vesa2_clbit],0FFFFh
|
||||
|
||||
mov ax,[fs:4]
|
||||
mov [granularity],ax
|
||||
xor edx,edx
|
||||
mov ax,64
|
||||
mov bx,[granularity]
|
||||
div bx
|
||||
mov [granadd],ax
|
||||
mov ax,[fs:4]
|
||||
mov [granularity],ax
|
||||
xor edx,edx
|
||||
mov ax,64
|
||||
mov bx,[granularity]
|
||||
div bx
|
||||
mov [granadd],ax
|
||||
|
||||
call genfulladdtab
|
||||
call genfulladdtab
|
||||
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
xor ecx,ecx
|
||||
xor edx,edx
|
||||
mov ax,4f02h
|
||||
mov bx,[vesamode]
|
||||
int 10h ; Set the vesa mode
|
||||
cmp ax,004fh
|
||||
jz .modesetok
|
||||
mov edx,.unableset
|
||||
jmp VESA12EXITTODOS ; Failure!!!
|
||||
xor eax,eax
|
||||
xor ebx,ebx
|
||||
xor ecx,ecx
|
||||
xor edx,edx
|
||||
mov ax,4f02h
|
||||
mov bx,[vesamode]
|
||||
int 10h ; Set the vesa mode
|
||||
cmp ax,004fh
|
||||
jz .modesetok
|
||||
mov edx,.unableset
|
||||
jmp VESA12EXITTODOS ; Failure!!!
|
||||
|
||||
.modesetok
|
||||
.modesetok
|
||||
;******************************* EXTRA BIT ****************************
|
||||
|
||||
ret
|
||||
ret
|
||||
|
||||
; Check logical scanline length
|
||||
mov eax,4f06h
|
||||
mov ebx,1
|
||||
int 10h
|
||||
cmp cx,[vesa2_x]
|
||||
je .correctwidth
|
||||
; Check logical scanline length
|
||||
mov eax,4f06h
|
||||
mov ebx,1
|
||||
int 10h
|
||||
cmp cx,[vesa2_x]
|
||||
je .correctwidth
|
||||
|
||||
mov eax,4f06h ; VBE Set/Get logical scan line
|
||||
; length
|
||||
mov ebx,0 ; Set scan line length in
|
||||
; pixels
|
||||
mov ecx, [vesa2_x] ; Desired screen width
|
||||
int 10h
|
||||
cmp ax,04fh
|
||||
jz .correctwidth
|
||||
mov edx, .unablescan
|
||||
jmp VESA12EXITTODOS ; Failure!!!
|
||||
mov eax,4f06h ; VBE Set/Get logical scan line length
|
||||
mov ebx,0 ; Set scan line length in pixels
|
||||
mov ecx, [vesa2_x] ; Desired screen width
|
||||
int 10h
|
||||
cmp ax,04fh
|
||||
jz .correctwidth
|
||||
mov edx, .unablescan
|
||||
jmp VESA12EXITTODOS ; Failure!!!
|
||||
|
||||
.correctwidth
|
||||
.correctwidth
|
||||
|
||||
ret
|
||||
ret
|
||||
|
||||
SECTION .data
|
||||
.nomemmessage db ': Unable to locate DOS memory.$'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,6 @@
|
||||
|
||||
; by kode54, stainless
|
||||
|
||||
%ifdef __MSDOS__
|
||||
%macro SetVGAMode 1
|
||||
mov byte[cbitmode],0
|
||||
|
||||
@@ -152,5 +151,3 @@ SECTION .data
|
||||
|
||||
|
||||
SECTION .text
|
||||
%endif
|
||||
|
||||
|
||||
@@ -79,9 +79,9 @@ EXTSYM statesaver,loadstate2,vidbuffer,ASCII2Font,hirestiledat,showallext
|
||||
EXTSYM scanlines,statefileloc,pl1selk,pl2selk,fnamest,sprlefttot,spritetablea
|
||||
EXTSYM fnames,CHIPBATT,sfxramdata,setaramdata,SETAEnable,cgram,srama,tempco0
|
||||
EXTSYM prevbright,maxbr,prevpal,coladdr,coladdg,coladdb,scaddtype,ScreenScale
|
||||
EXTSYM initvideo2,initvideo,pressed,UpdateDevices,memtabler8
|
||||
EXTSYM initvideo,pressed,UpdateDevices,memtabler8
|
||||
EXTSYM memtablew8,writeon,pl1contrl,pl2contrl,JoyRead,SetInputDevice,delay
|
||||
EXTSYM SetInputDevice209,FPSOn,RevStereo,WDSPReg0C,WDSPReg1C,pl12s34,resolutn
|
||||
EXTSYM FPSOn,RevStereo,WDSPReg0C,WDSPReg1C,pl12s34,resolutn
|
||||
EXTSYM InitDrive,InitDir,createnewcfg,Makemode7Table,vidbufferofsb,ZipSupport
|
||||
EXTSYM wramdata,bgfixer,cfgnewgfx,videotroub,Open_File,Read_File
|
||||
EXTSYM Close_File,Write_File,Create_File,File_Seek,File_Seek_End,Get_Date
|
||||
@@ -149,7 +149,7 @@ EXTSYM numlockptr
|
||||
%elifdef __WIN32__
|
||||
EXTSYM initDirectDraw,reInitSound
|
||||
%elifdef __MSDOS__
|
||||
EXTSYM dssel
|
||||
EXTSYM dssel,SetInputDevice209,initvideo2
|
||||
%endif
|
||||
|
||||
%include "gui/guitools.inc"
|
||||
@@ -477,16 +477,18 @@ GUIQuickLoadUpdate:
|
||||
.off
|
||||
mov dword[GUIPrevMenuData.onoff+15],'OFF '
|
||||
.on
|
||||
mov esi,prevloadfnamel
|
||||
%ifdef __MSDOS__
|
||||
mov esi,prevloadnames
|
||||
%else
|
||||
mov esi,prevloadfnamel
|
||||
%endif
|
||||
mov edi,GUIPrevMenuData+3
|
||||
mov edx,10
|
||||
.mainloop
|
||||
mov ecx,25
|
||||
%ifdef __MSDOS__
|
||||
mov ecx,16
|
||||
%else
|
||||
mov ecx,25
|
||||
%endif
|
||||
push edi
|
||||
push esi
|
||||
@@ -525,9 +527,10 @@ GUIQuickLoadUpdate:
|
||||
.fin
|
||||
pop esi
|
||||
pop edi
|
||||
add esi,512 ;16
|
||||
%ifdef __MSDOS__
|
||||
sub esi,512-16
|
||||
add esi,16
|
||||
%else
|
||||
add esi,512 ;16
|
||||
%endif
|
||||
add edi,32
|
||||
dec edx
|
||||
|
||||
@@ -238,6 +238,7 @@ CalibrateDev1:
|
||||
mov [JoyMaxY],eax
|
||||
mov [CalibYmax],eax
|
||||
ret
|
||||
%ifdef __MSDOS__
|
||||
.port209
|
||||
cmp bl,1
|
||||
jbe .nojoy209
|
||||
@@ -305,6 +306,7 @@ CalibrateDev1:
|
||||
mov [JoyMaxY209],eax
|
||||
mov [CalibYmax209],eax
|
||||
ret
|
||||
%endif
|
||||
SECTION .bss
|
||||
.joyblx resd 1
|
||||
.joybly resd 1
|
||||
@@ -333,6 +335,7 @@ SetDevice:
|
||||
call SetInputDevice
|
||||
call UpdateDevices
|
||||
jmp .procmtap
|
||||
%ifdef __MSDOS__
|
||||
.port209
|
||||
mov dword[CalibXmin209],0
|
||||
mov ecx,[DevicePtr+eax*4]
|
||||
@@ -344,6 +347,7 @@ SetDevice:
|
||||
mov bh,[cplayernum]
|
||||
call SetInputDevice209
|
||||
call UpdateDevices
|
||||
%endif
|
||||
.procmtap
|
||||
mov byte[MultiTap],1
|
||||
cmp byte[SFXEnable],1
|
||||
|
||||
@@ -813,8 +813,8 @@ ProcessMouseButtons:
|
||||
|
||||
|
||||
GUIProcVideo:
|
||||
mov al,[GUIcurrentvideocursloc]
|
||||
%ifdef __MSDOS__
|
||||
mov al,[GUIcurrentvideocursloc]
|
||||
cmp al,3
|
||||
je .yes16b
|
||||
cmp al,5
|
||||
@@ -825,8 +825,8 @@ GUIProcVideo:
|
||||
je .yes16b
|
||||
cmp al,8
|
||||
jne .no16b
|
||||
%endif
|
||||
.yes16b
|
||||
%endif
|
||||
; mov byte[newengen],0
|
||||
; mov byte[cfgnewgfx],0
|
||||
; jmp .skipno16b
|
||||
@@ -1300,8 +1300,8 @@ GUIWinClicked:
|
||||
%%done
|
||||
mov al,%3
|
||||
mov %4,al
|
||||
call ClearScreen
|
||||
%ifdef __MSDOS__
|
||||
call ClearScreen
|
||||
cmp byte[En2xSaI],0
|
||||
jne %%nomodeq
|
||||
cmp byte[cvidmode],2
|
||||
@@ -1315,8 +1315,8 @@ GUIWinClicked:
|
||||
call initvideo2
|
||||
mov byte[cbitmode],0
|
||||
call GUISetPal
|
||||
%endif
|
||||
%%nomodex
|
||||
%endif
|
||||
ret
|
||||
%%noclick
|
||||
%endmacro
|
||||
@@ -2062,8 +2062,8 @@ DisplayGUIChoseSaveClick:
|
||||
mov ebx,[keycontrolval]
|
||||
mov byte[ebx],1
|
||||
pop ebx
|
||||
%endif
|
||||
%%notwin32
|
||||
%endif
|
||||
ret
|
||||
%%cancelkey
|
||||
xor ebx,ebx
|
||||
|
||||
@@ -433,8 +433,8 @@ GUIOutputStringwinl:
|
||||
cmp al,'%'
|
||||
jne .noperc
|
||||
call ConvertPercValue
|
||||
%endif
|
||||
.noperc
|
||||
%endif
|
||||
or al,al
|
||||
jz .nomore
|
||||
mov al,[ASCII2Font+eax]
|
||||
@@ -459,6 +459,7 @@ GUIOutputStringwinl:
|
||||
.nomore
|
||||
ret
|
||||
|
||||
%ifndef __MSDOS__
|
||||
ConvertPercValue:
|
||||
mov al,[edi+2]
|
||||
cmp al,'a'
|
||||
@@ -511,6 +512,7 @@ ConvertPercValue:
|
||||
xor eax,eax
|
||||
mov al,[edi]
|
||||
ret
|
||||
%endif
|
||||
|
||||
OutputUnder:
|
||||
cmp edx,-8
|
||||
|
||||
@@ -698,9 +698,6 @@ NEWSYM initvideo ; Returns 1 in videotroub if trouble occurs
|
||||
ret
|
||||
|
||||
|
||||
NEWSYM initvideo2 ; ModeQ scanline re-init (Keep blank on non-dos ports)
|
||||
ret
|
||||
|
||||
NEWSYM deinitvideo
|
||||
ret
|
||||
|
||||
|
||||
@@ -161,8 +161,7 @@ CPUOBJ=${CPUDIR}/dma${OE} ${CPUDIR}/dsp${OE} ${CPUDIR}/dspproc${OE}\
|
||||
${CPUDIR}/stable${OE} ${CPUDIR}/table${OE} ${CPUDIR}/tableb${OE}\
|
||||
${CPUDIR}/tablec${OE}
|
||||
|
||||
DOSOBJORIG=${DOSDIR}/debug${OE} ${DOSDIR}/joy${OE} ${DOSDIR}/vesa2${OE}\
|
||||
${DOSDIR}/initvid${OE} ${DOSDIR}/sw${OE} ${DOSDIR}/gppro${OE} ${DOSDIR}/vesa12${OE}
|
||||
DOSOBJORIG=${DOSDIR}/debug${OE} ${DOSDIR}/joy${OE} ${DOSDIR}/vesa2${OE}
|
||||
|
||||
EFFECTSOBJ=${EFFECTSDIR}/burn${OE} ${EFFECTSDIR}/water${OE} ${EFFECTSDIR}/smoke${OE}
|
||||
|
||||
@@ -199,7 +198,8 @@ ZIPOBJ=${ZIPDIR}/unzip${OE} ${ZIPDIR}/zpng${OE}
|
||||
OBJSORIG=${CHIPSOBJ} ${CPUOBJ} ${GUIOBJ} ${VIDEOBJ} ${MAINOBJ} ${ZIPOBJ} ${EFFECTSOBJ} ${JMAOBJ}
|
||||
|
||||
ifeq (${OS},__MSDOS__)
|
||||
DOSOBJ=${DOSOBJORIG} ${DOSDIR}/dosintrf${OE} ${DOSDIR}/sound${OE} ${DOSDIR}/zfile${OE}
|
||||
DOSOBJ=${DOSOBJORIG} ${DOSDIR}/dosintrf${OE} ${DOSDIR}/gppro${OE} ${DOSDIR}/initvid${OE}\
|
||||
${DOSDIR}/sound${OE} ${DOSDIR}/sw${OE} ${DOSDIR}/vesa12${OE} ${DOSDIR}/zfile${OE}
|
||||
OBJS=${OBJSORIG} ${DOSOBJ}
|
||||
DELETEOBJS=${OBJSORIG} ${DOSOBJ}
|
||||
endif
|
||||
|
||||
@@ -1542,6 +1542,10 @@ NEWSYM copyvesa2640x400x16b
|
||||
;*******************************************************
|
||||
%endif
|
||||
|
||||
SECTION .bss
|
||||
NEWSYM res640, resb 1
|
||||
NEWSYM res480, resb 1
|
||||
|
||||
SECTION .data
|
||||
|
||||
NEWSYM EagleHold, dd 0
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
EXTSYM BGMA,V8Mode,antienab,cacheud,cbitmode,ccud,cfield,cgram,coladdb,coladdg
|
||||
EXTSYM coladdr,curblank,curfps,cvidmode,delay,extlatch,fnamest,En2xSaI
|
||||
EXTSYM gammalevel,hirestiledat,ignor512,latchx,latchy,maxbr,ForceNewGfxOff
|
||||
EXTSYM newengen,nextframe,objptr,pressed,prevpal,res512switch,res640,resolutn
|
||||
EXTSYM newengen,nextframe,objptr,pressed,prevpal,res512switch,resolutn
|
||||
EXTSYM romispal,scaddtype,scanlines,selcA000,snesmouse,t1cc,vcache4b,vesa2_bpos
|
||||
EXTSYM spritetablea,vesa2_clbit,vesa2_gpos,vesa2_rpos,vesa2red10,vesa2selec
|
||||
EXTSYM vidbuffer,vram,KeyStateSelct,soundon,Open_File,Read_File
|
||||
|
||||
Reference in New Issue
Block a user