diff --git a/libs/BorlandC/emu/e87trap.asm b/libs/BorlandC/emu/e87trap.asm index 68b65f61..b9dbf1e7 100644 --- a/libs/BorlandC/emu/e87trap.asm +++ b/libs/BorlandC/emu/e87trap.asm @@ -1,7 +1,7 @@ E87_PROG segment para public 'CODE' use16 assume cs:E87_PROG assume es:nothing, ss:nothing, ds:_STACK, fs:nothing, gs:nothing - noemul + option noemulator e87trap_10070: pop di diff --git a/libs/BorlandC/emu/nec_fpinit.asm b/libs/BorlandC/emu/nec_fpinit.asm index 159ba5ea..ae8e6f67 100644 --- a/libs/BorlandC/emu/nec_fpinit.asm +++ b/libs/BorlandC/emu/nec_fpinit.asm @@ -287,7 +287,7 @@ emu1st proc near pop ds emu1st endp - emul + option emulator public ___fpreset ___fpreset proc near @@temp1 = dword ptr -8 diff --git a/libs/BorlandC/math/ctrl87.asm b/libs/BorlandC/math/ctrl87.asm index 968315c5..9898c25c 100644 --- a/libs/BorlandC/math/ctrl87.asm +++ b/libs/BorlandC/math/ctrl87.asm @@ -8,7 +8,7 @@ __control87 proc push bp mov bp, sp sub sp, 2 - emul + option emulator fstcw [bp+@@Control] mov ax, [bp+@@new] mov bx, [bp+@@mask] diff --git a/libs/BorlandC/math/ftol.asm b/libs/BorlandC/math/ftol.asm index 062dbc6a..fc519269 100644 --- a/libs/BorlandC/math/ftol.asm +++ b/libs/BorlandC/math/ftol.asm @@ -17,7 +17,7 @@ NAME Ftol -emul ; generate emulated '87 code +option emulator ; generate emulated '87 code ; FTOL@ ; Calls to FTOL@ are generated by the compiler for code diff --git a/libs/BorlandC/nearheap.asm b/libs/BorlandC/nearheap.asm index e7c3099d..596d27f8 100644 --- a/libs/BorlandC/nearheap.asm +++ b/libs/BorlandC/nearheap.asm @@ -110,7 +110,7 @@ FreeLastBlock PROC NEAR cmp [__first],bx ;freeing the ONLY block? je @@KillHeap mov si,[bx.prev_real] ;si = next-to-last block - test BYTE PTR [si.bsize],01h + test BYTE PTR [si.NEARHEAP_Header.bsize],01h jz @@PreviousBlockIsFree @@PreviousBlockIsUsed: mov __last,si @@ -147,18 +147,18 @@ FreeLastBlock ENDP ; Returns: void ;----------------------------------------------------------------------------- FreeInnerBlock PROC NEAR - dec WORD PTR [bx.bsize] ;mark the block as free + dec WORD PTR [bx.NEARHEAP_Header.bsize] cmp bx,[__first] ;first block? je @@PreviousBlockIsUsed mov si,[bx.prev_real] ;get the previous block (si) - mov ax,[si.bsize] ;is the previous block free? + mov ax,[si.NEARHEAP_Header.bsize] test al,01h jnz @@PreviousBlockIsUsed ; join this block to the previous block @@PreviousBlockIsFree: - add ax,[bx.bsize] ;add the size of this block to - mov [si.bsize],ax ;the size of the previous block - mov di,[bx.bsize] ;get the next block (di) + add ax,[bx.NEARHEAP_Header.bsize] + mov [si.NEARHEAP_Header.bsize],ax + mov di,[bx.NEARHEAP_Header.bsize] add di,bx mov [di.prev_real],si ;adjust the prev_real pointer mov bx,si ;set up the current block @@ -166,10 +166,10 @@ FreeInnerBlock PROC NEAR @@PreviousBlockIsUsed: call InsertFreeBlock ;add it to the free queue @@CheckNextBlock: - mov di,[bx.bsize] ;get the next block (di) + mov di,[bx.NEARHEAP_Header.bsize] add di,bx - mov ax,[di.bsize] ;is the next block free? - test al,01h + mov ax,[di.NEARHEAP_Header.bsize] + test al,01h ;is the next block free? jz JoinFreeBlocks ;join this block to the next @@AllDone: ret ;all done @@ -187,7 +187,7 @@ FreeInnerBlock ENDP ; This routine falls through to PullFreeBlock ;----------------------------------------------------------------------------- JoinFreeBlocks PROC NEAR - add [bx.bsize],ax ;adjust the size of the lower block + add [bx.NEARHEAP_Header.bsize],ax mov si,di ;si = the next block after di add si,ax mov [si.prev_real],bx ;adjust the link @@ -276,8 +276,8 @@ _malloc PROC jz @@AddToHeap mov dx,bx ;dx = rover pointer @@SearchHeap: - cmp [bx.bsize],ax ;big enough to use at all? - jae @@AllocateBlock + cmp [bx.NEARHEAP_Header.bsize],ax + jae @@AllocateBlock ;big enough to use at all? @@TooSmall: mov bx,[bx.next_free] ;move to the next free block cmp bx,dx ;at the end of the list? @@ -297,10 +297,10 @@ _malloc PROC @@AllocateBlock: mov si,ax ;si = smallest divisible block size add si,FreeHeaderSize - cmp [bx.bsize],si ;big enough to break up? - jae @@DivideFreeBlock + cmp [bx.NEARHEAP_Header.bsize],si + jae @@DivideFreeBlock ;big enough to break up? call PullFreeBlock ;remove it from the free-block queue - inc [bx.bsize] ;mark it as allocated + inc [bx.NEARHEAP_Header.bsize] mov ax,bx add ax,UsedHeaderSize @@AllDone: @@ -352,7 +352,7 @@ CreateHeap PROC NEAR mov __last,bx pop ax ;retrieve the size inc ax ;mark it as allocated - mov [bx.bsize],ax + mov [bx.NEARHEAP_Header.bsize],ax add bx,UsedHeaderSize mov ax,bx ret @@ -387,7 +387,7 @@ ExtendHeap PROC NEAR mov __last,bx ;update last-block pointer pop ax ;retrieve the size inc ax ;mark it as allocated - mov [bx.bsize],ax + mov [bx.NEARHEAP_Header.bsize],ax add bx,UsedHeaderSize mov ax,bx ret @@ -406,13 +406,13 @@ ExtendHeap ENDP ; from the heap (ax) ;----------------------------------------------------------------------------- AllocatePartialBlock PROC NEAR - sub [bx.bsize],ax ;make room! + sub [bx.NEARHEAP_Header.bsize],ax ;make room! mov si,bx ;si = new block address - add si,[bx.bsize] + add si,[bx.NEARHEAP_Header.bsize] mov di,si ;di = the block after the new block add di,ax inc ax - mov [si.bsize],ax + mov [si.NEARHEAP_Header.bsize],ax mov [si.prev_real],bx mov [di.prev_real],si add si,UsedHeaderSize @@ -449,7 +449,7 @@ ExpandBlock PROC NEAR cld mov di,ax ;di = data area of new block mov si,[bp-2] ;si = old block - mov cx,[si.bsize] ;cx = old block size + mov cx,[si.NEARHEAP_Header.bsize] add si,UsedHeaderSize ;si = data area of old block push si ;save for call to _free sub cx,UsedHeaderSize+1 ;cx = number of bytes in old data area @@ -486,8 +486,8 @@ ShrinkBlock PROC NEAR cmp bx,[__last] ;last block in the heap? jne @@InnerBlock @@LastBlock: - mov [bx.bsize],ax - inc [bx.bsize] + mov [bx.NEARHEAP_Header.bsize],ax + inc [bx.NEARHEAP_Header.bsize] add ax,bx push bx ;save the old block push ax @@ -500,12 +500,12 @@ ShrinkBlock PROC NEAR add di,ax ;di = new (free) block mov [di.prev_real],bx sub dx,ax ;dx = size of new (free) block - sub [bx.bsize],dx + sub [bx.NEARHEAP_Header.bsize],dx mov si,di ;si = next block after the new one add si,dx mov [si.prev_real],di ;adjust the link inc dx ;mark it as used - mov [di.bsize],dx + mov [di.NEARHEAP_Header.bsize],dx mov cx,bx ;save the old block mov bx,di call FreeInnerBlock @@ -542,7 +542,7 @@ _realloc PROC sub bx,UsedHeaderSize ;make bx = start of block - mov cx,[bx.bsize] ;cx = size of block + mov cx,[bx.NEARHEAP_Header.bsize] dec cx mov dx,ax diff --git a/libs/BorlandC/scantod.asm b/libs/BorlandC/scantod.asm index a29b0eeb..bab31a07 100644 --- a/libs/BorlandC/scantod.asm +++ b/libs/BorlandC/scantod.asm @@ -27,7 +27,7 @@ ExtSym@ DGROUP@, WORD, __PASCAL__ ELSE jmp [__ScanTodVector] ENDIF - endp +_scantod endp public _scanrslt @@ -39,7 +39,7 @@ ExtSym@ DGROUP@, WORD, __PASCAL__ ELSE jmp [__ScanTodVector + 2] ENDIF - endp +_scanrslt endp public _scanpop _scanpop proc near @@ -50,4 +50,4 @@ ExtSym@ DGROUP@, WORD, __PASCAL__ ELSE jmp [__ScanTodVector + 4] ENDIF - endp +_scanpop endp diff --git a/libs/BorlandC/vprinter.asm b/libs/BorlandC/vprinter.asm index 93951224..79a0eeda 100644 --- a/libs/BorlandC/vprinter.asm +++ b/libs/BorlandC/vprinter.asm @@ -26,7 +26,10 @@ Hex4 proc near mov al, dl Byte2Ascii: - aam 10h + ; Hack (aam 10h) + ; AAM trick to separate nibbles in AL. TASM can actually + ; assemble "aam 10h" correctly, but MASM/JWasm can't. + db 0d4h,10h xchg ah, al call Nibble2Ascii xchg ah, al diff --git a/libs/master.lib/resdata.asm b/libs/master.lib/resdata.asm index 57d4a2cd..30c2ee0f 100644 --- a/libs/master.lib/resdata.asm +++ b/libs/master.lib/resdata.asm @@ -77,7 +77,7 @@ RSDEXIST_FIND: mov CX,[BP+@@id_len] _lds SI,[BP+@@id_str] mov DI,10h ; MCBの次 - rep cmpsb + repe cmpsb je short RSDEXIST_FOUND RSDEXIST_SKIP: mov AX,ES:[_mcb_size] diff --git a/libs/master.lib/respal_exist.asm b/libs/master.lib/respal_exist.asm index 4322a3f7..e79f1400 100644 --- a/libs/master.lib/respal_exist.asm +++ b/libs/master.lib/respal_exist.asm @@ -66,7 +66,7 @@ RSPEXIST_FIND: mov DI,10h ; MCBの次 mov CX,IDLEN mov SI,offset ResPalID - rep cmpsb + repe cmpsb je short RSPEXIST_FOUND RSPEXIST_SKIP: mov AX,ES:[_mcb_size] diff --git a/libs/piloadc/piloadc.asm b/libs/piloadc/piloadc.asm index 56a42b96..f187e163 100644 --- a/libs/piloadc/piloadc.asm +++ b/libs/piloadc/piloadc.asm @@ -126,21 +126,21 @@ dsseg dw ? public PiLoad,ToneSet PiLoad proc near -@@opt = word ptr [bp+4] -@@ton = word ptr [bp+6] -@@y = word ptr [bp+8] -@@x = word ptr [bp+10] -@@bufsiz = word ptr [bp+12] -@@buf = dword ptr [bp+14] -@@nam = dword ptr [bp+18] +@@opt = word ptr 4 +@@ton = word ptr 6 +@@y = word ptr 8 +@@x = word ptr 10 +@@bufsiz = word ptr 12 +@@buf = dword ptr 14 +@@nam = dword ptr 18 push bp mov bp,sp push ds - lds dx,@@nam - mov ax,word ptr @@buf + lds dx,[bp+@@nam] + mov ax,word ptr [bp+@@buf] add ax,15 shr ax,4 - add ax,word ptr @@buf+2 + add ax,word ptr [bp+@@buf+2] mov es,ax cld mov si,dx @@ -154,14 +154,14 @@ PiLoad proc near stosb push es pop ds - mov si,@@bufsiz - mov ax,word ptr @@buf + mov si,[bp+@@bufsiz] + mov ax,word ptr [bp+@@buf] and ax,15 sub si,ax - mov bx,@@x - mov cx,@@y - mov di,@@ton - mov ax,@@opt + mov bx,[bp+@@x] + mov cx,[bp+@@y] + mov di,[bp+@@ton] + mov ax,[bp+@@opt] call piload0 pop ds pop bp diff --git a/th01_fuuin.asm b/th01_fuuin.asm index caa95f44..966565cf 100644 --- a/th01_fuuin.asm +++ b/th01_fuuin.asm @@ -10275,7 +10275,7 @@ segp = SREGS ptr -8 add sp, 0Ch mov bx, word ptr [bp+inregs+2] sub bx, 2 - mov es, [bp+segp._es] + mov es, [bp+segp+SREGS._es] mov si, es:[bx] loc_E8F1: @@ -11562,12 +11562,12 @@ E87_PROG segment para public 'CODE' use16 ; Hack. Let's better use bytes for accuracy here. tbyte_F300 db 035h, 0c2h, 068h, 021h, 0a2h, 0dah, 00fh, 0c9h, 0feh, 03fh tbyte_F30A db 035h, 0c2h, 068h, 021h, 0a2h, 0dah, 00fh, 0c9h, 0ffh, 03fh -flt_F314 dd -5.1110893e38 -flt_F318 dd -5.1117124e38 +flt_F314 dd 0FFC04200r +flt_F318 dd 0FFC04800r db 0, 4Ah, 0C0h, 0FFh flt_F320 dd 0.5 tbyte_F324 db 085h, 064h, 0deh, 0f9h, 033h, 0f3h, 004h, 0b5h, 0ffh, 03fh -flt_F32E dd 3.4028237e38 +flt_F32E dd 7F800000R ; =============== S U B R O U T I N E ======================================= diff --git a/th01_op.asm b/th01_op.asm index 28b9e509..cbdfec40 100644 --- a/th01_op.asm +++ b/th01_op.asm @@ -6383,7 +6383,7 @@ segp = SREGS ptr -8 add sp, 0Ch mov bx, word ptr [bp+inregs+2] sub bx, 2 - mov es, [bp+segp._es] + mov es, [bp+segp+SREGS._es] mov si, es:[bx] loc_D12D: @@ -9430,12 +9430,12 @@ E87_PROG segment para public 'CODE' use16 ; Hack. Let's better use bytes for accuracy here. tbyte_EAF0 db 035h, 0c2h, 068h, 021h, 0a2h, 0dah, 00fh, 0c9h, 0feh, 03fh tbyte_EAFA db 035h, 0c2h, 068h, 021h, 0a2h, 0dah, 00fh, 0c9h, 0ffh, 03fh -flt_EB04 dd -5.1110893e38 -flt_EB08 dd -5.1117124e38 +flt_EB04 dd 0FFC04200r +flt_EB08 dd 0FFC04800r db 0, 4Ah, 0C0h, 0FFh flt_EB10 dd 0.5 tbyte_EB14 db 085h, 064h, 0deh, 0f9h, 033h, 0f3h, 004h, 0b5h, 0ffh, 03fh -flt_EB1E dd 3.4028237e38 +flt_EB1E dd 7F800000R ; --------------------------------------------------------------------------- mov cl, 0 jmp short loc_EB2C diff --git a/th01_reiiden.asm b/th01_reiiden.asm index a5ae2fe6..bd1191b6 100644 --- a/th01_reiiden.asm +++ b/th01_reiiden.asm @@ -10163,7 +10163,7 @@ segp = SREGS ptr -8 add sp, 0Ch mov bx, word ptr [bp+inregs+2] sub bx, 2 - mov es, [bp+segp._es] + mov es, [bp+segp+SREGS._es] mov si, es:[bx] loc_10228: diff --git a/th01_reiiden_2.inc b/th01_reiiden_2.inc index 7c53be6e..d2b682ec 100644 --- a/th01_reiiden_2.inc +++ b/th01_reiiden_2.inc @@ -17812,8 +17812,9 @@ loc_248BE: inc si loc_24938: - cmp si, 0A0h ; '?' - jl short loc_248BE + cmp si, 0A0h ; '?' + ; Hack (jl short loc_248BE) (1 byte too much for JWasm) + db 07ch, 080h jmp loc_24A9D ; --------------------------------------------------------------------------- @@ -17874,7 +17875,8 @@ loc_2495E: loc_249D8: cmp si, 0A0h ; '?' - jl short loc_2495E + ; Hack (jl short loc_2495E) (1 byte too much for JWasm) + db 07ch, 080h add word_3A6C4, 10h xor di, di mov si, 20h ; ' ' @@ -40749,12 +40751,12 @@ E87_PROG segment para public 'CODE' use16 ; Hack. Let's better use bytes for accuracy here. tbyte_31200 db 035h, 0c2h, 068h, 021h, 0a2h, 0dah, 00fh, 0c9h, 0feh, 03fh tbyte_3120A db 035h, 0c2h, 068h, 021h, 0a2h, 0dah, 00fh, 0c9h, 0ffh, 03fh -flt_31214 dd -5.1110893e38 -flt_31218 dd -5.1117124e38 +flt_31214 dd 0FFC04200r +flt_31218 dd 0FFC04800r db 0, 4Ah, 0C0h, 0FFh flt_31220 dd 0.5 tbyte_31224 db 085h, 064h, 0deh, 0f9h, 033h, 0f3h, 004h, 0b5h, 0ffh, 03fh -flt_3122E dd 3.4028237e38 +flt_3122E dd 7F800000R ; --------------------------------------------------------------------------- mov cl, 0 jmp short loc_3123C