diff --git a/libs/master.lib/mem_assign_dos.asm b/libs/master.lib/mem_assign_dos.asm new file mode 100644 index 00000000..f1f69fbd --- /dev/null +++ b/libs/master.lib/mem_assign_dos.asm @@ -0,0 +1,41 @@ +; master library - MS-DOS +; +; Description: +; 指定サイズのDOSのメモリを確保し、メモリマネージャへ割り当てる +; +; Functions/Procedures: +; int mem_assign_dos( unsigned parasize ) ; +; +; Noters: +; レジスタは AXのみ破壊します。 +; +; Author: +; 恋塚昭彦 +; +; Revision History: +; 93/ 3/23 Initial (0.14) +; 93/ 3/23 bugfix (0.15) + + ; int mem_assign_dos( unsigned parasize ) ; + ; 破壊: AXのみ + ; メモリ不足なら cy=1 +func MEM_ASSIGN_DOS + push BX + mov BX,SP + ; 引数 + parasize = (RETSIZE+1)*2 + + mov BX,SS:[BX+parasize] + mov AH,48h ; 確保する + int 21h + jc short @@NOMEM + push AX + push BX + call MEM_ASSIGN + xor AX,AX + mov mem_MyOwn,1 +@@NOMEM: + neg AX + pop BX + ret 2 +endfunc diff --git a/th02_main.asm b/th02_main.asm index f7b19800..c2c88803 100644 --- a/th02_main.asm +++ b/th02_main.asm @@ -5614,30 +5614,7 @@ loc_2908: retf 4 sub_28DC endp - -; =============== S U B R O U T I N E ======================================= - - -sub_2910 proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_292B - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_292B: - neg ax - pop bx - retf 2 -sub_2910 endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -31203,7 +31180,7 @@ sub_F913 proc far push bp mov bp, sp push 4650h - call sub_2910 + call mem_assign_dos or ax, ax jz short loc_F927 mov ax, 1 diff --git a/th02_maine.asm b/th02_maine.asm index e68e65ea..e01db41a 100644 --- a/th02_maine.asm +++ b/th02_maine.asm @@ -4980,30 +4980,7 @@ loc_2506: retf 4 sub_24DA endp - -; =============== S U B R O U T I N E ======================================= - - -sub_250E proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_2529 - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_2529: - neg ax - pop bx - retf 2 -sub_250E endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -22021,7 +21998,7 @@ sub_B756 proc far push bp mov bp, sp push 4650h - call sub_250E + call mem_assign_dos or ax, ax jz short loc_B76A mov ax, 1 diff --git a/th02_op.asm b/th02_op.asm index 3f42bf0f..c068e495 100644 --- a/th02_op.asm +++ b/th02_op.asm @@ -4917,30 +4917,7 @@ loc_271E: retf 4 sub_26F2 endp - -; =============== S U B R O U T I N E ======================================= - - -sub_2726 proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_2741 - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_2741: - neg ax - pop bx - retf 2 -sub_2726 endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -20656,7 +20633,7 @@ sub_AFB0 proc far push bp mov bp, sp push 3E80h - call sub_2726 + call mem_assign_dos or ax, ax jz short loc_AFC4 mov ax, 1 diff --git a/th03_main.asm b/th03_main.asm index f7660ab9..7978539e 100644 --- a/th03_main.asm +++ b/th03_main.asm @@ -4904,30 +4904,7 @@ loc_2244: retf 4 sub_2218 endp - -; =============== S U B R O U T I N E ======================================= - - -sub_224C proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_2267 - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_2267: - neg ax - pop bx - retf 2 -sub_224C endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -28406,7 +28383,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push 4650h - call sub_224C + call mem_assign_dos or ax, ax jz short loc_ECE6 mov ax, 1 diff --git a/th03_mainl.asm b/th03_mainl.asm index 1e8e290a..ef281c9d 100644 --- a/th03_mainl.asm +++ b/th03_mainl.asm @@ -4219,30 +4219,7 @@ loc_2136: retf 4 sub_210A endp - -; =============== S U B R O U T I N E ======================================= - - -sub_213E proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_2159 - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_2159: - neg ax - pop bx - retf 2 -sub_213E endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -24650,7 +24627,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push 4650h - call sub_213E + call mem_assign_dos or ax, ax jz short loc_CEF6 mov ax, 1 diff --git a/th03_op.asm b/th03_op.asm index 11c20daa..0db9c37e 100644 --- a/th03_op.asm +++ b/th03_op.asm @@ -4663,30 +4663,7 @@ loc_2452: retf 4 sub_2426 endp - -; =============== S U B R O U T I N E ======================================= - - -sub_245A proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_2475 - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_2475: - neg ax - pop bx - retf 2 -sub_245A endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -23725,7 +23702,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push 55F0h - call sub_245A + call mem_assign_dos or ax, ax jz short loc_C435 mov ax, 1 diff --git a/th04_main.asm b/th04_main.asm index b99df2c5..ea155116 100644 --- a/th04_main.asm +++ b/th04_main.asm @@ -4833,32 +4833,7 @@ loc_24EC: retf 2 sub_24C8 endp - -; =============== S U B R O U T I N E ======================================= - - -sub_2508 proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_2523 - push ax - push bx - call mem_assign - xor ax, ax - -loc_251D: - mov mem_MyOwn, 1 - -loc_2523: - neg ax - pop bx - retf 2 -sub_2508 endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -36997,7 +36972,7 @@ var_2 = word ptr -2 cmp bx, 0Ch ja short loc_12492 add bx, bx - jmp word ptr cs:(loc_289F - locret_AAF0)[bx] + jmp word ptr cs:table_1289F[bx] loc_12484: mov word_2CF2C, 7937h @@ -37074,7 +37049,9 @@ loc_12508: cmp bx, 10h ja loc_127EC add bx, bx - jmp word ptr cs:(loc_287D - locret_AAF0)[bx] + jmp word ptr cs:table_1287D[bx] + +loc_12522: cmp byte_26719, 2 jbe short loc_12567 inc byte_2CDD1 @@ -37481,36 +37458,36 @@ sub_12461 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0 - dw offset loc_251D+5 - offset locret_AAF0 - dw offset loc_251D+5 - offset locret_AAF0 - dw offset loc_251D+5 - offset locret_AAF0 - dw offset loc_251D+5 - offset locret_AAF0 - dw offset loc_25A4+1 - offset locret_AAF0 - dw offset loc_25A4+1 - offset locret_AAF0 - dw offset locret_2609+2 - offset locret_AAF0 - dw offset locret_2609+2 - offset locret_AAF0 - dw offset loc_2690+1 - offset locret_AAF0 - dw offset loc_2690+1 - offset locret_AAF0 - dw offset locret_2609+2 - offset locret_AAF0 - dw offset locret_2609+2 - offset locret_AAF0 - dw offset loc_2690+1 - offset locret_AAF0 - dw offset loc_2690+1 - offset locret_AAF0 - dw offset locret_2721+1 - offset locret_AAF0 - dw offset locret_2721+1 - offset locret_AAF0 - dw offset loc_27B4+3 - offset locret_AAF0 - dw offset loc_2481+3 - offset locret_AAF0 - dw offset loc_2490+2 - offset locret_AAF0 - dw offset loc_2490+2 - offset locret_AAF0 - dw offset loc_2490+2 - offset locret_AAF0 - dw offset loc_2490+2 - offset locret_AAF0 - dw offset loc_2490+2 - offset locret_AAF0 - dw offset loc_248C - offset locret_AAF0 - dw offset loc_2490+2 - offset locret_AAF0 - dw offset loc_2481+3 - offset locret_AAF0 - dw offset loc_2490+2 - offset locret_AAF0 - dw offset loc_248C - offset locret_AAF0 - dw offset loc_2490+2 - offset locret_AAF0 - dw offset loc_2481+3 - offset locret_AAF0 +table_1287D dw loc_12522 + dw loc_12522 + dw loc_12522 + dw loc_12522 + dw loc_125A5 + dw loc_125A5 + dw loc_1260B + dw loc_1260B + dw loc_12691 + dw loc_12691 + dw loc_1260B + dw loc_1260B + dw loc_12691 + dw loc_12691 + dw loc_12722 + dw loc_12722 + dw loc_127B7 +table_1289F dw loc_12484 + dw loc_12492 + dw loc_12492 + dw loc_12492 + dw loc_12492 + dw loc_12492 + dw loc_1248C + dw loc_12492 + dw loc_12484 + dw loc_12492 + dw loc_1248C + dw loc_12492 + dw loc_12484 ; --------------------------------------------------------------------------- enter 2, 0 push si @@ -39478,7 +39455,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push word_24CB2 - call sub_2508 + call mem_assign_dos or ax, ax jz short loc_1367D mov ax, 1 diff --git a/th04_maine.asm b/th04_maine.asm index 99339138..5330dd3a 100644 --- a/th04_maine.asm +++ b/th04_maine.asm @@ -4088,30 +4088,7 @@ loc_22D8: retf 4 sub_22AC endp - -; =============== S U B R O U T I N E ======================================= - - -sub_22E0 proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_22FB - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_22FB: - neg ax - pop bx - retf 2 -sub_22E0 endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -25301,7 +25278,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push word_10070 - call sub_22E0 + call mem_assign_dos or ax, ax jz short loc_D453 mov ax, 1 diff --git a/th04_op.asm b/th04_op.asm index a887888b..60dbfb1d 100644 --- a/th04_op.asm +++ b/th04_op.asm @@ -4590,30 +4590,7 @@ loc_26DA: retf 4 sub_26AE endp - -; =============== S U B R O U T I N E ======================================= - - -sub_26E2 proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_26FD - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_26FD: - neg ax - pop bx - retf 2 -sub_26E2 endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -26888,7 +26865,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push word_11A4E - call sub_26E2 + call mem_assign_dos or ax, ax jz short loc_E109 mov ax, 1 diff --git a/th05_main.asm b/th05_main.asm index 88192a38..d7a31983 100644 --- a/th05_main.asm +++ b/th05_main.asm @@ -5052,30 +5052,7 @@ loc_278E: retf 2 sub_276A endp - -; =============== S U B R O U T I N E ======================================= - - -sub_27AA proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_27C5 - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_27C5: - neg ax - pop bx - retf 2 -sub_27AA endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -40434,7 +40411,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push word_21216 - call sub_27AA + call mem_assign_dos or ax, ax jz short loc_14F9D mov ax, 1 diff --git a/th05_maine.asm b/th05_maine.asm index 50b2fb9f..ed3b75da 100644 --- a/th05_maine.asm +++ b/th05_maine.asm @@ -4418,30 +4418,7 @@ loc_24E8: retf 4 sub_24BC endp - -; =============== S U B R O U T I N E ======================================= - - -sub_24F0 proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_250B - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_250B: - neg ax - pop bx - retf 2 -sub_24F0 endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -29149,7 +29126,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push word_107CA - call sub_24F0 + call mem_assign_dos or ax, ax jz short loc_F0CB mov ax, 1 diff --git a/th05_op.asm b/th05_op.asm index a19f7a49..961e0c67 100644 --- a/th05_op.asm +++ b/th05_op.asm @@ -3937,30 +3937,7 @@ loc_22AA: retf 4 sub_227E endp - -; =============== S U B R O U T I N E ======================================= - - -sub_22B2 proc far - push bx - mov bx, sp - mov bx, ss:[bx+6] - mov ah, 48h - int 21h ; DOS - 2+ - ALLOCATE MEMORY - ; BX = number of 16-byte paragraphs desired - jb short loc_22CD - push ax - push bx - call mem_assign - xor ax, ax - mov mem_MyOwn, 1 - -loc_22CD: - neg ax - pop bx - retf 2 -sub_22B2 endp - +include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm ; =============== S U B R O U T I N E ======================================= @@ -26827,7 +26804,7 @@ arg_0 = dword ptr 6 push bp mov bp, sp push word_F9CC - call sub_22B2 + call mem_assign_dos or ax, ax jz short loc_DF27 mov ax, 1