Przedsiębiorstwo Handlowo-Produkcyjne
S.C. Malinger


BLACK BOX CARTRIDGE

   Cartridge BLACK BOX 4.0 ułatwia pracę z komputerem, rozszerza jego możliwości (m.in. 31 dodatkowych rozkazów Basic'a) oraz przyśpiesza pracę z magnetofonem. Jest on niezbędny dla użytkowników C-64 posiadających tylko magnetofon.

   W obudowie cartridge'a jest zainstalowany przycisk RESET. W programie BLACK BOX zastosowano poprawiony, szybki, potrójny reset.

   Cartridge zawiera nową wersję TURBO, o większych możliwościach niż ABC-TURBO czy TURBO-ROM, a ponadto w pełni kompatybilne z innymi istniejącymi wersjami. Rozbiegowy odcinek taśmy jest bardzo krótki, paski i dźwięki ułatwiają pracę z magnetofonem. Ponadto ukazują się informacje o adresach startowych i końcowych.

   BLACK BOX umożliwia szybkie kopiowanie i weryfikację.

   Cartridge zawiera program do ustawiania głowicy, co jest szczególnie cenne w sytuacji, gdy nie posiadamy stacji dysków lub drugiego magnetofonu.

   Rozkaz TONES OF MUSIC zamienia klawiaturę C-64 w klawiaturę muzyczną.

   Do dyspozycji użytkownika jest 31 dodatkowych rozkazów Basic'a, przy czym niektóre z nich są przyporządkowane klawiszom funkcyjnym. Część tych rozkazów jest związana z obsługą magnetofonu: COPY, HEAD FIT, LOAD, MERGE, SAVE, VERIFY, WRITE. Pozostałe rozkazy to: AUTONUMBER, COLOR, CURSOR, POSITION, DELETE, EXIT, EXPAND, FIND, HELP, INFO, KEY, KILLER OF SPACE, PACKAGE, QUIT, RENUMBER, REPEAT, SCREEN, TONES OF MUSIC, UNNEW.

   Rozkazy BLACK BOX'a działają z programu i z klawiatury, a występujące w nich wartości mogą być liczbami, zmiennymi lub wyrażeniami algebraicznymi.

INSTRUKCJA OBSŁUGI

   1. URUCHOMIENIE CARTRIDGE'A

   Cartridge należy włożyć do gniazda "expansion port" przy wyłączonym zasilaniu komputera, naklejką do góry. Niestosowanie się do tych zaleceń może spowodować uszkodzenie cartridge'a lub komputera. Po włączeniu zasilania, w czasie 1s. powinien zgłosić się system "C-64 IMPROVED BY BLACK BOX v.4.0". Wszystkie rozkazy BLACK BOX'a rozpoczynające się strzałką są teraz dostępne. Jeżeli jednak wraz z włączeniem zasilania przyciśniemy spację i przytrzymamy ją przez ok. 1s. to zostanie wywołana procedura "normalnego" resetu i zgłosi się system "Commodore 64 BASIC v.2". Komputer zachowuje się teraz tak, jak bez włożonego cartridge'a. Jeśli jednak wykonamy SYS 277, to od tego momentu rozkazy LOAD, SAVE, VERIFY będą działać w systemie TURBO. Przyciśnięcie RUN/STOP + RESTORE przywraca normalny tryb działania tych rozkazów.

   2. UŻYCIE PRZYCISKU RESET

   Cartridge ma zamontowany na górze przycisk RESET. Możliwe są cztery sposoby wykonania resetu:
1. Użycie tylko przycisku RESET powoduje pojawienie się planszy tytułowej, muzyki i krótkiej informacji o cartridge'u. Przyciśnięcie dowolnego klawisza powoduje wejście do systemu BLACK BOX. Ten sposób resetu kasuje zawartość pamięci komputera.
2. Użycie przycisku RESET wraz z klawiszem COMMODORE powoduje wywołanie procedury szybkiego, poprawionego resetu, a następnie zgłasza się system "C-64 IMPROVED BY BLACK BOX v.4.0". Ten sposób resetowania nie niszczy programów maszynowych znajdujących się w pamięci, a programy napisane w Basic'u łatwo odzyskać wydając rozkaz <-V - jest on więc szczególnie zalecany.
3. Reset z przytrzymaną spacją powoduje inicjalizację systemu "COMMODORE 64 BASIC v.2". Od tej chwili komputer zachowuje się jak gdyby nie było cartridge'a. Możliwe jest tylko przyśpieszenie procedur LOAD, SAVE, VERIFY poprzez SYS 277 (dyrektywa <-E).
4. Jeżeli w momencie użycia przycisku RESET przytrzymamy klawisz CTRL, to nastąpi wejście do gry lub innego programu uruchamiającego się poprzez RESET, np: resetowalne wersje SIMON'S BASICA, EXTRA-64, itp (oczywiście jeśli program był uprzednio wczytany).

   3. WCZYTANIE I URUCHOMIENIE GIER.

   Większość gier uruchamia się za pomocą klawisza funkcyjnego F3. Jednakże niektóre gry lub programy użytkowe wymagają włączenia cartridge'a przed uruchomieniem. Wówczas zaleca się jeden z trzech możliwych sposobów postępowania:

   Pierwszy sposób:
1. wczytać grę posługując się instrukcją <-L lub klawiszem F5.
2. Przed uruchomieniem gry włączyć cartridge za pomocą <-Q, np.: <-Q:RUN

   Drugi sposób:
1. Wydać rozkaz <-E.
2. Wczytać grę za pomocą standardowej instrukcji LOAD i uruchomić poprzez RUN.

   Trzeci sposób:
1. Wykonać reset z przytrzymaną spacją.
2. Wydać rozkaz SYS 277.
3. Wczytać grę za pomocą LOAD i uruchomić poprzez RUN.

   4. INFORMACJA O NAGŁÓWKU ZAPISYWANEGO ZBIORU.

   Na początku każdego zapisywanego programu znajduje się nagłówek (header), w którym jest umieszczona nazwa programu, jego adres startowy i końcowy oraz typ nagłówka (headertype).
   Adresy wskazują na obszar pamięci, z którego dany zbiór (program) został zapisany na taśmę. Adres startowy oznacza zawsze pierwszą komórkę należącą do tego obszaru pamięci, a adres końcowy - pierwszą komórkę występującą już poza zapisywanym obszarem (tzn. ostatni bajt zapisywanego zbioru ma numer równy endadress-1).
   Większość programów napisanych w BASIC'u, a także programy maszynowe (gry) startujące z BASIC'a mają zwykle adres startowy = 2049. Pozostałe programy maszynowe, niektóre napisane w BASIC'u (przy zmiennych wskaźnikach w komórkach 43 i 44) i inne zbiory mogą mieć adresy startowe różniące się od tej wartości.
   Typ nagłówka (headertype) może mieć dwie wartości "1" albo "3". Jeżeli typ nagłówka = "3" to zapisany zbiór będzie się zawsze wczytywał pod właściwy adres startowy, bez względu na sposób wczytywania. Ten typ nagłówka powinny mieć w zasadzie wszystkie programy maszynowe, których adres startowy nie jest równy 2049. Jeśli typ nagłówka ma wartość "1", to lokalizacja wczytywanego programu będzie zależeć od sposobu wczytywania. W ten typ nagłówka powinny być wyposażone wszystkie programy pisane w BASIC'u, headertype "1" mogą mieć również programy maszynowe startujące z BASIC'u (np. wszystkie gry uruchamiane rozkazem RUN).
   Headertype "3" uzyskuje się zapisując program z tzw. "adresem wtórnym", np. S"NAZWA",1,1 lub SAVE"NAZWA",1,1. Typ nagłówka "1" można otrzymać zapisując dany zbiór bez adresu wtórnego, np. S"NAZWA" lub SAVE"NAZWA".

   5. LISTA ROZKAZÓW ZWIĄZANYCH Z OBSŁUGĄ MAGNETOFONU.

   <-@ - COPY - kopiowanie na taśmę ostatnio wczytanego zbioru z taśmy (w TURBO) albo z dysku. Z taśmy można kopiować prawie wszystkie istniejące programy zapisane w TURBO (również maszynowe) o dowolnej długości, z wyjątkiem programów z autostartem. Z dysku można w ten sposób przenosić na taśmę wszystkie programy jednoczęściowe uruchamiane rozkazem RUN o długości do 152 bloków. Wczytany zbiór zostanie zapamiętany na taśmie pod tą samą nazwą. Możliwe jest kopiowanie wielokrotne. Kopiowanie powinno następować bezpośrednio po wczytaniu (nie wolno uruchamiać kopiowanego programu ani dokonywać w nim zmian!). Przed rozpoczęciem kopiowania i po każdej zmianie sposobu wczytywania należy zresetować komputer. Rozkaz COPY jest przyporządkowany klawiszowi funkcyjnemu F7.

   <-HF - HEAD FIT - dyrektywa uruchamiania programu do ustawiania głowicy. Do magnetofonu należy włożyć taśmę, wcisnąć "PLAY" i wybrać odpowiedni mod. Głowicę regulować tak by ukazujące się linie były możliwie jak najcieńsze, nie rozdwojone i nie poszarpane.

   <-L - LOAD - odczytywanie programów z taśmy. Rozkaz działa "z klawiatury" i "z programu" (z autostartem). W czasie wyświetlania danych z nagłówka można przerwać procedurę przyciskając klawisz RUN/STOP. W pozostałych sekwencjach należy użyć RUN/STOP + RESTORE. Sposoby zastosowania rozkazu:

   <-L - jest to najbardziej typowy sposób ładowania programów (zbiorów) do komputera. Pierwszy napotkany na taśmie zbiór będzie wczytany do pamięci komputera. Jeżeli zbiór ten ma "headertype 1" to będzie zawsze wczytany w obszar pamięci przeznaczony dla BASIC'a (zwykle począwszy od adresu 2049), bez względu na adres startowy i końcowy. Jeżeli "headertype" programu wynosi 3, to program zostanie wczytany do obszaru pamięci wyznaczonego przez "startadress" i "endadress".

   <-L"NAZWA" - program o zadanej nazwie zostanie wczytany do obszaru pamięci komputera w sposób jak wyżej. Zamiast pełnej nazwy można podać skrót, opuszczając znaki od końca, np. <-L"NAZW", <-L"NA", <-L"N".

   <-L"NAZWA",1,1 - dyrektywa ta powoduje wyszukanie i wczytanie programu zapisanego na taśmie zawsze do obszaru pamięci określonego przez adres startowy i adres końcowy, bez względu na "headertype". Możliwe jest skracanie nazw w sposób podany poprzednio lub nie podawanie nazwy: <-L"",1,1. Rozkaz w tej postaci jest przyporządkowany klawiszowi funkcyjnemu F5.

   <-ME - MERGE - ta dyrektywa powina być stosowana tylko do programów napisanych w BASIC'u i zapisanych na taśmie z headertype 1. Instrukcja działa podobnie jak <-L, z tą różnicą, że jeśli w pamięci komputera znajdował się jakiś program napisany w BASIC'u, to nie zostanie on usunięty, ale do tego programu zostanie dołączony wczytywany program. Wskazane jest, by program doczytywany miał numery linii wyższe niż poprzedni. W przeciwnym razie należy dokonać przenumerowania (instrukcja <-R - RENUMBER). Sposób zastosowania: <-ME lub <-ME"NAZWA".

   <-V - VERIFY - weryfikacja programu. Sposoby użycia rozkazu:

   <-V - weryfikacja pierwszego napotkanego programu. Jest to najbardziej typowy sposób sprawdzania poprawności zapisu na taśmie i można go stosować do wszystkich programów, których adres startowy wynosi 2049, bez względu na headertype oraz do wszystkich programów, których headertype wynosi 3 bez względu na adres startowy.

   <-V"NAZWA" - rozkaz powoduje wyszukanie na taśmie zbioru o nazwie "NAZWA" i weryfikuje go. Sposób i zakres działania programu jak wyżej.

   <-V"NAZWA",1,1 - zbiór o nazwie "NAZWA" będzie wyszukany i zweryfikowany. Dyrektywa ta jest najbardziej uniwersalna, ponieważ weryfikuje wszystkie możliwe zbiory bez względu na headertype, startadress i endadress.

   <-[funt] - VERIFY - weryfikacja ostatnio zapisanego programu. Jest to najszybszy , najpewniejszy sposób weryfikacji. Rozkaz ten jest przyporządkowany klawiszowi funkcyjnemu F8.

   <-S - SAVE - zapisywanie programów. Rozkaz działa "z klawiatury" i "z programu". Sposoby użycia:

   <-S"NAZWA" - zbiór o nazwie "NAZWA" zostanie zapisany na taśmie. Jest to najbardziej typowy sposób zapisu programów. Uzyskuje się zapis headertype 1. W ten sposób należy zapisywać i kopiować wszystkie programy napisane w BASIC'u, jak również wszelkie gry (i inne programy maszynowe) startujące z BASIC'a, to jest uruchamiane rozkazem "RUN". Rozkaz ten jest przyporządkowany klawiszowu funkcyjnemu F6.

   <-S"NAZWA",1,1 - zbiór o podanej nazwie zostanie zapisany na taśmie z headertype 3.

   <-W - WRITE - zapisywanie programów maszynowych w ciągu bajtów, obrazów grafiki HI-RES i innych zbiorów. Rozkaz jest użyteczny szczególnie dla programujących w języku maszynowym. Za pomocą tej dyrektywy można zarejestrować dowolny fragment lub całą pamięć komputera. Sposób wykorzystania:

   <-W,adr.startowy,adr.końcowy"NAZWA" - zapisywanie zbioru określonego przez adres startowy i adres końcowy. Nagłówek jest typu "1".

   <-W,adr.startowy,adr.końcowy"NAZWA",1,1 - jak wyżej, z tym, że headertype wynosi "3".

   UWAGA! ADRES KOŃCOWY POWINIEN BYĆ LICZBĄ CAŁKOWITĄ, O WARTOŚCI DO 65535, WIĘKSZĄ NIŻ ADRES STARTOWY. OD TEJ REGUŁY NALEŻY ODSTĄPIĆ TYLKO W JEDNYM PRZYPADKU: JEŻELI CHCEMY ZAPISAĆ OBSZAR ZAWIERAJĄCY OSTATNIĄ KOMÓRKĘ PAMIĘCI O NR. 65535, TO WÓWCZAS JAKO ADRES KOŃCOWY WYJĄTKOWO PRZYJMUJEMY ZERO.

   6. LISTA ROZKAZÓW ZWIĄZANYCH Z PRZETWARZANIEM PROGRAMÓW NAPISANYCH W JĘZYKU BASIC.

   <-D - DELETE - usuwanie wierszy z programów napisanych w BASIC'u. Sposób wykorzystania: <-D,dolna granica usuwanego obszaru,górna granica obszaru. Np. <-D,200,700 - wiersze o numerach mieszczących się w przedziale od 200 do 700 będą usunięte. <-D,0,400 - wszystkie wiersze o numerach nie większych niż 400 będą usunięte.

   <-F - FIND WORD - poszukiwanie zadanego słowa. Sposób wykorzystania: <-F,"SŁOWO" - będą podawane wszystkie numery wierszy zawierające SŁOWO. W ten sposób można poszukiwać wyrazy zawarte w łańcuchach, po REM'ach, a także nazwy zmiennych.

   <-KR - KILLER OF REM - dyrektywa ta usuwa wszystkie teksty występujące po REM w programach napisanych w BASIC'u, przez co zmniejsza się długość programu. Jeżeli dany wiersz zawiera tylko REM, to jest usuwany w całości. Do takiego wiersza nie należy kierować skoków typu GOTO lub GOSUB. Podawana jest liczba bajtów (długość) programu przed i po operacji.

   <-KS - KILLER OF SPACE - rozkaz usuwa wszystkie zbędne spacje (również w tekstach po REM), przez co zmniejsza się długość programu. Nie są usuwane spacje w łańcuchach.

   <-X - EXPAND - przywracanie spacji (przeciwnie niż <-KS).

   <-P - PACKAGE - dyrektywa zwiększa gęstość upakowania programu, przez co skraca się jego długość. Program skracany może mieć max. 255 skoków typu GOTO lub GOSUB. Bardziej rozbudowane programy można skracać partiami. Rozkaz jest nieodwracalny i po jego wykonaniu nie można już zmieniać programu ani przywrócić poprzedniego stanu. Wykonanie kolejno: <-KR, <-KS, <-P znacznie skraca programy.

   <-U - UNNEW - ratowanie (przywracanie) programów napisanych w BASIC'u po wykonaniu instrukcji NEW lub po resecie.

   <-R - RENUMBER - zmiana numeracji programu napisanego w BASIC'u. Procedura renumeracji uwzględnia i zmienia adresy wszystkich skoków typu GOTO lub GOSUB. Sposób użycia: po wpisaniu komendy program pyta się o numer pierwszego wiersza i o skok (przyrost) numeracji. W przypadku wystąpienia błędów wyświetlany jest odpowiedni komunikat.

   <-A - AUTONUMBER - automatyczna numeracja wierszy. Sposób stosowania: <-A,numer pierwszego wiersza,skok. Np. <-A,100,10. Wartość skoku nie może przekraczać 255. Wyłączenie rozkazu następuje przez wydrukowanie "pustego wiersza" (t.j. do kolejnego zaprogramowanego wiersza nic nie wpisujemy i przyciskamy RETURN). Program jednak pamięta numer wiersza przy którym wyszliśmy z modu "AUTONUMBER". Wykonanie <-A bez podawania liczb spowoduje kontynuację autonumeracji począwszy od numeru tego wiersza.

   <-I - INFO - informacja o ważnych dla BASIC'a adresach. Podawane są kolejno:

adres początku programu napisanego w BASIC'u
adres końca programu napisanego w BASIC'u
adres końca obszaru zmiennych nieindeksowanych
adres końca obszaru dla zmiennych indeksowanych
adres początku obszaru zmiennych łańcuchowych
adres końca obszaru przeznaczonego dla BASIC'a
liczba wolnych bajtów

   7. POZOSTAŁE UŻYTECZNE DYREKTYWY

   <-CO - COLOR - zmiana kolorów ekranu. Sposób wykorzystania: <-C,numer koloru tła,numer koloru ramki. Numery kolorów jak w instrukcji do Commodore 64.

   <-CP - CURSOR POSITION - ustawianie kursora. Sposób wykorzystania: <-CP,numer wiersza,numer kolumny. Numer kolumny = 0-39, numer wiersza = 0-24. Ta dyrektywa jest szczególnie użyteczna "z programu". Po tym rozkazie może następować np. rozkaz PRINT lub INPUT. Np. <-CP,20,12 : PRINT A$.

   <-HE - HELP - listowanie rozkazów systemu BLACK BOX.

   <-YK , <-NK - YES KEY , NO KEY - włączanie i wyłączanie klawiszy funkcyjnych.

   <-YR , <-NR - YES REPEAT , NO REPEAT - jednokrotne naciśnięcie i przytrzymanie danego klawisza powoduje (YES) lub nie (NO) jego wielokrotne drukowanie.

   <-YS , <-NS - YES SCREEN , NO SCREEN - włączenie lub wyłączenie ekranu. Wyłączenie ekranu przyśpiesza wykonanie obliczeń.

   <-YT, <-NT - YES TONES OF MUSIC , NO TONES OF MUSIC - włączenie lub wyłączenie klawiatury muzycznej (muzyczny BEEP). Klawiatura C-64 zmienia się w 3 oktawową klawiaturę umożliwiającą grę jedno-, dwu-, i trzygłosową. Przyciśnięcie SHIFT lub SHIFT LOCK zwiększa wysokość dźwięku o dwie oktawy. W sumie możliwe jest wydobywanie dźwięków pojedyńczych w zakresie 5 oktaw oraz większości dwu- i trójdźwięków. Procedura działa na zasadzie przerwań, możliwa jest równoczesna gra i wykonywanie programów napisanych w BASIC'u.

   <-Q - QUIT - wszystkie rozkazy systemu BLACK BOX zostają wyłączone. Od tej pory komputer działa jak gdyby w ogóle nie było cartridge'a. Na ogół rozkaz ten nie jest potrzebny. W nielicznych przypadkach należy go wykonać przed uruchomieniem niektórych gier lub rozszerzeń BASIC'a. Powrót do systemu BLACK BOX możliwy jest przez reset (najpewniej) lub SYS 288.

   <-E - EXIT - wszystkie rozkazy systemu BLACK BOX rozpoczynające się od strzałki zostają wykluczone. Równocześnie standardowe rozkazy "LOAD", "SAVE" i "VERIFY" działają teraz w systemie TURBO. Przyciśnięcie RUN/STOP i uderzenie w RESTORE wyłącza ten sposób pracy i przywraca standardowy sposób działania tych rozkazów. SYS 277 powoduje, że rozkazy "LOAD", "SAVE" i "VERIFY" znowu działają w systemie TURBO. Podczas wykonywania tych rozkazów nie są podawane adresy i typy nagłówka. Zaletą tego rodzaju pracy jest zgodność rozkazów z CBM BASIC v.2 przy równoczesnym 10-cio krotnym przyśpieszeniu zapisu i odczytu. Rozkazy działają "z klawiatury" jak i "z programu". Instrukcja LOAD wykonana z programu działa z autostartem. W kolejnych autostartach nie jest wykonywany rozkaz CRL, możliwe jest więc zastosowanie tej instrukcji w tzw. "LOADERACH".

   8. KLAWISZE FUNKCYJNE.

   Włączenie klawiszy funkcyjnych następuje za pomocą rozkazu <-YK lub po resecie. Wyłączenie rozkazem <-NK lub poprzez RUN/STOP + RESTORE. Przed uruchamianiem programów zaleca się wyłączanie klawiszy funkcyjnych. Klawiszom tym przyporządkowano następujące rozkazy:

F1 - LIST
F3 - <-NK:RUN
F5 - odczyt z taśmy w TURBO
F7 - kopiowanie ostatnio wczytanego programu
F2 - monitor
F4 - szukanie słowa
F6 - zapis na taśmie w TURBO
F8 - weryfikacja ostatnio zapisanego programu

   Ponadto, gdy włączone są klawisze funkcyjne, możliwe jest wychodzenie z "QUITE MODE" i "INSERT MODE" poprzez przyciśnięcie RUN/STOP.

   9. ASSEMBLER-MONITOR

   Assembler - monitor włącza się za pomocą rozkazu <-MO lub poprzez klawisz funkcyjny F2. Powrót do systemu BLACK BOX przez X i RETURN.
   UWAGA! Przy wprowadzaniu adresów: adres początkowy to pierwszy adres w interesującym nas obszarze pamięci, adres końcowy to pierwszy następny poza tym obszarem. Wszystkie parametry mogą być rozdzielone dowolną liczbą spacji z wyjątkiem parametrów w rozkazach FA, I, S, ?.

   Lista rozkazów z opisem

   A aaaa
Wywołanie assemblera, aaaa - adres startowy (początkowy) programu. Przy wpisywaniu adresów przy rozkazach nie trzeba używać symbolu oznaczającego liczbę heksadecymalną, np.:
LDA 1C2B
BNE 1234
   Gdy wystąpi błąd, kursor przeskakuje z powrotem za adres. Jeżeli chcemy zmienić zakończony już wiersz, np. zmienić adres lub instrukcję musimy ustawić kursor w miejsce, które ma być zmodyfikowane. Po dokonaniu poprawki trzeba nacisnąć RETURN tyle razy, aż kursor dojdzie do miejsca, w którym przerwaliśmy pisanie. Jeżeli mamy wykonać skok a nie jest znany jeszcze adres docelowy, możemy zamiast adresu wstawić etykietę. Etykieta składa się z litery "Z" i z liczby szesnastkowej od 00 do 3E. Np.:
2005 JMP Z03
   Gdy dotarliśmy już do adresu skoku musimy przed rozkazem zapisać etykietę, np.:
204B Z03 LDA 2345
   Poszczególne bajty nie będące rozkazami ani adresami rozkazów (np. krótkie tabele) assembler przyjmuje poprzez podstawienie kropki przed bajtem, np.:
357A.FF
   UWAGA! Etykietować można nie tylko skoki bezwzględne typu JSR czy JMP, ale również skoki względne:
BPL, BMI, BNE, BVS, BCC, BCS, BEQ.
   UWAGA! Gotowy program kończymy literą "F" i przyciskamy RETURN, tym samym będą wyliczone wszystkie długości skoków i adresy.

   B aaaa bbbb
Bajty zawarte w obszarze pamięci od aaaa do bbbb zostaną umieszczone jako wiersze programu napisanego w BASIC'u (w połączeniu z rozkazem DATA). Program jest kreowany automatycznie, pierwszy wiersz danych ma numer 32000. Wszystkie dane są przedstawione jako liczby dziesiętne. Dane te mogą teraz być (lub już są) dołączone do programu napisanego w BASIC'u i po uruchomieniu tego programu ponownie wczytane za pomocą instrukcji READ, a następnie umieszczone za pomocą POKE w odpowiednim obszarze pamięci. Rozkaz ten pozwala na umieszczenie programów maszynowych w programach napisanych w BASIC'u i na start tych podprogramów w BASIC'u.

   C aaaa bbbb cccc dddd eeee
Rozkaz służy do zmiany lokalizacji podprogramów lub całych programów maszynowych. Realizuje dwie funkcje jednocześnie: po pierwsze przepisuje (przesuwa) program z jednego obszaru pamięci do drugiego, po drugie przelicza wszystkie adresy skoków bezwzględnych JSR lub JMP "dopasowując" je do nowego obszaru pamięci, w którym teraz znajduje się program. Znaczenie poszczególnych adresów jest następujące:
aaaa - adres początku obszaru (programu), który ma być przesunięty.
bbbb - adres końca tego obszaru minus jeden.
cccc - adres początku obszaru, do którego ma być przesunięty program.
dddd - adres początkowy całego programu.
eeee - adres końca całego programu

   UWAGA! Należy bardzo uważać, aby adres początkowy obszaru, który ma być przesunięty był rzeczywiście adresem pierwszego bajtu rozkazu maszynowego. Jeżeli się pomylimy i np. pozostawimy spację (120 w kodzie ASCII) wówczas zostanie ona "zinterpretowana" jako rozkaz JSR i cała "interpretacja" pozostałych bajtów programów jak również i wszystkie przeliczenia adresów będą błędne.

   D aaaa lub D aaaa bbbb
Disassembler - służy do badania RAM-u pod kątem programów napisanych w języku maszynowym. Przedstawia rozkazy assemblera w kodzie maszynowym, wyjaśnia również sposób adresowania. Możliwe jest wprowadzenie zmian (poprawka) do disassemblowanego programu.
disassemblacja pojedyńczych wierszy - SPACE
ciągła disassemblacja / zatrzymanie - RETURN
zakończenie disassemblacji - RUN/STOP

   UWAGA! Jeżeli przy wywołaniu disassemblera zamiast litery "O" podamy SHIFT + "O", to disassemblowany tekst będzie wyprowadzany na drukarkę. Nie należy zapomnieć jednak przedtem ustawić drukarki za pomocą rozkazu "P".

   F aa...aa aaaa bbbb
Poszukiwanie określonej kombinacji bajtów w obszarze od aaaa do bbbb np. F C3 C2 CD 38 3000 A000 - poszukiwanie CBM 80.
   UWAGA! po F musi być spacja, a przed adresem - przecinek. Po znalezieniu szukanej kombinacji bajtów drukowany jest adres pierwszego bajtu. Gdy przeszukujemy w/g wielu kryteriów nieistotne części bajtów (lub całe bajty) można zastąpić gwiazdką (lub dwoma gwiazdkami), np.: F A*B*AC* gdy szukamy A0 FF B4 AC A5 78 B5 AC, itd.

   FAxxxx aaaa bbbb
Dyrektywa ta powoduje wyszukiwanie wszystkich 3-bajtowych rozkazów, których operandami jest adres xxxx w obszarze od aaaa do bbbb. Znalezione rozkazy są disassemblowane np. FA1234 2000 2100 będzie poszukiwać i disassemblować rozkazy
LDA 1234,X
CMP 1234,Y
JSR 1234
w obszarze od 2000 do 2100.
   UWAGA! Po FA nie może być spacji.
   UWAGA! Część bajtów z adresu xxxx można zastąpić gwiazdką, np. FAB*** 7A CFFF.

   FZxx aaaa bbbb
Poszukuje rozkazów zaadresowanych w/g formuły ZERO PAGE, np. FZ12 1200 1337
   UWAGA! Po FZ nie ma spacji.

   FRxxxx aaaa bbbb
Poszukuje skoków względnych, np. BEQ, BNE, 3100, 3800, np. FR51**5080 8233.
   UWAGA! Po FR nie ma spacji.

   FIxx aaaa bbbb
Poszukuje operandów typu "imediate" (np. LDA #2C), o wartości xx.
   UWAGA! Po FI nie ma spacji.

   FTaaaa bbbb
Listuje wszystkie nie dające się disassemblować bajty w obszarze od aaaa do bbbb. Ostatecznie otrzymuje się dokładne adresy początkowe i końcowe tabel.
   UWAGA! We wszystkich rozkazach zaczynających się na literę "F", jeżeli zamiast "F" wpiszemy SHIFT + "F", to nastąpi wprowadzenie na drukarkę.

   G aaaa
Rozkaz startu programu maszynowego podobny do SYS z tym, że na końcu programu powinien być rozkaz BRK (a nie RTS), co zapewnia powrót do monitora.

   L"NAZWA",D8 lub L"NAZWA"D8
Ładowanie programów ze stacji dysków.

   Maaaa lub M aaaa bbbb
Listowanie obszaru pamięci począwszy od aaaa do bbbb w postaci liczb szesnastkowych. Po prawej stronie wyprowadzane są dodatkowo znaki ASCII, ale tylko wówczas gdy chodzi o literę, liczbę lub znak matematyczny.
   Po wydaniu tego rozkazu wyprowadzony zostanie tylko jeden wiersz. SPACE listuje następne wiersze, aż do puszczenia klawisza. RETURN albo dowolny inny klawisz - ciągłe listowanie aż do ponownego przyciśnięcia klawisza.
   Po przyciśnięciu RUN/STOP monitor melduje się migającym kursorem. Można wówczas wprowadzać modyfikacje (zmieniać bajty) w poszczególnych wierszach.
   SHIFT + "M" - wyprowadzenie na drukarkę.

   O aaaa bbbb xx
Wypełnienie obszaru pamięci RAM-u od aaaa do bbbb wartością xx, np. O 2031 2109 EA, która oznacza rozkaz NOP.

   Pxx
Ustawienie wyjścia na drukarkę - xx może przyjmować wartości 04 albo 11. Jeżeli xx=04, to komputer startuje drukarkę z wejściem szeregowym, kompatybilną z systemem "COMMODORE", dołączoną do gniazda SERIAL BUS. Jeżeli xx=11, to komputer startuje drukarkę z wejściem CENTRONICS dołączoną do gniazda USER PORT. Po wejściu do monitora wystarczy raz ustawić drukarkę.

   B
Wyświetla zawartość rejestrów procesora.
PC - licznik programu
SR - rejestr stanu
AC - akumulator
XR - rejestr X
YR - rejestr Y
SP - wskaźnik stosu

   S"NAZWA"08aaaa bbbb
Zapis obszaru od aaaa do bbbb-1 na dyskietkę. Numer stacji może być również 09. Po S nie ma spacji.

   W aaaa bbbb cccc
Rozkaz powoduje przepisanie bajtów zawartych w obszarze od aaaa do bbbb do obszaru, którego początkowy adres jest równy cccc, np. W 2000 2800 4000 przepisuje obszar 2000 do 27FF w obszar 4000 do 47FF.

   X
Opuszczamy monitor i powracamy do systemu BLACK BOX.

   #aaaa bbbb
Porównanie, sprawdzenie czy dwa obszary pamięci są identyczne. Podaje się tylko adresy początkowe obszarów. Monitor wykazuje pierwszy adres, gdzie bajty są różne.

   Ponadto assembler-monitor pozwala przeliczyć liczby dziesiętne na szesnastkowe i odwrotnie, a w przypadku liczb 8-bitowych 0-255 (00-FF) - również na postać binarną.

   #xx (xx w granicach od 0 do 255) - przelicza liczbę dziesiętną na postać szesnastkową i binarną.

   #xxxx (xxxx jest większa od 255) - przelicza liczbę dziesiętną na szesnastkową.

   %xxxxxxxx - przelicza liczbę w postaci binarnej na liczbę dziesiętną i szesnastkową.

   ?xxxx+yyyy - dodawanie liczb szesnastkowych.

   ?xxxx-yyyy - odejmowanie liczb szesnastkowych.

   UWAGA! Po "?" i po xxxx nie może być spacji.