Jump to content

ASIC programming language

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Christophoro S (talk | contribs) at 14:00, 26 March 2017 (Utility BAS2ASI). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
ASIC
Original author(s)Dave Visti
Developer(s)80/20 Software[1]
Initial releasebefore 1993[2]
Stable release
5.00 / 1994; 31 years ago (1994)
Written inMASM, TURBO C
Operating systemDOS
TypeBASIC
Licenseshareware

ASIC is a programming language, a BASIC dialect and shareware compiler for DOS systems. Written by Dave Visti of 80/20 Software, it achieved brief popularity in the 1990s as one of the few BASIC compilers legally available for download from BBSes. However, ASIC understood only a small subset of the BASIC language, with most versions having little or no support for logical operators, control structures,[3] and floating-point arithmetic. These shortcomings are the reason for the software's tongue-in-cheek motto, "ASIC: It's almost BASIC!"[4][5]

Notably, however, ASIC did feature a rudimentary integrated development environment and an RS-232 communications library for writing terminal and BBS software, as well not requiring line numbers.[6] The last release of ASIC, version 5.00, was more compatible with GW-BASIC and offered a utility to convert GW-BASIC programs to ASIC syntax.

ASIC allows compiling to a DOS EXE file or COM file. The low overhead of the COM file format lets ASIC make one of the smallest compiled executables of the Hello world program, typically 360 bytes.[5]

Utility BAS2ASI

This utility, serving to convert GW-BASIC programs to ASIC syntax, in the version 5.0 does not support some GW-BASIC features. Examples:

Lack of support for STEP in the For loop. The snippet

10 FOR i=10 TO 1 STEP -1 
20 PRINT i
30 NEXT i

is converted into

	REM 10 FOR i=10 TO 1 STEP -1 
	FOR I@ = 10 TO 1 
		ASIC0@ = -1 -1 
		I@ = I@ + ASIC0@ 
		
		REM 20 PRINT i
		PRINT I@ 
		
		REM 30 NEXT i		REM 30 NEXT i		3:  Syntax error

Lack of support for the exponentiation operator ^. The snippet

10 a=2
20 b=a^10
30 PRINT b

is converted into

	REM 10 a=2
L10: 
	A@ = 2 
	
	REM 20 b=a^10
	2:  Syntax error 

	REM 30 PRINT b	REM 30 PRINT b	3:  Syntax error

References

  1. ^ IBRARY: Library for the ASIC compiler. Current Version: 3.1...David A. Visti, Catalog - Updated :February 1, 1996, Charon Software
  2. ^ ASIC 4.0 - Download
  3. ^ In ASIC 3.01 (1991), the manual lists FOR...NEXT, WHILE...WEND and IF...ENDIF but no switch statements, and only GOSUB was provided for subroutines. The example programs use Goto instead of WHILE.
  4. ^ ASIC is the work of David Visti and his compiler takes code that is "almost BASIC" and compiles it down to a very small executable. Archived November 4, 2015, at the Wayback Machine, Programmer's Corner: TIPI: A Small Programming Language for Small Comp, By Kent Peterson
  5. ^ a b ASIC, Area code magic with AC Hunter (computer program) (On Disk) (evaluation), by George Campbell, COMPUTE! ISSUE 126 / FEBRUARY 1991 / PAGE 86
  6. ^ ASIC: The Beginner's Inexpensive Alternative ...ASIC's integrated editor is small but useful. It supports the fundamental operations needed by the language. The fact that there is any sort of an editor bundled with a $10 compiler is miraculous., Basic is back, by Tom Campbell, COMPUTE! ISSUE 126 / FEBRUARY 1991 / PAGE 64