ASIC (linguagem de programação)

ASIC é um ambiente de programação (IDE) para linguagem derivada do BASIC, para a qual existem poucas informações. Foi desenvolvida, antes de 1990, para ambientes MS-DOS, por David Visti.

Implementava menos recursos de programação do que outros ambientes para Basic, como o GW Basic da Microsoft.

Seu desenvolvimento foi suspenso na versão 5.0. Seus arquivos podem ser legalmente baixados, por exemplo dos servidores da loja Programmers Heaven e de servidores Simtel Net.

Características

ASIC é muito pobre em comparação com seus BASICs contemporâneos.

Expressões

ASIC não tem o operador de exponenciação ^.

ASIC não tem operadores booleanos (AND, OR, NOT, etc.).

Entrada e saída

Argumentos de PRINT devem ser um literal ou uma variável. PRINT não permite usar expressões combinadas como seus argumentos e não permite usar cadeias concatenadas com ; ou +.

Se um comando PRINT termina com ;, o próximo comando PRINT será retomada na posição onde ele foi detido, como se o seu argumento foi acrescentado para o argumento do comando PRINT atual.

LOCATE linha, coluna
Move o cursor de texto na posição (coluna, linha), onde 0 ≤ coluna e 0 ≤ linha. A posição (0, 0) é o canto superior esquerdo.

Gráficos

PSET (linha, coluna), cor
Ligue o pixel da cor cor para a posição (coluna, linha), onde 0 ≤ coluna e 0 ≤ linha. A posição (0, 0) é o canto superior esquerdo.

Estruturas de controle

Decisões

Uma condição booleana em IF pode ser apenas uma comparação de cadeias de caracteres ou os números, mas não uma comparação das expressões combinadas.

Loops

Em FOR, após TO só pode haver um número - literal ou variável - mas não uma expressão combinada. A cláusula STEP não existe em ASIC.

Utilitário BAS2ASI

Este utilitário, que é usado para converter programas GW-BASIC sintaxe ASIC, na versão 5.0 não suporta alguns recursos do GW-BASIC. Exemplos:

STEP para a estrutura de repetição FOR não é convertido. O programa

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

é convertido em

	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

O operador de exponenciação (^) não é convertido. O programa

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

é convertido em

	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

Ligações externas