ramidavis Posted December 12, 2017 Share Posted December 12, 2017 (edited) I have tested this in Extended Basic v110, XB 2.7 suite, and RXB 2015E in Classic99, as well as my physical copy of Extended Basic v110 On any program line, type <CTRL>+: When listed, the invisble character will be turned into a PRINT. And yes, it is a valid executable line of code. Enter: 1<CTRL>+:"hello" RUN and it will faithfully print hello. It does not work in immediate mode (gives * UNRECOGNIZED CHARACTER error), and does not work in normal TI Basic. I am little lost by this... I did not think the TI supported command abbreviations? I know C64 has abbreviations for just about everything, usually the first letter followed by a SHIFTED-second letter (L-<SHIFT>-i for "list" etc.) I have a video of this behavior in action. Can anyone please explain this to me? Edited December 12, 2017 by ramidavis Quote Link to comment Share on other sites More sharing options...
abecedarian Posted December 12, 2017 Share Posted December 12, 2017 I'm sure someone will be along to further this, but if I remember what I read a while back properly, it has to do with how the Basic interpreter parses and tokenizes statements.Looking forward to hearing a better explanation than what I can give. Quote Link to comment Share on other sites More sharing options...
RXB Posted December 12, 2017 Share Posted December 12, 2017 I have tested this in Extended Basic v110, XB 2.7 suite, and RXB 2015E in Classic99, as well as my physical copy of Extended Basic v110 On any program line, type <CTRL>+: When listed, the invisble character will be turned into a PRINT. And yes, it is a valid executable line of code. Enter: 1<CTRL>+:"hello" RUN and it will faithfully print hello. It does not work in immediate mode (gives * UNRECOGNIZED CHARACTER error), and does not work in normal TI Basic. I am little lost by this... I did not think the TI supported command abbreviations? I know C64 has abbreviations for just about everything, usually the first letter followed by a SHIFTED-second letter (L-<SHIFT>-i for "list" etc.) I have a video of this behavior in action. Can anyone please explain this to me? Classic99.AVI.zip When you type in a program it is kept in the RECALL BUFFER at VDP >08C0 that holds 153 bytes and XB takes that and turns it into tokens and stores them at >0820 that holds 163 bytes. All you did is find a key combination that makes a Token character, so here is the list of XB tokens and values: *********************************************************** * BASIC TOKEN TABLE * EQU >80 spare token ELSEZ EQU >81 ELSE SSEPZ EQU >82 :: TREMZ EQU >83 $ IFZ EQU >84 IF GOZ EQU >85 GO GOTOZ EQU >86 GOTO GOSUBZ EQU >87 GOSUB RETURZ EQU >88 RETURN DEFZ EQU >89 DEF DIMZ EQU >8A DIM ENDZ EQU >8B END FORZ EQU >8C FOR LETZ EQU >8D LET BREAKZ EQU >8E BREAK UNBREZ EQU >8F UNBREAK TRACEZ EQU >90 TRACE UNTRAZ EQU >91 UNTRACE INPUTZ EQU >92 INPUT DATAZ EQU >93 DATA RESTOZ EQU >94 RESTORE RANDOZ EQU >95 RANDOMIZE NEXTZ EQU >96 NEXT READZ EQU >97 READ STOPZ EQU >98 STOP DELETZ EQU >99 DELETE REMZ EQU >9A REM ONZ EQU >9B ON PRINTZ EQU >9C PRINT CALLZ EQU >9D CALL OPTIOZ EQU >9E OPTION OPENZ EQU >9F OPEN CLOSEZ EQU >A0 CLOSE SUBZ EQU >A1 SUB DISPLZ EQU >A2 DISPLAY IMAGEZ EQU >A3 IMAGE ACCEPZ EQU >A4 ACCEPT ERRORZ EQU >A5 ERROR WARNZ EQU >A6 WARNING SUBXTZ EQU >A7 SUBEXIT SUBNDZ EQU >A8 SUBEND RUNZ EQU >A9 RUN LINPUZ EQU >AA LINPUT * EQU >AB spare token (LIBRARY) * EQU >AC spare token (REAL) * EQU >AD spare token (INTEGER) * EQU >AE spare token (SCRATCH) * EQU >AF spare token THENZ EQU >B0 THEN TOZ EQU >B1 TO STEPZ EQU >B2 STEP COMMAZ EQU >B3 , SEMICZ EQU >B4 ; COLONZ EQU >B5 : RPARZ EQU >B6 ) LPARZ EQU >B7 ( CONCZ EQU >B8 & (CONCATENATE) * EQU >B9 spare token ORZ EQU >BA OR ANDZ EQU >BB AND XORZ EQU >BC XOR NOTZ EQU >BD NOT EQUALZ EQU >BE = LESSZ EQU >BF < GREATZ EQU >C0 > PLUSZ EQU >C1 + MINUSZ EQU >C2 - MULTZ EQU >C3 * DIVIZ EQU >C4 / CIRCUZ EQU >C5 ^ * EQU >C6 spare token STRINZ EQU >C7 QUOTED STRING UNQSTZ EQU >C8 UNQUOTED STRING NUMZ EQU >C8 ALSO NUMERICAL STRING NUMCOZ EQU >C8 ALSO UNQUOTED STRING LNZ EQU >C9 LINE NUMBER CONSTANT * EQU >CA spare token ABSZ EQU >CB ABS ATNZ EQU >CC ATN COSZ EQU >CD COS EXPZZ EQU >CE EXP INTZ EQU >CF INT LOGZ EQU >D0 LOG SGNZZ EQU >D1 SGN SINZ EQU >D2 SIN SQRZ EQU >D3 SQR TANZ EQU >D4 TAN LENZ EQU >D5 LEN CHRZZ EQU >D6 CHR$ RNDZ EQU >D7 RND SEGZZ EQU >D8 SEG$ POSZ EQU >D9 POS VAL EQU >DA VAL STRZZ EQU >DB STR$ ASCZ EQU >DC ASC PIZ EQU >DD PI RECZ EQU >DE REC MAXZ EQU >DF MAX MINZ EQU >E0 MIN RPTZZ EQU >E1 RPT$ * EQU >E2 unused * EQU >E2 unused * EQU >E3 unused * EQU >E4 unused * EQU >E5 unused * EQU >E6 unused * EQU >E7 unused NUMERZ EQU >E8 NUMERIC DIGITZ EQU >E9 DIGIT UALPHZ EQU >EA UALPHA SIZEZ EQU >EB SIZE ALLZ EQU >EC ALL USINGZ EQU >ED USING BEEPZ EQU >EE BEEP ERASEZ EQU >EF ERASE ATZ EQU >F0 AT BASEZ EQU >F1 BASE * EQU >F2 spare token (TEMPORARY) VARIAZ EQU >F3 VARIABLE RELATZ EQU >F4 RELATIVE INTERZ EQU >F5 INTERNAL SEQUEZ EQU >F6 SEQUENTIAL OUTPUZ EQU >F7 OUTPUT UPDATZ EQU >F8 UPDATE APPENZ EQU >F9 APPEND FIXEDZ EQU >FA FIXED PERMAZ EQU >FB PERMANENT TABZ EQU >FC TAB NUMBEZ EQU >FD # VALIDZ EQU >FE VALIDATE * EQU >FF ILLEGAL VALUE ***************************************************** The above is from the XB Source code Token table. 3 Quote Link to comment Share on other sites More sharing options...
digdugnate Posted December 12, 2017 Share Posted December 12, 2017 that's really interesting! i wouldn't have thought to try something like that 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted December 12, 2017 Share Posted December 12, 2017 It looks as if all the <Ctrl> key combinations will do this, except for <Ctrl>< Try this: NUM 10 <Ctrl>1 <Ctrl>2 <Ctrl>3 etc. and then LIST and you will see that each line has a valid XB statement. This is of questionable utility because you cannot see what you have entered until you list it, but still pretty interesting! TI BASIC does not do this; instead you get a BAD NAME error message. 1 Quote Link to comment Share on other sites More sharing options...
Casey Posted December 12, 2017 Share Posted December 12, 2017 This was actually written up in COMPUTE! magazine in one of the Reader’s Feedback columns. They also said it does not work for multiple statements on a line: <ctrl>1 :: <ctrl>2 does not work. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.