Makroassembler ATMAS II
Czy ktoś jeszcze pamięta że w czasach gdy QA nieistniał a PC-ty były jeszcze w
brzuchu mamy, ludzie "maszynówki" pisali posługując się właśnie tym? Ja to zdobyłem na giełdzie (nielegalnie!) Opisu do
tego było ZERO. Krok po kroku, metodą prób i błędów odkryłem niektóre polecenia, dyrektywy oraz inne możliwości. :( Tak
było. Internetu nie było. SERIOUS'a nie było. SYZYGY nie istniało. ATARYNKA SIKORA nie była nawet poczęta Drukarki nie
miałem. Jedno co było, to było trudno. Jako że na dysku zostało trochę miejsca, więc zamieszczam ten opis robiony na
własny użytek. Może komuś się przyda.
W SERIOUS'ie #14 będzie ATMAS II dla tych którzy tego nie mają, a chcieliby
popróbować i wrócić do dni dawnych by poczuć - jak było. Sam assembler jest TU, ale
dołączę procedury które znajdowały się na dysku. Opis co prawda po niemiecku. Nic to, Będziemy w eUROPIE! Więc życie
wymusza by niemiecki znać. A ogólnie znamy języki obce, znamy. Oto próbka. Delegacja z Polski, konkretnie w stroju
górnika pałętała się po Ukrainie. Ładne ukrainki, a jakże, fotografowały się w towarzystwie przystojniaka, no i
nieomieszkały zapytać nieśmiało: Szto eto? Odpowiedź była błyskawiczna i wyczerpująca. Eto szachtnior from Poland. :))))
Niech mnie kule biją. Pikanterii dodaje fakt że szachtior to mój siostrzeniec, a udzielający odpowiedzi, znajomy. Puk w
czoło. Gdzie ja się obracam?
I temat wiodący... Opis oczywiście jest niekompletny, może ktoś ma całość i podzieli się ze mną? :) Radość będzie że
hej! Już dziękuję choć.... może nic nie nadejdzie :(
Polecenia edytora
CTR+A - przesuń kursor w prawo o jeden znak
CTR+B - pisz B w negacji na ekranie
CTR+C - pisz C w negacji na ekranie
CTR+D - ustaw kursor na końcu tekstu
CTR+E - ustaw kursor na początku tekstu
CTR+H - usuń linię wskazaną kursorem
CTR+I - ustaw kursor na najbliższej tabulacji
CTR+L - pisz L w negacji na ekranie
CTR+N - pisz N w negacji na ekranie
CTR+M - przesuń tekst w dół od pozycji kursora
CTR+P - wywołj monitor assemblera
CTR+S - ustaw kursor na początku następnej linii
CTR+T - pokaż/ukryj znak końca wiersza (M w negacji)
CTR+U - kasuj znak
CTR+V - dziel na dwa/przywróć ekran w poziomie
CTR+X - usuń linię powyżej kursora
CTR+Y - wykonaj asemblację programu
CTR+Z - pisz Z w negacji na ekranie
CTR+(strzałki) - ruch kursora po ekranie
Komendy edytora po ESC
| ESC B ESC ESC | - | przesuń kursor w lewo o jeden znak (BBB) przesuń o 3 znaki |
| ESC D ESC ESC | - | kasuj znak tekstu w linii kursora |
| ESC F ESC ESC | - | przesuń kursor w prawo o jeden znak (FFF) przesuń o 3 znaki |
| ESC ITEKST ESC ESC | - | wpisz TEKST w miejsce kursora |
| ESC J ESC ESC | - | blokuje się |
| ESC K ESC ESC | - | kasuj cały tekst |
| ESC L ESC ESC | - | listuj program na ekran |
| ESC L1 ESC ESC | - | drukuj tekst na P: |
| ESC M ESC ESC | - | powróć do DOS'a |
| ESC RD:NAZWA.EXE ESC ESC | - | wczytaj tekst |
| ESC STEKST ESC ESC | - | szuka TEKST od poz. |
| ESC T ESC ESC | - | kasuj linię na pozycji kursora (TTT) kasuj trzy linie |
| ESC U ESC ESC | - | uruchom zasemblowany program od adresu ORG zawsze jest to A800. Uruchomienie od innego adresu wymaga użycia opcji G MONITORA |
| ESC WD:NAZWA.EXE ESC ESC | - | zapisz tekst na dysk |
Dyrektywy assemblera (w/g Tips and Tricks str.101, 102)
Nie potrzeba pisać numerów linii dla programu
ASC "TEKST" - wprowadź kody TEKST
DFB $10 - wprowadź bajt, BYTE $10 w MAC65
DFW $1020 - wprowadź słowo dwa bajty
EPZ - oznacza stronę zerową
EQU - etykieta
% - wprowadź liczbę binarną
DFB 9B - oznaczenie końca ciągu
JMP EQU FS.7 - kropki rozdzielające cyfry oznacza 3 bajty F5, F6, F7, F5 to etykieta JMP F6,F7 to puste lokacje
ORG - adres umiesczenia programu w RAM (hex)
Polecenia MONITORA
| E (EXIT) | powrót do edytora |
| I (DIR) | katalog dyskietki |
| S (SAVE) | zapisz postać binarną programu From: od adr. To: do adr.(podany po asemblacji) INTO: adres startu programu Filename (D:NAZWA.EXE) |
| D (DISASSEMBLER) | START: od adr. PRINT: Y-tak N-nie po Y R1:(1) OR P:(2) OR VIA PO RTS(3) R1 interface RS 235 P drukarka VIA interface centronics X zakończ disassemblację inny klawisz dalsza disassemblacja |
| F (FILL) | zapisz do RAM From: od adr. To: do adr. With: czym np.20 |
| L (LOAD) | wczytaj program binarny Filename (D:NAZWA.EXE) |
| C (CHANGE) | wpisz podaną wartość do RAM Adress: wyświetli dotychczasową zawartość np. 0600 20 => i oczekuje na podanie nowej wartości, X kończy wpisywanie |
| B (BLOCKTRANSFER) | przemieść blok RAM From: od adr. To: do adresu INTO: gdzie, początek nowego adresu |
| G (GOTO) | uruchom program od podanego adresu |
| M (DUMP) | wyświetl/drukuj zawartość RAM From: od adr. To: do adr. ASCII: Y-tak N-nie wyświetlaj/drukuj M kodów ASCII zawartości RAM PRINT: Y-tak N-nie drukuj |
W komunikatach podawane są numery błędów w hex. O ile dobrze pamiętam ATMAS II chodzi z baaardzo starym DOS'em. Tak
starym, że Stefcio nie zaczął jeszcze pisać swojego.
Przykład wydanego polecenia
ESC RD:NAZWA.EXE ESC ESC
- Naciśnij ESCape
- Wpisz RD:NAZWA pliku
- Naciśnij ESCape
- Naciśnij ESCape
Nie wstawia się spacji pomiędzy kolejne znaki. Gdy dysk jest w stacji, wczyta się plik o podanej nazwie. Gdy jest to kod
źródłowy *.SRC to należy dokonać asemblacji CTR+Y i uruchomić kod wynikowy: ESC U ESC ESC
- wczytaj ATMAS-II (bez Turbo)
- wczytaj źródło (ESC RD:ASCDEMO.SRC ESC ESC)
- asembluj (ESC Y ESC ESC)
- uruchom (ESC U ESC ESC)
Między poleceniami nie rób spacji!
Zenon/DIAL
ATMAS-II
ASCDEMO.SRC - przykładowy plik ATMAS-II
|