DataBasic Real-time Run Program Example
This program allows you to enter simple DataBasic programs directly and run them without having to type file, compile and run commands.
Programs can be as simple as a one-line PRINT statement or can be of multiple lines. The program is useful for doing various math routines and for trying out certain DataBasic statements and sequences.
BC ****************************************************************** ***** DataBasic REAL-TIME RUN PROGRAM ***** ****************************************************************** ***** FILE 'BIN' MUST BE CREATED BEFORE RUNNING ***** ****************************************************************** DIM ATTR(100) PROMPT CHAR(216) EQU NILL TO "" NEW="" ****************************************************************** ***** PROMPT FOR INPUT, LOOP UNTIL NO INPUT ***** ****************************************************************** OPEN 'BIN' TO FILE ELSE PRINT "NO 'BIN' FILE" STOP END START: MAT ATTR=NILL L=1 IF NEW#"" THEN WHAT=NEW; GO LUUP2 LUUP: INPUT WHAT LUUP2: BEGIN CASE CASE WHAT=NILL; GO ONWD ;* End Program CASE WHAT[1,1]="," ;* Transpose ,stmnt * to PRINT stmnt IF WHAT[2,1]=" " THEN ;* Transpose , stmnt * to PRINT stmnt ATTR(L)="PRINT":WHAT[2,-1] END ELSE ATTR(L)="PRINT ":WHAT[2,-1] GO SKIP CASE WHAT[1,1]="'" ;* Transpose 'stmnt * to PRINT "stmnt" ATTR(L)='PRINT "':WHAT[2,-1]:'"' GO SKIP END CASE ATTR(L)=WHAT ;* Input is verbatim SKIP: L=L+1 ;* Incr to next attr. GO LUUP ;* Loop back ****************************************************************** ***** FILE LISTING, COMPILE, RUN & DELETE IT ***** ****************************************************************** * ONWD: ATTR(L)="END" IF L=1 THEN STOP MATWRITE ATTR ON FILE,'ITEM' ;* File source code * Compile it PERFORM "BASIC BIN ITEM" CAPTURING ERRM ITEM="$ITEM" READV EMTX FROM FILE,ITEM,1 ELSE GO NONE GO RNIT NONE: PRINT NILL; PRINT ERRM PRINT NILL; L=1; GO LUUP RNIT: PRINT @(-10):@(-4) PRINT @(-4); PRINT NILL PERFORM "RUN BIN ITEM" ;* RUN program CLEARFILE FILE ;* Burn the evidence INPUT NEW IF NUM(NEW) THEN IF NEW>1 THEN L=NEW; NEW=""; GO LUUP END ELSE IF NEW="" THEN STOP ELSE GO START END ELSE GO START END END