From c3202f4450bfea7ffc6cbe63e0bf07ae332f2040 Mon Sep 17 00:00:00 2001 From: nmlgc Date: Fri, 22 Aug 2014 01:19:52 +0200 Subject: [PATCH] [Reduction] #125: hmem_lallocate --- libs/master.lib/hmem_lallocate.asm | 58 ++++++++++++++++++++++++++++++ th02_main.asm | 41 ++------------------- th02_maine.asm | 41 ++------------------- th02_op.asm | 40 ++------------------- th03_main.asm | 41 ++------------------- th03_mainl.asm | 41 ++------------------- th03_op.asm | 40 ++------------------- th04_maine.asm | 41 ++------------------- th04_op.asm | 40 ++------------------- th05_maine.asm | 41 ++------------------- th05_op.asm | 41 ++------------------- 11 files changed, 88 insertions(+), 377 deletions(-) create mode 100644 libs/master.lib/hmem_lallocate.asm diff --git a/libs/master.lib/hmem_lallocate.asm b/libs/master.lib/hmem_lallocate.asm new file mode 100644 index 00000000..27185128 --- /dev/null +++ b/libs/master.lib/hmem_lallocate.asm @@ -0,0 +1,58 @@ +; master library +; +; Description: +; ヒープメモリ取得 long版 +; +; Functions: +; unsigned hmem_lallocate( unsigned long bytesize ) ; +; +; Returns: +; unsigned (cy=0) 確保したセグメント +; 0(cy=1) 管理メモリ不足 +; +; Notes: +; AX以外の全てのレジスタを保存します。 +; hmem_lallocate(0)として呼び出すと、メモリ不足を返します。 +; +; Running Target: +; MS-DOS +; +; Author: +; 恋塚昭彦 +; +; Rebision History: +; 93/ 3/31 Initial +; + +func HMEM_LALLOCATE ; hmem_lallocate() { + push BX + mov BX,SP + ; + byteh = (RETSIZE+2)*2 + bytel = (RETSIZE+1)*2 + mov AX,SS:[BX+byteh] + mov BX,SS:[BX+bytel] + add BX,15 + adc AX,0 + + shr AX,1 + rcr BX,1 + shr AX,1 + rcr BX,1 + shr AX,1 + rcr BX,1 + shr AX,1 + jnz short @@NOMEM + rcr BX,1 + + push BX + call HMEM_ALLOC + pop BX + ret 4 + +@@NOMEM: + mov AX,0 + stc + pop BX + ret 4 +endfunc ; } diff --git a/th02_main.asm b/th02_main.asm index 7e3d238f..aa9e4c77 100644 --- a/th02_main.asm +++ b/th02_main.asm @@ -3448,8 +3448,7 @@ loc_17C7: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_28DC + call hmem_lallocate pop ds stosw jb short loc_1818 @@ -3496,8 +3495,7 @@ loc_1818: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_28DC + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -5499,40 +5497,7 @@ loc_28C0: retf 2 sub_289C endp - -; =============== S U B R O U T I N E ======================================= - - -sub_28DC proc far - ; sub_1718+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_2908 - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_2908: - mov ax, 0 - stc - pop bx - retf 4 -sub_28DC endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th02_maine.asm b/th02_maine.asm index b1656b88..8cc0953e 100644 --- a/th02_maine.asm +++ b/th02_maine.asm @@ -3113,8 +3113,7 @@ loc_1567: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_24DA + call hmem_lallocate pop ds stosw jb short loc_15B8 @@ -3161,8 +3160,7 @@ loc_15B8: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_24DA + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -4867,40 +4865,7 @@ loc_24BE: retf 2 sub_249A endp - -; =============== S U B R O U T I N E ======================================= - - -sub_24DA proc far - ; sub_14B8+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_2506 - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_2506: - mov ax, 0 - stc - pop bx - retf 4 -sub_24DA endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th02_op.asm b/th02_op.asm index 6d46ab9d..7a845dd3 100644 --- a/th02_op.asm +++ b/th02_op.asm @@ -2856,8 +2856,7 @@ loc_1581: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_26F2 + call hmem_lallocate pop ds stosw jb short loc_15D2 @@ -2904,8 +2903,7 @@ loc_15D2: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_26F2 + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -4809,39 +4807,7 @@ sub_26B2 endp ; --------------------------------------------------------------------------- nop -; =============== S U B R O U T I N E ======================================= - - -sub_26F2 proc far - ; sub_14D2+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_271E - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_271E: - mov ax, 0 - stc - pop bx - retf 4 -sub_26F2 endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th03_main.asm b/th03_main.asm index 304254cd..c6bd6e82 100644 --- a/th03_main.asm +++ b/th03_main.asm @@ -3073,8 +3073,7 @@ loc_169D: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_2218 + call hmem_lallocate pop ds stosw jb short loc_16EE @@ -3121,8 +3120,7 @@ loc_16EE: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_2218 + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -4793,40 +4791,7 @@ loc_2211: retf sub_21F2 endp - -; =============== S U B R O U T I N E ======================================= - - -sub_2218 proc far - ; sub_15EE+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_2244 - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_2244: - mov ax, 0 - stc - pop bx - retf 4 -sub_2218 endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th03_mainl.asm b/th03_mainl.asm index 978df15c..429bbb5a 100644 --- a/th03_mainl.asm +++ b/th03_mainl.asm @@ -2249,8 +2249,7 @@ loc_10F3: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_210A + call hmem_lallocate pop ds stosw jb short loc_1144 @@ -2297,8 +2296,7 @@ loc_1144: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_210A + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -4109,40 +4107,7 @@ loc_20EE: retf 2 sub_20CA endp - -; =============== S U B R O U T I N E ======================================= - - -sub_210A proc far - ; sub_1044+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_2136 - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_2136: - mov ax, 0 - stc - pop bx - retf 4 -sub_210A endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th03_op.asm b/th03_op.asm index 9d5a9ba7..a2152312 100644 --- a/th03_op.asm +++ b/th03_op.asm @@ -2649,8 +2649,7 @@ loc_13E3: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_2426 + call hmem_lallocate pop ds stosw jb short loc_1434 @@ -2697,8 +2696,7 @@ loc_1434: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_2426 + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -4554,39 +4552,7 @@ sub_23E6 endp ; --------------------------------------------------------------------------- nop -; =============== S U B R O U T I N E ======================================= - - -sub_2426 proc far - ; sub_1334+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_2452 - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_2452: - mov ax, 0 - stc - pop bx - retf 4 -sub_2426 endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th04_maine.asm b/th04_maine.asm index 6383b6fe..3a2f5896 100644 --- a/th04_maine.asm +++ b/th04_maine.asm @@ -2285,8 +2285,7 @@ loc_137B: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_22AC + call hmem_lallocate pop ds stosw jb short loc_13CC @@ -2333,8 +2332,7 @@ loc_13CC: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_22AC + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -3978,40 +3976,7 @@ loc_2290: retf 2 sub_226C endp - -; =============== S U B R O U T I N E ======================================= - - -sub_22AC proc far - ; sub_12CC+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_22D8 - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_22D8: - mov ax, 0 - stc - pop bx - retf 4 -sub_22AC endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th04_op.asm b/th04_op.asm index 1bfd8477..f226e867 100644 --- a/th04_op.asm +++ b/th04_op.asm @@ -2753,8 +2753,7 @@ loc_171F: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_26AE + call hmem_lallocate pop ds stosw jb short loc_1770 @@ -2801,8 +2800,7 @@ loc_1770: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_26AE + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -4480,39 +4478,7 @@ sub_266E endp ; --------------------------------------------------------------------------- nop -; =============== S U B R O U T I N E ======================================= - - -sub_26AE proc far - ; sub_1670+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_26DA - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_26DA: - mov ax, 0 - stc - pop bx - retf 4 -sub_26AE endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th05_maine.asm b/th05_maine.asm index 57e43513..70375cd3 100644 --- a/th05_maine.asm +++ b/th05_maine.asm @@ -2479,8 +2479,7 @@ loc_14F5: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_24BC + call hmem_lallocate pop ds stosw jb short loc_1546 @@ -2527,8 +2526,7 @@ loc_1546: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_24BC + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -4309,40 +4307,7 @@ loc_24A0: retf 2 sub_247C endp - -; =============== S U B R O U T I N E ======================================= - - -sub_24BC proc far - ; sub_1446+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_24E8 - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_24E8: - mov ax, 0 - stc - pop bx - retf 4 -sub_24BC endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm diff --git a/th05_op.asm b/th05_op.asm index 98d364f1..8e3d9c4d 100644 --- a/th05_op.asm +++ b/th05_op.asm @@ -2229,8 +2229,7 @@ loc_1403: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_227E + call hmem_lallocate pop ds stosw jb short loc_1454 @@ -2277,8 +2276,7 @@ loc_1454: pop ds mov mem_AllocID, 0Ah nop - push cs - call near ptr sub_227E + call hmem_lallocate pop ds mov bx, ax mov ax, 0FFF8h @@ -3828,40 +3826,7 @@ loc_2277: retf sub_2258 endp - -; =============== S U B R O U T I N E ======================================= - - -sub_227E proc far - ; sub_1354+140p - push bx - mov bx, sp - mov ax, ss:[bx+8] - mov bx, ss:[bx+6] - add bx, 0Fh - adc ax, 0 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - rcr bx, 1 - shr ax, 1 - jnz short loc_22AA - rcr bx, 1 - push bx - call hmem_alloc - pop bx - retf 4 -; --------------------------------------------------------------------------- - -loc_22AA: - mov ax, 0 - stc - pop bx - retf 4 -sub_227E endp - +include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm