Scan for ^Z

This commit is contained in:
Juhani Krekelä 2021-07-30 16:06:56 +03:00
parent 21b636c181
commit d47321c53b
1 changed files with 25 additions and 14 deletions

View File

@ -28,6 +28,10 @@ sys_block_read equ 0x27
db 0x03, 0xF9 ; 023E add di, cx (direction swapped)
%endmacro
%macro sub_cx_di 0
db 0x2b, 0xcf ; sub cx, di (direction swapped)
%endmacro
%macro or_al_al 0
db 0x0a, 0xc0 ; or al, al (direction swapped)
%endmacro
@ -42,8 +46,11 @@ sys_block_read equ 0x27
%macro mov_dx_cx 0
db 0x8b, 0xD1 ; mov dx, cx (direction swapped)
%endmacro
%macro mov_di_cx 0
db 0x8b, 0xf9 ; mov di, cx (direction swapped)
%endmacro
%macro mov_di_dx 0
db 0x8B, 0xfa ; mov di, dx (direction swapped)
db 0x8b, 0xfa ; mov di, dx (direction swapped)
%endmacro
%macro cmp_byteaddr_bytext 2
@ -175,7 +182,7 @@ read_file:
mov dx, psp_fcb_1
mov ah, sys_block_read
int 0x21
call __035e
call find_file_end_char
add_di_cx
__0240:
@ -300,18 +307,22 @@ db 0x17 ; 035A pop ss
db 0x04, 0xA6 ; 035B add al,0xa6
db 0x08 ; 035D db 0x08
__035e:
db 0x57 ; 035E push di
db 0x51 ; 035F push cx
db 0xB0, 0x1A ; 0360 mov al,0x1a
db 0xF2, 0xAE ; 0362 repne scasb
db 0x8B, 0xF9 ; 0364 mov di,cx
db 0x59 ; 0366 pop cx
db 0x9F ; 0367 lahf
db 0x2B, 0xCF ; 0368 sub cx,di
db 0x9E ; 036A sahf
db 0x5F ; 036B pop di
db 0xC3 ; 036C ret
find_file_end_char: ; 035e
push di
push cx
mov al, 0x1a ; ^Z
repne scasb
mov_di_cx
pop cx
lahf
sub_cx_di
sahf
pop di
ret
db 0xE9, 0x8E, 0x00 ; 036D jmp 0x3fe
db 0xF6, 0x06, 0x7E, 0x0A, 0xFF ; 0370 test byte [0xa7e],0xff
db 0x75, 0xF6 ; 0375 jnz 0x36d