Sinclair BASIC - Sinclair BASIC

Sinclair BASIC
Paradigma Imperativo
Projetado por John Grant, Steve Vickers
Desenvolvedor Nine Tiles Networks,
Sinclair Research
Apareceu pela primeira vez 1979 ; 42 anos atrás ( 1979 )
Plataforma ZX80 , ZX81 , ZX Spectrum
Licença Proprietário

Sinclair BASIC é um dialeto da linguagem de programação BASIC usada nos computadores domésticos de 8 bits da Sinclair Research e Timex Sinclair . O intérprete Sinclair BASIC foi feito por Nine Tiles Networks Ltd.

História

Sinclair BASIC foi originalmente desenvolvido em 1979 para o ZX80 por Nine Tiles. Os programadores eram John Grant, o proprietário da Nine Tiles, e Steve Vickers .

Foi inicialmente uma implementação incompleta do padrão BASIC mínimo do American National Standards Institute (ANSI) de 1978 com aritmética inteira apenas, denominado 4K BASIC (para seu tamanho de ROM) para o ZX80. Ele evoluiu através do 8K BASIC de ponto flutuante para o ZX81 e TS1000 (que também estava disponível como uma atualização para o ZX80) e se tornou uma versão quase completa no ROM ZX Spectrum de 16 KB . Está presente em todos os compatíveis com o ZX Spectrum.

Em 2015, existem intérpretes para sistemas operacionais modernos e sistemas mais antigos que permitem que o Sinclair Basic seja usado facilmente.

Sintaxe

Os novos programadores BASIC podem começar com um programa simples, talvez usando a instrução PRINT da linguagem para exibir uma mensagem na tela; um conhecido e exemplo freqüentemente replicado é Kernighan e Ritchie 's programa mundial Olá :

  10 PRINT "Hello, World!"

Palavras-chave

No 16K / 48K ZX Spectrum, há 88 palavras-chave no Sinclair BASIC, denotando comandos (dos quais há 50), funções e operadores lógicos (31) e outras palavras-chave (16, incluindo 9 que também são comandos ou funções):

