--- np2/romimage/MEMCHK.X86 2003/12/10 12:48:09 1.1 +++ np2/romimage/MEMCHK.X86 2003/12/27 11:55:23 1.3 @@ -44,13 +44,17 @@ endif EXTMEMORYMAX equ 128 ; 128MB MAX -res_memory128ok db "MEMORY 128" -res_memoryok db "KB OK", 0 -res_plusspace db "+", 0 +res_memory128ok db "MEMORY 128" +res_memoryok db "KB OK", 0 +res_plusspace db "+", 0 + +res_ramchk db "RAM check : 128KB Ok", 0 +res_extchk db "Extended RAM : 128KB Ok", 0 extmemory_chk: push ax mov bx, 2000h + mov cl, 0 call bp pop ax add ax, 128 @@ -80,6 +84,7 @@ MEMORY_TEST: mov bp, offset sub_memchk ; メインメモリ 〜128KB mov bx, 2000h + mov cl, 0 call bp mov cl, 0e1h mov si, offset res_memory128ok @@ -154,3 +159,76 @@ extmomey_o16: extmemtest_end: pop dx ret + +; ---- epson + +epson_memtest: mov bx, 2000h ; メインメモリ 〜128KB + mov cl, 0 + call sub_memchk + mov cl, 0e1h + mov si, offset res_ramchk + call TEXTOUT_CS + + mov ch, es:[MEM_MSW3] ; メインメモリ 128KB〜640KB + and ch, 7 + je short epmt_ext + cmp ch, 4 + jbe short epmt_main_lp + mov ch, 4 +epmt_main_lp: call sub_memchk + add bh, 20h + push cx + push dx + mov ax, bx + shr ax, 6 + call STRING_I2A + pop dx + pop cx + mov dl, 17 + mov cl, 0e1h + call TEXTOUT_DS + dec ch + jne epmt_main_lp + +epmt_ext: in al, 42h ; 拡張メモリ + test al, 2 + jne short epmt_exit + xor ax, ax + push ds + mov ds, ax + or al, ds:[MEM_EXPMMSZ] + pop ds + je short epmt_exit + inc dh + mov dl, 0 + push ax + mov bx, 2000h + mov cl, 0 + call sub_memchk + mov cl, 0e1h + mov si, offset res_extchk + call TEXTOUT_CS + pop ax +epmt_ext_lp: inc ah + push ax + mov bx, 2000h + mov cl, 0 + call sub_memchk + pop ax + push ax + push dx + mov al, 0 + shr ax, 1 + call STRING_I2A + pop dx + mov cl, 0e1h + mov dl, 15 + mov si, I2ABUFFER + 5 + call TEXTOUT_DS + pop ax + cmp ah, al + jb epmt_ext_lp +epmt_exit: inc dh + mov dl, 0 + ret +