Commodore VIC-20 / C64 / 128 i TheC64Mini, 101 tokenizowanych bajtów BASIC
Oto zaciemniony wykaz przy użyciu skrótów słów kluczowych Commodore BASIC:
0dEfnb(x)=sG(xaNb):inputa$:fOi=1tolen(a$):b=64:c$=mI(a$,i,1):fOj=0to6
1?rI(str$(fnb(aS(c$))),1);:b=b/2:nEj:?" ";:nE
Tutaj w celu wyjaśnienia znajduje się lista symboliczna nie zaciemniona:
0 def fn b(x)=sgn(x and b)
1 input a$
2 for i=1 to len(a$)
3 let b=64
4 let c$=mid$(a$,i,1)
5 for j=0 to 6
6 print right$(str$(fn b(asc(c$))),1);
7 let b=b/2
8 next j
9 print " ";
10 next i
Funkcja fn b
zadeklarowana w linii zero przyjmuje parametr numeryczny, x
którego wartość jest AND
edytowana z wartością b
; SGN jest następnie wykorzystywany do konwersji x and b
do1
lub 0
.
Pierwszy wiersz akceptuje ciąg wejściowy do zmiennej a$
, a pętla rozpoczyna się (oznaczona za pomocą i
) na długości tego wejścia. b
reprezentuje każdy bit od 6 do 0 bitu. c$
przyjmuje każdy znak ciągu na pozycjęi
.
linia 5 rozpoczyna pętlę w celu przetestowania każdej pozycji bitu; right$
jest używany w wierszu 6 do usunięcia problemu z automatycznym formatowaniem, gdy Commodore BASIC wyświetla liczbę, przekształcając dane wyjściowe fn b
na ciąg;asc(c$)
konwertuje bieżący znak na jego kod ascii jako wartość dziesiętną.
Wiersz 7 reprezentuje następną wartość bitu. Pętla j
kończy się przed wydrukowaniem spacji, a następnie i
kończy się ostatnia pętla .