Annotation of src/dosext.h, revision 1.1.1.1

1.1       root        1: #ifndef DOSEXTH
                      2: #define DOSEXTH
                      3: 
                      4: RCSTART
                      5: 
                      6: #ifdef __RAD32__
                      7: 
                      8: #ifdef __WATCOMC__
                      9: #pragma pack(1)
                     10: #endif
                     11: 
                     12: void* RADLINK AllocDOS(u16 para);
                     13: 
                     14: void RADLINK FreeDOS(void* p);
                     15: 
                     16: s32 RADLINK mem386();    
                     17: 
                     18:   void* RealToPtr(u32 seg, u32 ofs);
                     19:   #pragma aux RealToPtr = "shl eax,4" "add eax,ebx" parm [EAX] [EBX];
                     20: 
                     21:   #define SegToPtr(seg) ((void*)((u32)seg<<4))
                     22: 
                     23:   void* RealPtrToPtr(void* RealPtr);
                     24:   #pragma aux RealPtrToPtr = "shld ebx,eax,20" "and eax,0xffff" "and ebx,0xffff0" "add eax,ebx" parm [EAX] modify [EBX];
                     25: 
                     26:   void* PtrToRealPtr(void* Ptr);
                     27:   #pragma aux PtrToRealPtr = "shrd eax,ebx,20" "and ebx,0xf" "mov ax,bx" parm [EBX] modify [EBX EAX];
                     28: 
                     29:   #define PtrToRealSeg(ptr) ((u16)((u32)ptr>>4))
                     30: 
                     31:   typedef struct SimStructtag {
                     32:     u32 edi;
                     33:     u32 esi;
                     34:     u32 ebp;
                     35:     u32 reserved;
                     36:     u32 ebx;
                     37:     u32 edx;
                     38:     u32 ecx;
                     39:     u32 eax;
                     40:     u16 flags;
                     41:     u16 es,ds,fs,gs,ip,cs,sp,ss;
                     42:   } SimStruct;
                     43: 
                     44: #ifdef __RADWINEXT__
                     45: 
                     46: u32 WinGet16(void*p);
                     47: #pragma aux WinGet16 = \
                     48:   "mov ax,0"    \
                     49:   "mov cx,1"    \
                     50:   "int 031h"    \
                     51:   "mov di,ax"   \
                     52:   "mov ax,6"    \
                     53:   "mov bx,ds"   \
                     54:   "int 31h"     \
                     55:   "shl ecx,16"  \
                     56:   "mov cx,dx"   \
                     57:   "add ecx,esi" \
                     58:   "mov dx,cx"   \
                     59:   "shr ecx,16"  \
                     60:   "mov ax,7"    \
                     61:   "mov bx,di"   \
                     62:   "int 31h"     \
                     63:   "mov ax,8"    \
                     64:   "mov cx,0"    \
                     65:   "mov dx,64000" \
                     66:   "int 31h"     \
                     67:   "shl ebx,16"  \
                     68:   parm [ESI]    \
                     69:   modify [EAX EBX ECX EDX EDI ESI] \
                     70:   value [ebx];
                     71: 
                     72: void WinFree16(void*p);
                     73: #pragma aux WinFree16 = \
                     74:   "mov ax,1"         \
                     75:   "shr ebx,16"       \
                     76:   "int 31h"          \
                     77:   parm [ebx]         \
                     78:   modify [ebx eax];
                     79: 
                     80: #else
                     81: 
                     82: #define WinGet16
                     83: #define WinFree16(p)
                     84: 
                     85: #endif
                     86:  
                     87: void RADLINK SimInt(u16 Int,SimStruct far*ss);
                     88: 
                     89: #ifdef __WATCOMC__
                     90: #pragma pack()
                     91: #endif
                     92: 
                     93: #else
                     94: 
                     95: #ifdef __WATCOMC__
                     96: 
                     97: u32 WinGet16(u32,u16 ds);
                     98: #pragma aux WinGet16 = \
                     99:   "mov ax,6"    \
                    100:   "int 31h"     \
                    101:   "add dx,si"   \
                    102:   "adc di,cx"   \
                    103:   "mov ax,0"    \
                    104:   "mov cx,1"    \
                    105:   "int 031h"    \
                    106:   "mov bx,ax"   \
                    107:   "mov ax,7"    \
                    108:   "mov cx,di"   \
                    109:   "int 031h"    \
                    110:   "mov ax,8"    \
                    111:   "mov cx,0"    \
                    112:   "mov dx,64000" \
                    113:   "int 31h"     \
                    114:   "mov dx,bx"   \
                    115:   "xor ax,ax"   \
                    116:   parm [DI SI] [BX]   \
                    117:   modify [AX BX CX DX DI SI] \
                    118:   value [dx ax];
                    119: 
                    120: void WinFree16(void PTR4*p);
                    121: #pragma aux WinFree16 = \
                    122:   "mov ax,1"         \
                    123:   "int 31h"          \
                    124:   parm [bx ax]       \
                    125:   modify [bx ax];
                    126: 
                    127: #endif
                    128: 
                    129: #endif
                    130: 
                    131: RCEND
                    132: 
                    133: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.