IF 0 Copyright 2001-2015 John Wiseman G8BPQ This file is part of LinBPQ/BPQ32. LinBPQ/BPQ32 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 3 of the License, or (at your option) any later version. LinBPQ/BPQ32 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 LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses ENDIF IFNDEF BPQ64 PAGE 56,132 ; .386 ; ; SEGMENT definitions and order ; ;* 32 Bit code _TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' _TEXT ENDS ;* Contains 32 Bit data _BPQDATA SEGMENT DWORD PUBLIC 'DATA' _BPQDATA ENDS ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:FLAT OFFSET32 EQU _BPQDATA SEGMENT extern _APISemaphore:DWORD ApiEAX DD 0; ApiEBX DD 0; ApiECX DD 0; ApiEDX DD 0; ApiESI DD 0; ApiEDI DD 0; _BPQDATA ENDS _TEXT SEGMENT ; EXTRN _CHOSTAPI:NEAR MARKER DB 'G8BPQ' ; MUST BE JUST BEFORE INT 7F ENTRY DB 4 ; MAJORVERSION DB 9 ; MINORVERSION PUBLIC _BPQHOSTAPI _BPQHOSTAPI: ; ; SPECIAL INTERFACE, MAINLY FOR EXTERNAL HOST MODE SUPPORT PROGS ; extrn _GetSemaphore:near extrn _FreeSemaphore:near extrn _Check_Timer:near pushad call _Check_Timer push offset _APISemaphore call _GetSemaphore add esp, 4 popad ; Params are 16 bits movzx eax,ax movzx ebx,bx movzx ecx,cx movzx edx,dx mov ApiEAX, eax mov ApiEBX, ebx mov ApiECX, ecx mov ApiEDX, edx mov ApiESI, esi mov ApiEDI, edi lea eax,ApiEDI push eax lea eax,ApiESI push eax lea eax,ApiEDX push eax lea eax,ApiECX push eax lea eax,ApiEBX push eax lea eax,ApiEAX push eax call _CHOSTAPI add esp, 24 mov eax,ApiEAX mov ebx,ApiEBX mov ecx,ApiECX mov edx,ApiEDX mov esi,ApiESI mov esi,ApiEDI pushad push offset _APISemaphore call _FreeSemaphore add esp, 4 popad ret _TEXT ENDS ENDIF END