Palavra-chave Parâmetros Inserido usando Modelo Resumo
ABS number EXTENDED MODE então G Função Retorna o valor absoluto denumber
ACS number EXTENDED MODEentão SYMBOL SHIFT+W Função Retorna o arco cosseno denumber
AND SYMBOL SHIFT+Y Operador lógico Retorna verdadeiro se ambas as condições em qualquer lado da ANDpalavra - chave forem verdadeiras, senão retorna falso
ASN number EXTENDED MODEentão SYMBOL SHIFT+Q Função Retorna o arco seno denumber
AT line, column; SYMBOL SHIFT+I Outro Usado em uma PRINTinstrução para imprimir na linha e coluna especificadas; por exemplo, PRINT AT 5,10;"*"coloca uma estrela na coluna 10 da linha 5.
ATN number EXTENDED MODEentão SYMBOL SHIFT+E Função Retorna o arco tangente denumber
ATTR (line, column) EXTENDED MODEentão SYMBOL SHIFT+L Função Retorna um byte contendo informações sobre as cores da célula de texto na tela, correspondendo ao especificado linee column; observe que, ao contrário da maioria das palavras-chave Sinclair BASIC, os parênteses são obrigatórios; os primeiros três bits indicam a cor da tinta (primeiro plano), o quarto, quinto e sexto bits a cor do papel (fundo), o sétimo bit se as cores são brilhantes ou não, e o oito, se estão piscando
BEEP duration, pitch EXTENDED MODEentão SYMBOL SHIFT+Z Comando Produz som pelo alto-falante do computador; durationestá em segundos, o tom está em semitons acima (valor positivo) ou abaixo (valor negativo) dó médio
BIN number EXTENDED MODE então B Outro Indica que numberestá em notação binária
BORDER number B Comando Define a borda externa da tela com a cor especificada pelo number
BRIGHT number EXTENDED MODEentão SYMBOL SHIFT+B Comando / outro Torna todas as cores a seguir mais brilhantes se numberfor 1, ou seu tom normal se for 0
CAT number EXTENDED MODEentão SYMBOL SHIFT+9 Comando Exibe o conteúdo do ZX Microdrive especificado pornumber
CHR$ number EXTENDED MODE então W Função Retorna o caractere correspondente ao decimal numberno conjunto de caracteres do computador
CIRCLE x, y, r EXTENDED MODEentão SYMBOL SHIFT+H Comando Desenha um círculo com o centro nas coordenadas ( x, y) e no raior
CLEAR address X Comando Limpa a tela, todas as variáveis ​​e a GO SUBpilha e, opcionalmente, define o endereço máximo de RAM a ser usado pelo BASIC
CLOSE # number EXTENDED MODEentão SYMBOL SHIFT+5 Comando Fecha o número do stream especificado para acesso
CLS V Comando Limpa todos os textos e gráficos da tela
CODE string EXTENDED MODE então I Função / outro Retorna o número correspondente ao primeiro caractere no conjunto de caracteresstring do computador ; também usado para economizar memória pedaços arbitrária a fita, disco, etc. e carregá-los de volta - ver , e para obter mais detalhes LOADSAVEVERIFY
CONTINUE C Comando Reinicia um programa depois que ele é interrompido devido a um erro ou quando o usuário pressiona as teclas CAPS SHIFT+ SPACEouBREAK
COPY Z Comando Envia a tela exibida atualmente para a impressora
COS number EXTENDED MODE então W Função Retorna o cosseno denumber
DATA comma-separated values EXTENDED MODE então D Comando / outro Fornece números e / ou strings para usar com o READcomando e permite salvar o conteúdo de uma matriz em fita quando usado com o SAVEcomando (comoSAVE filename DATA array name()
DEF FN name(variable) = operation EXTENDED MODE então 1 Comando Define uma função personalizada que pode ser usada com o FNcomando; as definições da função devem ter o formato f(x)=operations, por exemplo, f(x)=x*2e o nome da função não pode consistir em mais de uma letra, mais um símbolo $ se a função retornar uma string
DIM variable(dimensions) D Comando Declara uma matriz com o especificado dimensions, que pode ser multidimensional (por exemplo DIM a(10,10),; se usado com strings, a última dimensão indica o comprimento de cada uma das strings (portanto, DIM a$(2,5)é uma matriz de duas strings cada uma de cinco caracteres, e DIM b$(5)é uma sequência de cinco caracteres)
DRAW x, y [, r] W Comando Desenha uma linha na INKcor atual para as coordenadas ( x, y) a partir das coordenadas usadas pelo comando anterior PLOTou DRAW; se o opcional rfor fornecido, indica o raio do segmento de círculo a ser desenhado, em radianos
ERASE drive;"filename" EXTENDED MODEentão SYMBOL SHIFT+7 Comando Exclui o arquivo especificado de um ZX Microdrive
EXP number EXTENDED MODE então X Função Retorna e ao podernumber
FLASH number EXTENDED MODEentão SYMBOL SHIFT+V Comando / outro Faz com que todo o texto a seguir alterne suas cores de primeiro plano ( INK) e de fundo ( PAPER)
FN function(value) EXTENDED MODEentão SYMBOL SHIFT+2 Função Chama o functiondefinido anteriormente no programa usandoDEF FN
FORMAT drive;"name" EXTENDED MODEentão SYMBOL SHIFT+0 Comando Formata o cartucho no Microdrive indicado e atribui a ele o identificadorname
FOR variable = start TO end F Comando Inicia um FOR- NEXTloop; o nome da variável pode ter apenas um caractere
GO SUB number H Comando Faz o programa saltar para a linha BASIC especificada por number; quando o programa encontrar o comando RETURN, ele voltará para a instrução após oGO SUB
GO TO number G Comando Faz o programa saltar para a linha BASIC especificada por number
IF condition THEN U Comando Avalia o conditione, se verdadeiro, executa a instrução que segue a palavra-chave THENque deve vir após a condição, por exemploIF a=1 THEN LET b=2
IN address EXTENDED MODEentão SYMBOL SHIFT+I Função Retorna um byte lido da porta de entrada / saída de hardware correspondente aoaddress
INK number EXTENDED MODEentão SYMBOL SHIFT+X Comando / outro Define a cor do primeiro plano para texto e gráficos
INKEY$ EXTENDED MODEentão SYMBOL SHIFT+Z Função Retorna uma string representando a tecla que está sendo pressionada no teclado no momento em que a função é chamada, ou uma string vazia se nenhuma for, mas não espera por um pressionamento de tecla
INPUT [prompt,] variable I Comando Interrompe a execução do programa até que o usuário digite algo no teclado e pressione a Entertecla e, em seguida, armazene o valor inserido no especificado variable; se o opcional promptfor fornecido, isso será mostrado na tela
INT number EXTENDED MODE então R Função Retorna o valor inteiro de number, arredondando para baixo para o número inteiro mais próximo (portanto, INT -1.1retorna −2, não −1)
INVERSE number EXTENDED MODEentão SYMBOL SHIFT+M Comando / outro Inverte as cores em todo o texto seguinte se numberfor 1, de modo que use a cor de tinta atual para o fundo e a cor do papel atual para o texto, ou as restaura ao normal se numberfor 0
LEN string EXTENDED MODE então K Função Retorna o número de caracteres (bytes) em string
LET variable=value L Comando Atribui valueà variável nomeada
LINE EXTENDED MODEentão SYMBOL SHIFT+3 Outro
  • Quando usado em uma INPUTinstrução antes de uma variável de string, não colocará aspas ("") em torno de seu prompt, por exemploINPUT "Name: "; LINE n$
  • Quando usado em uma SAVEinstrução para que, quando o programa BASIC que está sendo salvo seja carregado novamente, ele inicie automaticamente no número de linha indicado
LIST [number] K Comando Exibe o programa BASIC atual na tela; se o opcional numberfor fornecido, ele omite todas as linhas com um número menor
LLIST [number] EXTENDED MODEentão SYMBOL SHIFT+V Comando Como LISTexceção a listagem é saída para a impressora
LN number EXTENDED MODEentão SYMBOL SHIFT+Z Função Retorna o logaritmo natural denumber
LOAD "[filename]" [CODE [address[, length]]| DATA variable()] J Comando Carrega um programa ou dados em RAM de fita, ZX Microdrive , disco, etc., excluindo qualquer programa BASIC existente e variáveis; se uma string vazia ( "") for fornecida, carrega o primeiro programa encontrado, caso contrário, irá procurar na fita o programa nomeado na string; se o opcional CODEfor fornecido, irá carregar o programa na memória no endereço que tinha quando foi salvo, ou no especificado address( lengthtem a intenção de ser uma segurança, para tentar carregar o programa correto no caso de haver vários na fita com o nome correto, mas de comprimentos diferentes); se o opcional DATA variable()for fornecido, carregará os dados da fita na matriz chamadavariable()
LPRINT text EXTENDED MODEentão SYMBOL SHIFT+C Comando Como PRINTexceto a saída é enviada para a impressora
MERGE "[filename]" EXTENDED MODEentão SYMBOL SHIFT+T Comando Como LOAD, exceto que não exclui o programa atual e as variáveis; se houver um número de linha em ambos, o do programa recém-carregado sobrescreve o existente
MOVE stream1 TO stream2 EXTENDED MODEentão SYMBOL SHIFT+6 Comando Move dados de um fluxo (teclado, tela, arquivo, impressora, rede, etc.) para outro
NEW A Comando Apaga o programa BASIC atual e todas as variáveis
NEXT variable N Comando Fecha um FOR- NEXTloop; a variável deve corresponder ao FORcomando correspondente - "vazios" NEXTpara se referir ao imediatamente anterior FORno programa não são permitidos
NOT condition SYMBOL SHIFT+S Operador lógico Retorna verdadeiro se o conditionfor falso, senão retorna falso
OPEN # stream EXTENDED MODEentão SYMBOL SHIFT+4 Comando Abre um stream para ler e / ou escrever para
OR SYMBOL SHIFT+Y Operador lógico Retorna verdadeiro se qualquer uma das condições em qualquer lado da ORpalavra - chave for verdadeira, senão retorna falso
OUT address, value EXTENDED MODEentão SYMBOL SHIFT+O Comando Envia o value(um byte ) para o hardware [E / S mapeada em memória | porta de entrada / saída] correspondente aoaddress
OVER number EXTENDED MODEentão SYMBOL SHIFT+N Comando / outro Irá fazer com que o texto seguinte seja sobreposto com uma operação XOR o que já está na tela se numberfor 1, em vez de apagá-lo, ou apagá-lo se numberfor 0
PAPER number EXTENDED MODEentão SYMBOL SHIFT+C Comando / outro Define a cor de fundo para texto e gráficos
PAUSE delay M Comando Interrompe a execução do programa pelo atraso especificado, em um segundo na Europa ou na América do Norte (portanto, para por um segundo na Europa) PAUSE 50
PEEK address EXTENDED MODE então O Função Retorna um byte que representa o conteúdo do local da memória apontado por address
PI EXTENDED MODE então M Função Retorna o valor de pi
PLOT x, y Q Comando Desenha um pixel na INKcor atual da tela nas coordenadas ( x, y)
POINT (x,y) EXTENDED MODEentão SYMBOL SHIFT+8 Função Retorna 1 se o pixel apontado para as coordenadas gráficas ( x, y) está atualmente na cor de tinta (primeiro plano); caso contrário, retorna 0
POKE address, value O Comando Define o conteúdo da addressRAM paravalue
PRINT [AT x,y;] text P Comando Imprime text(que deve ser uma string ou um número) na tela; se usado com AT, irá imprimir nas coordenadas de texto especificadas, senão na primeira coluna da linha após aquela usada pela última PRINTinstrução
RANDOMIZE [number] T Comando Inicializa o gerador de números aleatórios ; se usado sem um number(ou com 0), ele faz isso com base no relógio interno do computador, caso contrário, usa o numberfornecido, que deve estar na faixa [1.65535]
READ variable EXTENDED MODE então A Comando Pega um valor de uma DATAinstrução e o armazena no nome variable: a primeira vez que READé usada, obtém o primeiro valor após o primeiro DATA, na segunda vez obtém o próximo e assim por diante
REM texto E Comando Começa um comentário no código-fonte, o que significa que tudo após a REMinstrução é ignorado, até o final da linha - observe que isso inclui tudo após dois pontos, que normalmente inicia um novo segmento: 10 REM Nothing to see here : PRINT "Unprintable"não produzirá nenhuma saída, por exemplo
RESTORE [number] EXTENDED MODE então S Comando Reinicia onde os READcomandos procuram por valores em DATAdeclarações: se usado sem um número, o próximo READusará o primeiro DATAno programa, com um número ele usará o primeiro DATAna linha ou após a linha cujo número é indicado
RETURN Y Comando Retorna a execução para a primeira instrução após o último GO SUBcomando que foi executado
RND EXTENDED MODE então T Função Retorna um número pseudo-aleatório com oito algarismos significativos no intervalo [0,1)
RUN [number] R Comando Inicia o programa BASIC atual, a partir de sua primeira linha se nenhum numberfor especificado, do contrário a partir da linha com esse número (ou a primeira depois, se ele não existir)
SAVE "filename" [DATA variable() | LINE number] S Comando Salva o programa BASIC atual em fita ou outro dispositivo de armazenamento, com o filenameespecificado; se o opcional LINEseguido por um número de linha for usado, o programa iniciará automaticamente no número de linha indicado quando ele for LOADinserido novamente; com o opcional DATA, o comando salva o conteúdo do array nomeado pela variável em vez do programa BASIC atual
SCREEN$ [(line, column)] EXTENDED MODEentão SYMBOL SHIFT+ Função / outro Como uma função, identifica o caractere na linha e coluna especificadas na tela. Usado após o nome do arquivo em um comando LOADou SAVE, indica que o conteúdo da memória de exibição deve ser carregado ou salvo; isso essencialmente o torna um atalho para, CODE 16384,6912mas não funciona, VERIFYporque o conteúdo da memória de exibição será diferente no momento em que o comando ler de volta os dados salvos;
SGN number EXTENDED MODE então F Função Devolve 1 se numberfor positivo, 0 se for 0 e -1 se for negativo
SIN number EXTENDED MODE então Q Função Retorna o seno denumber
STEP number SYMBOL SHIFT+D Outro Indica o intervalo usado por uma FORinstrução, por exemplo, FOR n=2 TO 6 STEP 2irá pular n=3e n=5no loop
STOP SYMBOL SHIFT+A Comando Termina a execução do programa atual, saindo para o editor BASIC; também pode ser fornecido quando o computador está aguardando uma entrada usando o INPUTcomando; uma vez que o programa é interrompido, ele pode ser retomado comCONTINUE
SQR number EXTENDED MODE então H Função Retorna a raiz quadrada denumber
STR$ number EXTENDED MODE então Y Função Retorna o caractere do conjunto de caracteres do computador correspondente anumber
TAB column EXTENDED MODE então P Outro Em uma PRINTinstrução, certifique-se de que o texto a ser gerado comece na coluna especificada, quebrando para a próxima linha conforme necessário, mas nunca mais de uma linha
TAN number EXTENDED MODE então E Função Retorna a tangente denumber
THEN statement SYMBOL SHIFT+G Outro Segue a condição em uma IFdeclaração para indicar o que deve acontecer quando a condição for avaliada como verdadeira
TO SYMBOL SHIFT+F Outro Indica um intervalo do número à esquerda de TOaté o número à direita dele, inclusive; quando usado com FORambos os números deve ser fornecido, enquanto se usado para dividir strings, qualquer um pode ser deixado de fora para indicar o início ou o fim da string
USR string or address EXTENDED MODE então L Função Quando chamado com uma string de um único caractere, retorna o endereço de memória no qual o glifo do caractere gráfico definido pelo usuário correspondente a esse caractere é definido. Se chamado com um endereço, ele inicia a execução do código de máquina nesse endereço (tornando-se assim uma das poucas funções Sinclair BASIC a ter um efeito colateral ) e retorna o conteúdo do par de registradores BC do Z80 .
VAL string EXTENDED MODE então J Função Avalia o stringcomo um número e retorna o resultado; isso pode realizar cálculos: VAL "1+2"retorna 3, por exemplo, e também avalia variáveis ​​e até mesmo outras VALinstruções: LET a=1: VAL "a+VAL ""2"""também retorna 3
VAL$ string EXTENDED MODEentão SYMBOL SHIFT+J Função Semelhante a, VALmas avalia a string como uma string
VERIFY "[filename]" EXTENDED MODEentão SYMBOL SHIFT+R Comando Lê um programa de uma fita ou outro armazenamento, de forma semelhante LOAD, mas em vez de carregá-lo na memória, compara-o ao programa que está atualmente na memória; isso tem como objetivo garantir que o programa tenha sido SAVEexecutado corretamente
ZX Spectrum
ZX Spectrum +

Entrada de palavra-chave

Em modelos 48K e mais antigos, as palavras-chave são inseridas por meio do sistema exclusivo de entrada de palavras-chave da Sinclair, conforme indicado na tabela. Os comandos mais comuns precisam apenas de um pressionamento de tecla; por exemplo, pressionar apenas Pno início de uma linha em um Spectrum produz o comando completo PRINT. Comandos menos frequentes requerem sequências de teclas mais complexas: BEEP(por exemplo) é pressionado pressionando-se CAPS SHIFTmais SYMBOL SHIFTpara acessar o modo estendido (modelos posteriores incluem uma EXTENDED MODEtecla), mantendo SYMBOL SHIFTpressionado e pressionando Z. As palavras-chave são codificadas por cores no teclado Spectrum original para indicar qual modo é necessário:

  • Branco : chave apenas
  • Vermelho na própria chave: SYMBOL SHIFTmais a chave
  • Verde acima da chave: EXTENDED MODEseguido pela chave
  • Vermelho abaixo da chave: EXTENDED MODEseguido por SYMBOL SHIFTmais a chave

O ZX81 8K BASIC usadas as formas mais curtas GOTO, GOSUB, CONTe RAND, enquanto que o espectro utilizadas as formas mais longas GO TO, GO SUB, CONTINUEe RANDOMIZE. O ZX80 4K BASIC também usava essas formas mais longas, mas diferia pelo uso da grafia RANDOMISE. O ZX81 8K BASIC foi a única versão usar FAST, SCROLL, SLOWe UNPLOT. A ZX80 4K BASIC tinha a função exclusiva TL$(); era equivalente ao operador de string (2 TO )em versões posteriores.

Pontos código único são atribuídos no conjunto ZX80 caráter , conjunto de caracteres ZX81 e conjunto de caracteres ZX Spectrum para cada palavra-chave ou do operador multi-caractere, ou seja <=, >=, <>, ""(indexado apenas no ZX81), **(substituído com o Spectrum). Eles são expandidos fazendo referência a uma tabela de tokens na ROM. Assim, uma palavra-chave usa apenas um byte de memória, uma economia significativa em relação ao armazenamento tradicional de letra por letra. Isso também significa que o interpretador BASIC pode determinar rapidamente qualquer comando ou função avaliando um byte, e que as palavras-chave não precisam ser palavras reservadas como em outros dialetos BASIC ou outras linguagens de programação, por exemplo, é permitido definir uma variável nomeada PRINTe saída seu valor com PRINT PRINT. Isso também está relacionado ao requisito de sintaxe de que cada linha comece com uma palavra-chave de comando, e pressionar uma tecla para aquele comando no início de uma linha muda o editor do modo de comando para o modo de letra. Assim, a atribuição de variáveis ​​requer LET(ou seja, não apenas ). Essa prática também é diferente de outros dialetos BASIC. Além disso, significava que, ao contrário de outros dialetos BASIC, o intérprete não precisava de parênteses para identificar funções; era suficiente, não necessário (embora o último fosse permitido). A ROM 4K BASIC do ZX80 teve uma pequena lista de excepções a esta: as funções , , , , , , e não tinha sinais de um byte, mas foram digitados em letra por letra e exigiu que os parênteses. Elas foram listadas como FUNÇÕES INTEGRAIS em uma etiqueta acima e à direita do teclado. LET a=1a=1SIN xSIN(x)CHR$()STR$()TL$()PEEK()CODE()RND()USR()ABS()

Os modelos 128K Spectrum, o ZX Spectrum 128, +2, +3, + 2A e + 2B, também armazenavam palavras-chave internamente em pontos de código de um byte, mas usavam um sistema de entrada BASIC convencional letra por letra. Eles também introduziram dois novos comandos:

  • PLAY, que operava o chip de música General Instrument AY-3-8910 dos modelos 128k
  • SPECTRUM, que mudou o espectro de 128k para um modo de compatibilidade de espectro de 48k

O ZX Spectrum 128 original em espanhol incluía quatro comandos adicionais em espanhol, um dos quais não estava documentado. Eles podem ser traduzidos como:

  • EDIT (para editar um número de linha ou chamar o editor de string de tela inteira)
  • RENUM (para renumerar as linhas do programa)
  • DELETE (para deletar linhas de programa)
  • WIDTH (para definir a largura da coluna do dispositivo RS232, mas não documentado porque o código foi quebrado)

Ao contrário das funções LEFT$(), MID$()e RIGHT$()usadas nos onipresentes dialetos Microsoft BASIC para computadores domésticos, partes de strings em Sinclair BASIC são acessadas por faixa numérica. Por exemplo, a$(5 TO 10)fornece uma substring começando com o 5º e terminando com o 10º caractere da variável a$. Assim, é possível substituir os comandos LEFT$()e RIGHT$()simplesmente omitindo a posição esquerda ou direita do array, respectivamente; por exemplo a$( TO 5)é equivalente a LEFT$(a$,5). Além disso, a$(5)sozinho é o suficiente para substituir MID$(a$,5,1).

Nomes de variáveis

Variáveis ​​contendo valores numéricos podem ter qualquer comprimento, enquanto nomes de variáveis ​​de string e array devem consistir em apenas um caractere alfabético. Assim, , , , e são todos bons, enquanto , e não são. LET a=5LET Apples=5LET a$="Hello"DIM a(10)DIM a$(10)LET Apples$="Fruit"DIM Apples(10)DIM Apples$(10)

Os nomes longos de variáveis ​​permitidos para variáveis ​​numéricas podem incluir caracteres alfanuméricos após o primeiro caractere, portanto, são permitidos, mas não . Os nomes de variáveis ​​longos também podem incluir espaços, que são ignorados, então é o mesmo queLET a0=5LET 0a=5LET number of apples = 5LET numberofapples = 5

Versões oficiais

  • 4K BASIC é o ZX80 BASIC original com aritmética somente de inteiros, de John Grant of Nine Tiles para o ZX80, assim denominado por residir em 4  KiB de memória somente leitura (ROM).
  • 8K BASIC é o ZX81 BASIC (também disponível como uma atualização para o ZX80), atualizado com aritmética de ponto flutuante por Steve Vickers , assim chamado por residir em ROM de 8 KiB.
  • 48 BASIC é o BASIC para a memória de acesso aleatório (RAM) original de 16/48 kB ZX Spectrum (e clones), com cores e mais periféricos adicionados por Steve Vickers e John Grant. Ele reside em 16 KiB ROM e começou a ser chamado de 48 BASIC com a introdução do ZX Spectrum 128, momento em que o 16 kB Spectrum não era mais vendido e a maioria dos existentes em uso foram atualizados para 48 kB
  • 128 BASIC é o BASIC para o ZX Spectrum 128. Ele oferece comandos extras e usa entrada letra por letra.
  • +3 BASIC é o BASIC com suporte de disco para o ZX Spectrum +3.
  • T / S 2000 BASIC foi usado no Timex Sinclair 2068 (TS2068) compatível com Spectrum e tem as seguintes seis palavras-chave e as Sinclair BASIC comuns:
    • DELETEexclui os intervalos de linha do programa BASIC. CAPS SHIFT+ 0com o Kcursor produz o comando DELETE.
    • FREEé uma função que fornece a quantidade de RAM livre. PRINT FREEmostrará quanta RAM está livre.
    • ON ERRé uma função de tratamento de erros usada principalmente como ON ERR GO TOou ON ERR CONT.
    • RESETpode ser usado para redefinir o comportamento de ON ERR. Também se destinava a reinicializar os periféricos.
    • SOUND controla o chip de som AY-3-8192.
    • STICK é uma função que fornece a posição do joystick interno (Timex Sinclair 2090).
  • BASIC64 da Timex de Portugal , é uma extensão de software que permite uma melhor programação básica com o modo gráfico 512 × 192 disponível apenas nos computadores da série 2000 Timex . Esta extensão adiciona comandos e faz um remapeamento completo da memória para evitar que o sistema sobrescreva a área de memória da tela estendida. Existem duas versões devido a mapas de memória diferentes - uma versão para TC2048 e uma versão para TS / TC2068 .

Outras versões, extensões, derivados e sucessores

Intérpretes para a família ZX Spectrum

Existem vários intérpretes ZX Spectrum.

Compiladores para a família ZX Spectrum

Existem vários compiladores ZX Spectrum.

  • HiSoft COLT Compiler (também conhecido como HiSoft COLT Integer Compiler)
  • HiSoft BASIC (também conhecido como HiSoft BASIC Compiler), um compilador com capacidade de ponto flutuante e inteiro
  • Compilador laser
  • Compilador Softek 'IS' Integer (sucessor do Softek Integer Compiler)
  • Compilador Completo Softek 'FP'
  • Compilador ZIP

Derivados e sucessores para outros computadores

  • SuperBASIC , um dialeto BASIC muito mais avançado introduzido com ocomputador pessoal Sinclair QL , com algumas semelhanças com os Sinclair BASICs anteriores
  • SAM Basic , o BASIC do SAM Coupé , geralmente considerado um clone do ZX Spectrum
  • ROMU6 por Cesar e Juan Hernandez - MSX
  • Spectrum 48 da Whitby Computers - Commodore 64
  • Sparky eSinclair BASIC de Richard Kelsh, um sistema operacional vagamente baseado no ZX Spectrum BASIC - Zilog eZ80
  • Sinbas de Pavel Napravnik - DOS
  • Básico (e CheckBasic) por Philip Kendall - Unix
  • BINSIC de Adrian McMenamin, uma reimplementação em Groovy modelada em ZX81 BASIC - Java
  • BASin de Paul Dunn, um ambiente de desenvolvimento integrado (IDE) Sinclair BASIC completo baseado em um emulador ZX Spectrum - Windows
  • SpecBAS (também conhecido como SpecOS) de Paul Dunn, um ambiente de desenvolvimento integrado (IDE) que fornece um superconjunto aprimorado de Sinclair BASIC - Windows , Linux , Pandora e Raspberry Pi
  • ZX-Basicus de Juan-Antonio Fernández-Madrigal, um sintetizador, analisador, otimizador, interpretador e depurador de Sinclair BASIC 48K para PCs, que pode ser baixado gratuitamente para Linux e Windows .

Veja também

Notas

Referências

Bibliografia

  • Ardley, Neil (1984). Guia do usuário do Sinclair ZX Spectrum + . Dorling Kindersley em associação com Sinclair Research. ISBN 0-86318-080-9.
  • Vickers, Steven (1982). Programação BASIC do Sinclair ZX Spectrum . Sinclair Research.
  • Vickers, Steven (1983). Sinclair ZX Spectrum BASIC Programming (2 ed.). Sinclair Research.
  • Cambridge Communication (1983). Manual do Sinclair ZX Spectrum Microdrive e Interface 1 . Sinclair Research.

links externos