+TheBF Posted July 30 Share Posted July 30 CR would not be needed to define backspace. On this DOS/WEB F83 CR is defined as CRLF like this: : CRLF 13 EMIT 10 EMIT #OUT OFF 1 LINE# +! ; CR is a DEFER word and it is "assigned" the action of CRLF. I think F83 has a lot of DEFER words. This means you can change what they do for different machines easily. Backspace for an ansi terminal is just 8 EMIT and the cursor goes back one character. 3 Quote Link to comment Share on other sites More sharing options...
GDMike Posted July 31 Author Share Posted July 31 16 hours ago, TheBF said: CR would not be needed to define backspace. On this DOS/WEB F83 CR is defined as CRLF like this: : CRLF 13 EMIT 10 EMIT #OUT OFF 1 LINE# +! ; CR is a DEFER word and it is "assigned" the action of CRLF. I think F83 has a lot of DEFER words. This means you can change what they do for different machines easily. Backspace for an ansi terminal is just 8 EMIT and the cursor goes back one character. I'll test that for going back one position...BUT, will it leave a CRLF behind... well see Quote Link to comment Share on other sites More sharing options...
+TheBF Posted July 31 Share Posted July 31 Yes to make an editor style backspace you usually need to backspace twice because you usually emit a "space" on top on the existing character which moves the cursor forward. Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted July 31 Share Posted July 31 (edited) On 7/29/2024 at 1:34 PM, GDMike said: But I didn't like the word okay being presented at the end of the line, as the CR routine leaves the ok. On 7/30/2024 at 4:16 PM, GDMike said: Yes I saw that when I did the "see do". But realized later the "do loop leave" is proper. But neither resolved my issue of removing the"ok" when this particular loop is completed. I do notice a CR is happening but I couldn't find out where it was in a definition for the backspace. CR does not issue “ok”. That is done by QUIT , the top-level infinite loop that awaits a line of text and calls INTERPRET , an indefinite loop that terminates at the end of the line only to wind up back in QUIT to issue “ok” and CR before awaiting the next input line. What you want may require you to write your own infinite/indefinite input loop that just calls INTERPRET without the “ok” and CR . ...lee Edited July 31 by Lee Stewart correction 2 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted July 31 Author Share Posted July 31 47 minutes ago, Lee Stewart said: CR does not issue “ok”. That is done by QUIT , the top-level infinite loop that awaits a line of text and calls INTERPRET , an indefinite loop that terminates at the end of the line only to wind up back in QUIT to issue “ok” and CR before awaiting the next input line. What you want may require you to write your own infinite/indefinite input loop that just calls INTERPRET without the “ok” and CR . ...lee Right...I didn't have time today, celebrating a bday, but I'll try again tomorrow.. after cutting the Grass...ok...I'll try to squeeze it in.. 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted August 1 Share Posted August 1 To show what Lee was talking about Mike, I de-compiled F83 QUIT and re-typed/formatted it. There's 'ok' lookin' at us. \ f83 quit : QUIT BEGIN SP0 @ ' TIB ! BLK OFF [COMPILE] [ RP0 @ RP! STATUS QUERY RUN STATE @ IF ." ok" THEN AGAIN ; Query gets text into the terminal input buffer : QUERY TIB 80 EXPECT SPAN @ #TIB ! BLK OFF >IN OFF ; For some reason STATUS is just DEFERRED CR. RUN seems a bit complicated. (?) : RUN STATE @ IF ] STATE @ NOT IF INTERPET ELSE INTERPRET THEN THEN ; Camel Forth Quit is similar but simpler : QUIT ( -- ) RP0 RP! L0 LP ! SOURCE-ID OFF [COMPILE] [ BEGIN TIB DUP 52 ACCEPT SPACE INTERPRET STATE @ 0= IF ." ok" THEN CR AGAIN ; Now you are learning about what's behind the Forth curtain. 2 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 7 Author Share Posted August 7 (edited) @TheBF, I just came across this.. Edited August 7 by GDMike 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 7 Author Share Posted August 7 (edited) I found another basic language. I've yet to figure out what it is but it says basic. And I found a program on it that is some kind of spreadsheet. And some of the commands are locate which I couldn't find before, as well as line input. Two important items I needed in order to do anything with writing a program. Color is the other one. If I could adapt that into forth I might be able to do something in forth. Edited August 7 by GDMike 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 7 Author Share Posted August 7 (edited) Ok .. making syntax notes .lol Very interesting Edited August 7 by GDMike Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 7 Author Share Posted August 7 (edited) Found the manual Microsoft_Basic_Interpreter_1984.pdf Program image disk01.imd disk01.img Edited August 7 by GDMike 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 7 Author Share Posted August 7 (edited) Unfortunately I can't find anything for the TI professional except for the Apple version , and the version of basic I have is not the MD-80 either. Edited August 7 by GDMike Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 8 Author Share Posted August 8 (edited) I found a link to the basic that I'm using.. Computer basic 1.2 But no docs yet https://www.dosdays.co.uk/topics/basic.php Edited August 8 by GDMike 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted August 8 Share Posted August 8 2 hours ago, GDMike said: @TheBF, I just came across this.. Yes these are the ANSI terminal codes for a terminal like a VT100. If your TI DOS responds to those codes and F83 is passing them to the right screen output routine in the OS then you can control the cursor. BUT if it is using the BIOS ROM routines then these won't work. You had the beginning of that with the code that was ESC[ Notice how all the ANSI code begin with "ESC[". Those two characters <escape> and '[' tell the terminal to interpret the following data and us it to control the terminal. On my RS232 Forth I use a VT100 emulator (Teraterm) and when Forth boots it auto loads the following file called DSK1.VT100. It creates a tiny markup language so I can remember how to control the terminal with words. Each of these words just sends ESC[ and the correct text to do the thing that needs doing. This will make more sense to you now. CR .( VT100 terminal control, [0,0] Home coordinates May 2020 ) DECIMAL \ type 'n' as a two digit number in base 10, with no space : <##> ( n -- ) BASE @ >R \ save radix 0 <# DECIMAL # # #> TYPE \ convert to 2 digits & print R> BASE ! ; \ restore radix \ markup language for terminal control codes \ : <ESC> ( -- ) 27 EMIT ; : <ESC>[ ( -- ) 27 EMIT 91 EMIT ; : <UP> ( n -- ) <ESC>[ <##> ." A" ; : <DOWN> ( n -- ) <ESC>[ <##> ." B" ; : <RIGHT> ( n -- ) <ESC>[ <##> ." C" ; : <BACK> ( n -- ) <ESC>[ <##> ." D" ; : <HOME> ( -- ) <ESC>[ ." H" 0 0 VROW 2! ; \ define Forth words using markup words : PAGE ( n -- ) <ESC>[ ." 2J" <HOME> ; : AT-XY ( col row --) 2DUP VROW 2! \ store col,row <ESC>[ 1+ <##> ." ;" 1+ <##> ." f" ; Notice on AT-XY Forth uses 0,0 as home but ANSI uses 1,1 so I have to 1+ the col and row inputs to AT-XY 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 8 Author Share Posted August 8 Okay yeah I got a little confused earlier with this but I think I tried this and ended up with a lockup and I know that the driver ansi.sys it's not existent in this version of DOS. But let me try this again thanks Quote Link to comment Share on other sites More sharing options...
+TheBF Posted August 8 Share Posted August 8 13 minutes ago, GDMike said: Okay yeah I got a little confused earlier with this but I think I tried this and ended up with a lockup and I know that the driver ansi.sys it's not existent in this version of DOS. But let me try this again thanks I think you beat it up pretty hard and it didn't work. There are a couple of Camel99 gotchas in that code I showed. It won't work as is on F83. Yes you will need to remove all the reference to VROW. CODE below should compile on F83 : <HOME> ( -- ) <ESC>[ ." H" ; : PAGE ( n -- ) <ESC>[ ." 2J" <HOME> ; : AT-XY ( col row --) <ESC>[ 1+ <##> ." ;" 1+ <##> ." f" ; 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 8 Author Share Posted August 8 (edited) Oh yes, I see Vrow...hmm.. Well basic is giving me what I'm looking for at this point.. Except nothing to showing me how to change the screen color only the character colors... But I'm going to look at the example file that they have on the disc and see if it has any code pertaining to screen color. Edited August 8 by GDMike 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 8 Author Share Posted August 8 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted August 8 Share Posted August 8 That 62010 bytes free looks really nice. 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 8 Author Share Posted August 8 Here is some basic program..?? It had errors in it and they were all pointing to line 25 and it didn't like 25 because basic itself is using line 25 for a menu.. So I changed everywhere that said 25 to a 24.. And yes, The program ran. But I can't get it to do anything. 😂 VID_20240807_213042001.mp4 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 8 Author Share Posted August 8 (edited) Just found this one VID_20240807_213917347.mp4 Edited August 8 by GDMike 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 9 Author Share Posted August 9 (edited) Working with this MS basic... Although the TI99 would probably do a better job in extended basic, but I'm just trying to get a feel for the machine here.. And I've always wanted to make an AS400 emulator database. Lol VID_20240809_113746770.mp4 Edited August 9 by GDMike 1 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 9 Author Share Posted August 9 Some basic 1.2 commands I found that work here. Pset - place a pixel of any color 0-7 on screen Pset(650,10),1 places a blue pixel on the screen X$=time will retrieve the current time Line (10,10)-(200,20) will place a line on the screen of the correct color of the previous color set System - typing this word will exit the program basic back to DOS Loading a basic program Load "prgm.bas" Or Pressing F5 LOAD" is displayed Or F$="prgm.bas" Load f$ Check memory availability Use f=fre(0) Print f 61042 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 10 Author Share Posted August 10 (edited) Ms basic on eBay Edited August 10 by GDMike 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 10 Author Share Posted August 10 (edited) Using the command in basic called pset I'm wanting a TI logo. And since pset allows any pixel dot to have its own color, 0-7 Any artist out there want to try a crack at this. I'm guessing there's eight pixels per char ? And there's 80 characters per line? And then what color to make the Texas and i, and bullet logo? I would like blue/yellow mix? Edited August 10 by GDMike Quote Link to comment Share on other sites More sharing options...
+TheBF Posted August 10 Share Posted August 10 35 minutes ago, GDMike said: Using the command in basic called pset I'm wanting a TI logo. And since pset allows any pixel dot to have its own color, 0-7 Any artist out there want to try a crack at this. I'm guessing there's eight pixels per char ? And there's 80 characters per line? And then what color to make the Texas and i, and bullet logo? I would like blue/yellow mix? Might need that manual. 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.