Skip to content

Commit 8e3aad2

Browse files
committed
basehandlers: change WSIZ to prompt for its argument, instead of using X register
1 parent 4b17336 commit 8e3aad2

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

src/basehandlers.asm

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -381,25 +381,34 @@ mGetCarryFlagHandlerPush1:
381381

382382
;-----------------------------------------------------------------------------
383383

384+
; Description: Prompt for the new base word size, like FIX or STO. Allowed
385+
; values are 8, 16, 24, 32. Throw Err:Argument if outside of that list.
384386
mSetWordSizeHandler:
385-
call recallXAsU32 ; HL=OP3=u32(X)
386-
ld a, 8
387-
call cmpU32U8
387+
call closeInputBuf
388+
res rpnFlagsTvmCalculate, (iy + rpnFlags)
389+
ld hl, msgWordSizePrompt
390+
call startArgParser
391+
call processArgCommands ; CF=0 if canceled; (argModified), (argValue)
392+
ret nc ; do nothing if canceled
393+
ld a, (argValue)
394+
cp 8
388395
jr z, setWordSize
389-
ld a, 16
390-
call cmpU32U8
396+
cp 16
391397
jr z, setWordSize
392-
ld a, 24
393-
call cmpU32U8
398+
cp 24
394399
jr z, setWordSize
395-
ld a, 32
396-
call cmpU32U8
400+
cp 32
397401
jr z, setWordSize
398-
bcall(_ErrDomain)
402+
; throw Err:Argument if not (8,16,24,32)
403+
bcall(_ErrArgument)
399404
setWordSize:
400405
ld (baseWordSize), a
406+
set dirtyFlagsStack, (iy + dirtyFlags)
401407
ret
402408

409+
msgWordSizePrompt:
410+
.db "WSIZ", 0
411+
403412
mGetWordSizeHandler:
404413
call closeInputBuf
405414
res rpnFlagsTvmCalculate, (iy + rpnFlags)

0 commit comments

Comments
 (0)