NEW 10 REM Programa de teste 2 11 REM Programa para fazer andar o BORIS através da ligação à porta paralela 12 REM Controlo feito pelo teclado através das setas: seta para cima = para a frente, etc. 13 REM 14 REM Enviar os bit's para a porta paralela com LPRINT CHR$(Bits); 15 REM 16 REM Bit's = 1*n + 2*n + 4*n + 8*n + 16*n + 32*n + 64*n + 128*n 17 REM 18 REM A equação dos Bit's liga-os se n = 1 ou desligados se n = 0 19 REM Primeira posição (1*n) se bit 0 20 REM Última posição (128*n) se bit 7 21 REM Calcular com cada n a 1 ou 0 quais os padrões de saida 22 REM 23 REM Nota: Ponto e virgula (;) no final de LPRINT fixa o 24 REM padrão dos bit's na porta paralela até ao proximo comando LPRINT 25 REM 30 DELAY = 350: REM Aumentar para andar mais devagar, diminuir para andar mais depressa 40 PRINT "Pressionar nas setas para cima, para baixo, para a esquerda, ou para a direita" 50 PRINT "Pressionar na tecla espaço para parar" 60 PRINT "Pressionar na tecla Q para terminar" 100 REM Parar de andar 110 LPRINT CHR$(0); : GOSUB 1000: REM Limpa todos os Bit's 120 GOTO 100 200 REM Andar para a frente 210 LPRINT CHR$(65); : GOSUB 1000: REM Bit 6, 0 ON 220 LPRINT CHR$(4); : GOSUB 1000: REM Bit 2 ON 230 LPRINT CHR$(130); : GOSUB 1000: REM Bit 7, 1 ON 240 LPRINT CHR$(32); : GOSUB 1000: REM Bit 5 ON 250 GOTO 200 300 REM Andar para trás 310 LPRINT CHR$(65); : GOSUB 1000: REM Bit 6, 0 ON 320 LPRINT CHR$(32); : GOSUB 1000: REM Bit 5 ON 330 LPRINT CHR$(130); : GOSUB 1000: REM Bit 7, 1 ON 340 LPRINT CHR$(4); : GOSUB 1000: REM Bit 2 ON 350 GOTO 300 400 REM Virar para a esquerda 410 LPRINT CHR$(66); : GOSUB 1000: REM Bit 6, 1 ON 420 LPRINT CHR$(32); : GOSUB 1000: REM Bit 5 ON 430 LPRINT CHR$(129); : GOSUB 1000: REM Bit 7, 0 ON 440 LPRINT CHR$(4); : GOSUB 1000: REM Bit 2 ON 450 GOTO 400 500 REM Virar para a direita 510 LPRINT CHR$(66); : GOSUB 1000: REM Bit 6, 1 ON 520 LPRINT CHR$(4); : GOSUB 1000: REM Bit 2 ON 530 LPRINT CHR$(129); : GOSUB 1000: REM Bit 7, 0 ON 540 LPRINT CHR$(32); : GOSUB 1000: REM Bit 5 ON 550 GOTO 500 1000 REM Verificar se foi pressionada alguma tecla e fazer o Loop de atraso 1010 A$ = INKEY$ 1020 IF A$ = " " THEN PRINT "Parar": LPRINT CHR$(0); : GOTO 100 1030 IF A$ = CHR$(0) + "H" THEN PRINT "Para a frente": LPRINT CHR$(0); : GOTO 200 1050 IF A$ = CHR$(0) + "P" THEN PRINT "Para trás": LPRINT CHR$(0); : GOTO 300 1060 IF A$ = CHR$(0) + "K" THEN PRINT "Esquerda" : LPRINT CHR$(0); : GOTO 400 1070 IF A$ = CHR$(0) + "M" THEN PRINT "Direita" : LPRINT CHR$(0); : GOTO 500 1080 IF A$ = "Q" OR A$ = "q" THEN LPRINT CHR$(0); : END 1100 FOR I = 1 TO DELAY 1110 NEXT I 1120 RETURN 1900 END