mirror of
https://github.com/erkyrath/infocom-zcode-terps.git
synced 2026-02-22 15:17:53 +00:00
43 lines
1.0 KiB
NASM
43 lines
1.0 KiB
NASM
|
|
FLUSH ONLY THOSE WORDS THAT OVERFLOWED. CHANGED IN AMIGA, YET TO BE DONE
|
|
FOR ST AND MAC.
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
RDX8 ADDQ.B #1,RDNWDS(A6) * INCREMENT FOUND WORD COUNT
|
|
MOVE.B RDNWDS(A6),D0 * GET NEW COUNT
|
|
|
|
MOVE.L RDRET(A6),A0 * RETURN TABLE POINTER (1ST BYTE MAX WORDS)
|
|
CMP.B (A0),D0 * FOUND WORD COUNT GREATER THAN MAX ALLOWED?
|
|
BLE.S RDX9 * NO
|
|
|
|
BSR PUTNEW * YES, INFORM LOSER
|
|
LEA MSGIO1,A0
|
|
BSR OUTMSG0 * 'Too many words ...'
|
|
|
|
SECTION ZDATA
|
|
MSGIO1 DC.B 'Too many words for internal buffer, flushing "',0
|
|
SECTION ZCODE
|
|
|
|
MOVE.L RDEOS(A6),A1 * END OF INPUT STRING (+1)
|
|
MOVE.B (A1),-(SP) * SAVE THIS BYTE TO BE SAFE
|
|
CLR.B (A1) * MAKE STRING ASCIZ
|
|
|
|
MOVE.L RDBOW(A6),A0 * START OF FLUSHED WORD/STRING
|
|
BSR OUTMSG0 * ECHO IT
|
|
MOVE.B (SP)+,(A1) * RESTORE LAST BYTE
|
|
|
|
LEA MSGIO2,A0
|
|
BSR OUTMSG * '".'
|
|
|
|
SECTION ZDATA
|
|
MSGIO2 DC.B '".',0
|
|
SECTION ZCODE
|
|
|
|
BSR PUTNEW
|
|
SUBQ.B #1,RDNWDS(A6) * THE LATEST WORD IS FLUSHED
|
|
BRA RDX10 * AND WE'RE DONE
|
|
|
|
*** BUILD THE ZWORD TABLE ...
|
|
|