File-Manager/MOD1/WIDTH.ASM
2025-04-04 00:37:36 +10:00

72 lines
1.5 KiB
NASM
Executable File

width_max equ 32 ; ¬ ªá. ¤«¨­  ¯ã⨠¯ ­¥«¨
;-------------------------------------------------
; Ž£à ­¨ç¥­¨¥ áâப¨ ¯ã⨠(¬ ªá. 32 ᨬ¢®« )
;-------------------------------------------------
width_path:
xor a
ld (width1__),a ; á¡à. ä« £ ¯¥à¥¯®«­. áâப¨
; ã§­ âì ¤«¨­ã ¯ãâ¨
ld iy,(__path) ; ®¯¨á â¥«ì ¯ã⨠ ªâ. ¯ ­¥«¨
ld hl,(__buff) ; ¡ãä¥à ¯ã⨠ ªâ. ¯ ­¥«¨
ld e,l
ld d,h
ld bc,127;255 ; ¬ ªá. ¤«¨­  ¯ã⨠;!HARDCODE cmd len
cpir
dec hl
push hl ; á®åà. ª®­¥æ ¯ã⨠¢ ¡ãä¥à¥
sbc hl,de
ld a,l
cp width_max+1 ; 33
jr c,width__
; ¤«¨­  ¯ã⨠> 32
ld a,width_max ; 32
ld (width1__),a ; ãáâ. ä« £
width__:
ld c,a ; ¤«¨­  áâப¨ ¯ãâ¨
ld b,0
add a,3+1 ; + ¨¬ï ¤¨áª  ¨ ª®­æ¥¢®© ¯à®¡¥«
ld (iy+0),a ; ¯®«­ ï ¤«¨­  áâப¨
ex af,af'
push iy
pop hl
ld de,7
add hl,de
ex de,hl ; de=¯à¨¥¬­ë© ¡ãä¥à
pop hl ; ¢®ááâ. ª®­¥æ ¯ã⨠¢ ¡ãä¥à¥
; ᪮¯¨à®¢ âì áâபã
and a
sbc hl,bc ; hl=­ ç «® ¯¥à¥ª çª¨
push de
ldir
ld a," "
ld (de),a ; ª®­æ¥¢®© ¯à®¡¥«
inc de
xor a
ld (de),a ; ª®­¥æ ®¯¨á â¥«ï
pop de
width1__+1:
ld a,0 ; 0/32 ­¥â/¤  ä« £ ¯¥à¥¯®«­. áâப¨
or a
jr z,width2__
ld a,'\'
ld (de),a
inc de
ld a,"."
ld (de),a
inc de
ld (de),a
; 業âà¨à®¢ âì áâபã
width2__:
ex af,af' ; ¯®«­ ï ¤«¨­  áâப¨
srl a ; / 2
ld c,a
ld a,20 ; è¨à¨­  ¯ ­¥«¨ / 2
sub c
ld (iy+3),a ; X ¯®«®¦. áâப¨
ld a,(disk) ; ­®¬¥à ¤¨áª   ªâ. ¯ ­¥«¨
add a,"A"
ld (iy+5),a
ret