Upiększanie listingu

GemBoy
gemboy@poczta.onet.pl

Tej sztuczki nauczyłem się dość dawno temu... Po prostu listingi programów w BASICU wygladają dzięki temu ładniej, a program dalej działa tak jak powinien ;-) I jeszcze jedno - ja naprawdę nie umiem asemblera - wszystko to powstało na podstawie własnych doświadczeń z pracy w monitorze pamięci C64 ;-) Jako, że używam CCS64 w emulacji C64, to właśnie na podstawie tego emulatora opieram ten tekst.

Co nam będzie potrzebne:
- C64 albo emulator z dostępem do monitora pamięci
- kilkanaście minut czasu
- dyskietka z przykładem
- program do upiększenia ;-)

Jak to zrobić

Najpierw wgrywamy nasz program, który chcemy troszkę upiększyć. Wiadomo, że na początku programu są różne REMy z danymi kto dany program napisał, kiedy go napisał i jak można się z nim skontaktować - po prostu jakaś wizytówka autora programu. Wygląda to mniej więcej tak:

1 REM WRITTEN BY GEMBOY
2 REM CTX:MASTER64@POCZTA.ONET.PL
3 REM TODAY IS 26 V 2002
(zobacz 'KROK 1' na dyskietce z przykładami)

A co my z tym zrobimy? Obetniemy te 'niepotrzebne' początki wierszy, dzięki czemu nasza notka będzie ładniejsza, a ludzie będą się dziwić, jak to możliwe, że to obcięliśmy ;) No więc piszemy parę takich REMów na początku naszego programu i zapisujemy go dla bezpieczeństwa :) Liczymy ile znaków jest od początku wiersza do pierwszej litery tekstu w REMie. W powyższym przykładzie jest to 6 znaków, czyli numer wiersza (1 znak) + REM (3 znaki) + 2 spacje. Teraz przerabiamy nasze REMy aby było w nich tyle miejsc wolnych ile nam wyszło w obliczeniach. Trochę zakręciłem, ale chodzi o to, aby te znaki dodać na poczatku REMa. Będzie to wyglądać mniej wiecej tak:

1 REM 123456WRITTEN BY GEMBOY
2 REM 123456CTX:MASTER64@POCZTA.ONET.PL
3 REM 123456TODAY IS 26 V 2002
(zobacz 'KROK 2' na dyskietce z przykładami)

Jak widać znaki, które dodałem to ciąg 123456. Wziąłem akurat taki ciąg, ponieważ łatwo się go szuka. Teraz wchodzimy do monitora pamięci - w CCSie służy do tego kombinacja ALT+M. W monitorze piszemy 'M 0800 0880' i szukamy naszej kombinacji 123456. W przykładzie są trzy takie kombinacje i zaczynają się one od adresów 0807h 0825h i 0853h. Zamieniamy ten ciąg znaków na znaki o kodzie 14h (otrzymujemy T w odwróconych kolorach). Teraz już tylko ESC (wyjście z monitora) i sprawdzamy LIST:

WRITTEN BY GEMBOY
MASTER64@POCZTA.ONET.PL
TODAY IS 26 V 2002
(zobacz 'KROK 3' na dyskietce z przykładami)

I o to nam chodziło!!! (14h to kod BACKSPACE :)) Mam nadzieję, że wszystko jest wyjaśnione w miarę jasno... Jeśli będą z tym problemy to mailujcie. I nie zapomnijcie zapisać programu po skończonej pracy ;))
A tymczasem na dyskietce z przykładami jest jeszcze jeden listing ('LISTING'), który pokazuje co można zrobić używając powyższego sposobu :) Oczywiście oglądać go możecie tylko po komendzie LIST (a nie RUN!).
A jeśli zamiast kodu 14h wpiszemy 1Dh to kursor przesunie się o jedno miejsce w prawo, jeśli wpiszemy 11h to kursor zjedzie linię w dół, a jeśli wpiszemy kod 20h to pojawi się spacja. Te kilka znaków wystarczy do dobrej zabawy z listingami ;)

 © 1999-2020 Wszystkie prawa zastrzeżone
 Webmaster: Mariusz "Flooder" Młynek