MDIR310 fix

68c06b83a703b176dbbf2318c1f07873_1791562052_2062.png

68c06b83a703b176dbbf2318c1f07873_1791562230_6703.png


MDIR310이 2gb이상 os2 warp4, 4.5에서 동작하지 않는 문제를 수정했습니다.

M3는 여유% = 여유바이트 / (전체바이트/100) 을 계산합니다 (이미지 0x13FF0~0x14004).

TP의 32비트 나눗셈 헬퍼(0x2C248)는 제수가 0이면 이렇게 처리합니다:

0x2c2d4: mov ax, 0xC8   ; 0xC8 = 200  → 소프트웨어적으로 Runtime Error 200 발생
큰 볼륨(예: 8GB HPFS) 에서 전체 크기가 32비트를 넘쳐 wrap → 전체/100 == 0 → 제수 0 → 나눗셈 → RTE200.


수정본 (검증 완료)

제수가 0일 때 RTE200을 던지지 않고 0을 반환하도록 헬퍼를 9바이트만 패치했습니다:

0x2c2d1: 9d 9d 31 c0 31 d2 cb 90 90   ; add sp,4;mov ax,C8;jmp RTE  →  popf;popf;xor ax,ax;xor dx,dx;retf

검증:

정상 볼륨 → 2,013,265,920(93%)byte free 정상 표시 (회귀 없음)

제수 0 강제(고장 조건) → 크래시 없이 파일관리자 정상 실행, 퍼센트만 0%로 표시

산출물 (충실한 원본과 오직 그 9바이트만 다름)


Comments

Category
State
  • 현재 접속자 238 명
  • 오늘 방문자 1,593 명
  • 어제 방문자 10,578 명
  • 최대 방문자 166,171 명
  • 전체 방문자 11,631,019 명
  • 전체 게시물 3,286 개
  • 전체 댓글수 4,789 개
  • 전체 회원수 166 명

- 쇼핑몰 : Softbox
- 예전 문서 / Old docs
- FTP Server: http://ftp.hanmesoft.com
Facebook Twitter GooglePlus KakaoStory NaverBand