From 48beabe5755dfb9abbf098aaef6f0ccfe03eeb46 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Tue, 10 Apr 2018 23:04:37 +0100 Subject: [PATCH] Make FACTOR's help match its behaviour. The help code is adjusted to handle the new ^G key that FACTOR 26 introduced, and to match case-insensitively when searching FACTOR ORDER. --- doc/_info_/factor.order | 2 ++ src/rz/{factor.28 => factor.29} | 29 ++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 9 deletions(-) rename src/rz/{factor.28 => factor.29} (93%) diff --git a/doc/_info_/factor.order b/doc/_info_/factor.order index b100b6e7..4ce4103b 100644 --- a/doc/_info_/factor.order +++ b/doc/_info_/factor.order @@ -6,7 +6,9 @@ COMMANDS TAKE PRECEDING NUMERIC ARGUMENTS EXAMPLE: 1+F ADDS 1 TO THE CURRENT VALUE, AND FACTORS IT ‰RUBOUT IGNORES ITS ARGUMENT + ^G EXITS TO DDT Q FOLLOWED BY COMMAND, DESCRIBES COMMAND +H FOLLOWED BY COMMAND, DESCRIBES COMMAND ? TYPES THIS FILE C LISTS COMMANDS SPACE STORES ARG IN CURRENT VALUE diff --git a/src/rz/factor.28 b/src/rz/factor.29 similarity index 93% rename from src/rz/factor.28 rename to src/rz/factor.29 index 5b43c9e7..718e8f93 100644 --- a/src/rz/factor.28 +++ b/src/rz/factor.29 @@ -118,7 +118,7 @@ TYIDIS: HUH ;^@ NUMBER ;7 NUMBER ;8 NUMBER ;9 - HUH ;: + TIMES ;: HUH ;; HUH ;< EQUAL ;= @@ -142,7 +142,7 @@ TYIDIS: HUH ;^@ LOAD ;N HUH ;O HUH ;P - HUH ;Q + QUERY ;Q RADSET ;R HUH ;S HUH ;T @@ -174,7 +174,7 @@ TYIDIS: HUH ;^@ LOAD ;n HUH ;o HUH ;p - HUH ;q + QUERY ;q RADSET ;r HUH ;s HUH ;t @@ -200,13 +200,16 @@ NUMBER: IMUL B,RADX ;A digit - add it to BC JRST LOOP INFO: PUSHJ P,INFOPN ;Show the whole info file - .IOT INFOC,1 - JUMPL A,RESET - CAIE A,3 +INFO1: .IOT INFOC,1 + JUMPL A,RESET ;Stop at EOF + CAIE A,3 ;Stop if ^C or FF CAIN A,14 JRST RESET + CAIE A,7 ;Don't print ^G or RUBOUT + CAIN A,177 + JRST INFO1 .IOT TYOC,1 - JRST INFO+1 + JRST INFO1 INFOPN: .CALL [ SETZ ;Open the info file SIXBIT /OPEN/ @@ -222,11 +225,19 @@ INFLOS: SUB P,[1,,1] ;Info file can't be opened MOVE B,[440700,,[ASCIZ \Can't open info file\]] JRST Q3 -QUERY: MOVE B,[440700,,[ASCIZ/elp /]] ;Look up a key in the info file +QUERY: ;Look up a key in the info file + MOVE B,[440700,,[ASCIZ/uery /]] + CAIE A,"H ;If they pressed H... + CAIN A,"h + MOVE B,[440700,,[ASCIZ/elp /]] PUSHJ P,OUT PUSHJ P,INFOPN .IOT TYIC,B ;Get a key PUSHJ P,CR + CAIL B,"a ;Lowercase letter? + CAILE B,"z + SKIPA + SUBI B,"a-"A ;Yes - force to uppercase CAIL B,"0 ;Digit? CAILE B,"9 JRST Q0 @@ -240,7 +251,7 @@ Q0: .IOT INFOC,A ;Skip chars until LF CAME A,B ;Is the key we're after? JRST Q0 ;No - try next line .IOT INFOC,A ;Read second char - JUMPL A,Q1 + JUMPL A,Q1 ;End of file? CAIE A,11 ;Is it tab? JRST Q0 ;No - try next line JRST .+2 ;Found it!