BAS

GW Basic

Microsoft’s BASIC, which shipped with every version of MS-DOS and IBM-DOS

I specialized in creating very short but incomprehensible stubs of code that did cool things. I still do, but Python is better.

Star Wars art made with the assistance of GW-Basic on MSDOS 3.2 back in the day.

“Still Life”, GW-Basic on MS-DOS 3.2, 1987.

Bywater Basic

  • ABS( number )
  • ASC( string$ )
  • ATN( number )
  • CHAIN [MERGE] file-name [, line-number] [, ALL]
  • CHR$( number )
  • CINT( number )
  • CLEAR
  • CLOSE [[#]file-number]…
  • COMMON variable [, variable…]
  • COS( number )
  • CSNG( number )
  • CVD( string$ )
  • CVI( string$ )
  • CVS( string$ )
  • DATA constant[,constant]…
  • DATE$
  • DEF FNname(arg…)] = expression
  • DEFDBL letter[-letter](, letter[-letter])…
  • DEFINT letter[-letter](, letter[-letter])…
  • DEFSNG letter[-letter](, letter[-letter])…
  • DEFSTR letter[-letter](, letter[-letter])…
  • DELETE line[-line]
  • DIM variable(elements…)[variable(elements…)]…
  • END
  • ENVIRON variable-string = string
  • ENVIRON$( variable-string )
  • EOF( device-number )
  • ERASE variable[, variable]…
  • ERL
  • ERR
  • ERROR number
  • EXP( number )
  • FIELD [#] device-number, number AS string-variable [, number AS string-variable…]
  • FOR counter = start TO finish [STEP increment]
  • GET [#] device-number [, record-number]
  • GOSUB line
  • GOTO line
  • HEX$( number )
  • IF expression THEN statement [ELSE statement]
  • INPUT [# device-number]|[;][“prompt string”;]list of variables
  • INSTR( [start-position,] string-searched$, string-pattern$ )
  • INT( number )
  • KILL file-name
  • LEFT$( string$, number-of-spaces )
  • LEN( string$ )
  • LET variable = expression
  • LINE INPUT [[#] device-number,][“prompt string”;] string-variable$
  • LIST line[-line]
  • LOAD file-name
  • LOC( device-number )
  • LOF( device-number )
  • LOG( number )
  • LSET string-variable$ = expression
  • MERGE file-name
  • MID$( string$, start-position-in-string[, number-of-spaces ] )
  • MKD$( double-value# )
  • MKI$( integer-value% )
  • MKS$( single-value! )
  • NAME old-file-name AS new-file-name
  • NEW
  • NEXT counter
  • OCT$( number )
  • ON variable GOTO|GOSUB line[,line,line,…]
  • ON ERROR GOSUB line
  • OPEN O|I|R, [#]device-number, file-name [,record length]
  • * file-name FOR INPUT|OUTPUT|APPEND AS [#]device-number [LEN = record-length]
  • OPTION BASE number
  • POS
  • PRINT [# device-number,][USING format-string$;] expressions…
  • PUT [#] device-number [, record-number]
  • RANDOMIZE number
  • READ variable[, variable]…
  • REM string
  • RESTORE line
  • RETURN
  • RIGHT$( string$, number-of-spaces )
  • RND( number )
  • RSET string-variable$ = expression
  • RUN [line][file-name]
  • SAVE file-name
  • SGN( number )
  • SIN( number )
  • SPACE$( number )
  • SPC( number )
  • SQR( number )
  • STOP
  • STR$( number )
  • STRING$( number, ascii-value|string$ )
  • SWAP variable, variable
  • SYSTEM
  • TAB( number )
  • TAN( number )
  • TIME$
  • TIMER
  • TROFF
  • TRON
  • VAL( string$ )
  • WEND
  • WHILE expression
  • WIDTH [# device-number,] number
  • WRITE [# device-number,] element [, element ]….