Text out

 


на АААфоруме увидел старенькую программу и решил посмотреть на код.  Программа вы глядит замысловато, но она печатает текст на экране. А почему бы мне самому не написать программу? Запустил BasinC и после некоторых правок получилось нечто:

  10 CLS : LET a$="Text out"
  20 FOR i=1 TO LEN (a$): FOR y=0 TO 7: LET c= CODE (a$(i))*8
  30 LET w=PEEK (15360+c+y): FOR j=7 TO 0 STEP -1
  35 LET b=w-2*INT (w/2)
  40 IF b THEN FOR k=0 TO 3: PLOT (i-1)*32+j*4,175-y*4-k: DRAW 3,0: NEXT k
  50 LET w=INT (w/2): NEXT j
  60 NEXT y
  70 NEXT i

В программе самый сложный участок - это тестирование битов каждого байта. Кажется, я писал код на Atari Basic в 1990-1991 году, вернусь к другой версии.

  10 CLS : LET a$="Text out"
  20 FOR i=1 TO LEN (a$): FOR y=0 TO 7: LET c= CODE (a$(i))*8
  30 LET b=128: LET w=PEEK (15360+c+y): FOR j=0 TO 7
  40 IF b<=w THEN FOR k=0 TO 3: PLOT (i-1)*32+j*4,175-y*4-k: DRAW 3,0: NEXT k: LET w=w-b
  50 LET b=INT (b/2): NEXT j
  60 NEXT y
  70 NEXT i

Программа заработала не сразу: в строке 40 поставил сравнение <, а должно быть <=. После завершения кода BasinC перестал читать  текстовый файл .BAS, пропуская строку 40. Причину обнаружил не сразу: автозамена  LET w=w-b на LET w=w-BIN.  И можно попытаться ускорить программу, но уже не хочется. .TAP+.BAS.

Комментарии