★ APPLICATIONS ★ COURS DE BIDOUILLAGE ★ Kopiranje programa|Racunari Magazine) ★ |
Sa kasete na disk (Racunari Magazine) | Applications Cours De Bidouillage |
Sa kasete na disk Većini „amstradovaca” model CPC 464 bio je samo usputna stanica u njihovoj kompjuterskoj evoluciji ka modelu CPC 6128. Nakon početnog oduševljenja zbog Izuzetnih mogućnosti ove mašine, došlo je neminovno do laganog hlađenja (ovo se odnosi uglavnom na najmlađi sloj hakerskog staleža) kada se saznalo da se veliki broj komercijalnih programa, uglavnom Igara, ne može presnimiti sa kaseta na diskete, bar ne onako Jednostavno kako se vrši prenos sa kasete na kasetu. Glavu gore I za to Ima leka! U početku su za kopiranje programa sa kasete na disketu pronađena privremena rešenja (koja su se. na žalost, zadržala sve do danas) — na yu Piraťs Trade pojavili su se nemački DISCOPY i domaći ali sa stranim imenom Tape-Disc by Wizard kojim su delimično ublažili probleme. Nešto kasnije pojavila se prava hrpa sličnih „copy" programa. ali bez neke naročite vrednosti. Izuzetak je jedino „Locksmith" koji je sa sobom ipak doneo nešto novo. Na žalost svaki od ova tri programa ima i svojih mana (Discopy ne prima COMPACT snimljene programe, Tape-Disc ne prihvata programe koji se nalaze u video memoriji itd.) Onaj ko do sada nije imao posla sa ,,amstradom" upitaće se, sigurno, gde je zapravo problem kada ima toliko programa za kopiranje? Problem su programi koji su snimljeni bez zaglavlja, tzv. Headerless programi. Nijedan od „copy" programa ne može uspešno da kopira „hederlese" proizvoljnih dužina (LOCKSMITH može do 29K). Svaki program koji je snimljen „Headerless metodom" ima sledeću strukturu: BLOK1 H-1 H2 .... H-n nE N Ključ kojim se otvara brava programa bez zaglavlja nalazi se u bloku 1. Zato ga na samom početku rada treba presnimiti na slobodnu disketu (najbolje sa programom za kopiranje). U ovom trenutku za nas je važna i startna adresa ovog bloka (SA). Nju saznajemo vrlo jednostavno. Ućitavši blok 1 u disk zaglavlje, pročitajmo brof koji označava startnu adresu i zapišimo ga negde. Sada učitajte MONS u računar na adresu koja neće smetati bloku 1. Opcijom R učitajte blok 1 u MONS i na pitanje računalare ,,start adress?'' odgovorite sa našim SA. Kada se blok 1 učita, postavite memorijski pokazivač na SA (opcijom M) i razgledajte mašinac od adrese SA nadalje (opcijom CTRL/A). Pažljivo razgledajte mašinac i zaustavite se kada naiđete na CALL BCA1. U „amstradovom'' donjem ROM-u nalazi se potprogram CAS READ koji učltava programe bez zaglavlja. Njen poziv se ostvaruje u JUMP BLOCK-a sa već navedene adrese BCA1 (pravo mesto potprograma CAS READ je 29A6, naravno u donjem ROM-u). Začudo, ova važna rutina je zaboravljena kada su pravljene „SVE amSTRADOVE rutl-NE“, pa u prilogu navodimo način njene upotrebe, baš kao što je to urađeno i u „Svim ostalim rutinama". Potrebno je zapisati podatke o vrednostima HL, DE, A registara neposredno pre poziva potprograma CAS READ. Najčešće to izgleda ovako: LD A,#16 |
CAS READ Funkcija: učitava sa trake podatke bez zaglavlja #bca1 |
Ovaj program, kao i u prvom slučaju, treba prevesti i snimiti, a ekvivalentan bejzik program je:
Slučaj 3
Treći slučaj je i najteži jer se sve mora uraditi iz mašinca. Evo kako izgleda rutina koja to radi:
Ovaj program prevedite i snimite sa: SAVE „COPY2“, b, &BF00, &40, &BF00 i štartujte sa RUN „COPY 2“ i sve vaše muke će biti — završene. Odmah nakon učitavanja sa kasete program će se iskopirati na vašu disketu.
Zašto smo sve ovo morali da uradimo iz mašinca? Razlog je sasvim jednostavan: bejzik program se smešta od adrese &170 i ako bi naš program koji kopiramo počeo da se učitava od npr. &100. on bi „prešao" preko bejzika i uništio ga, pa ne bismo mogli da snimamo sa SAVE „IME", b, starina adresa, dužina. Program koji smo presnimili sa COPY 2 uvek će se zvati „I. BIN". Ime mu jednostavno promenite po želji sa REN. „IME.BIN", „I.BIN" i time je posao završen.
Problem još jedino može da nastane ako je program bez zaglavlja duži od 43K (tačnije 42830 bajtova) i tada se postupak razlikuje. Najjednostavnije je takav program podeliti na dva dela, tako da jedan smestimo u video memoriju, a kasnije ga vratimo sa LDIR na svoje mesto. Naravno, ovo je moguće postići i elegantnije. bez deljenja. Kako to uraditi? O tome u sledečem nastavku.
Željko Ciganović , Racunari Magazine
|
|