APPLICATIONSCOURS DE BIDOUILLAGE ★ Kopiranje programa|Racunari Magazine) ★

Sa kasete na disk (Racunari Magazine)Applications Cours De Bidouillage
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

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
BLOK-1 — normalni blok dužine do 2048 bojtova,
H-1 — najčešće SCREEN i dužine je do 16384 bojtova,
H-2 — blokovi bez zaglavlja proizvoljne duzine (ograničeni jedino slobodnom memorijom računara.)
H-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
LD HL, #1000 ; od adrese #1000
LD DE, #7000 ; u dužini od #7000
CALL #BCA1 ; ućitava program bez zaglavlja.

Razlikovaćemo tri slučaja:

Slučaj 1:

H-1 — SCREEN

Slučaj 2:

(H-2 — program bez zaglavlja koji se smešta na adresama većim od #5DC i kraći je od 40K

H-n

Slučaj 3:

H-1 — program bez zaglavlja dužine preko 40K koji se smešta na adresama manjim od #5DC

H-n

Slučaj 1

Učitajte u prethodno resetovan računar GENS i otkucajte sledeći program:

10 ORG #BF00 ; ismešta program od adrese #BF00
22 LD A,#16
30 LD DE, &4000 ;u dužini od #4000
40 LD HL, #C000 ;od adrese #COOO
50 CALL #BCA1 ;ućitava program bez zaglavlja (SCREEN)
60 RET ;vraća se u bejzik

Nakon toga prevedite program (opcijom A), vratite se u bejzik sa b(ENTER) i snimite ovaj mali program sa SAVE „COPY'',b, &BF00, &20.

Kada ste ovo uradili, opet resetujte računar i otkucajte sledeči program.

10 mode 0
20 load „COPY''
30 call &BF00
40 save „SCREEN'', b,&C000,&4000

Premotajte kasetu na početak SCREEN-a, a zatim štartujte program sa RUN. Nakon učitavanja SCREEN-a on če biti kopiran na disketu.

Slučaj 2

I u ovom slučaju treba postupiti na sličan način. Rutina koja to radi izgleda ovako: org # bf00

ld hl,#XXXX
ld de,#YYYY
ld a,#Z
call &bca1
ret

gde su XXXX, YYYY, Z startna adresa, dužina sinhronizacioni bajt, a čitamo ih iz bloka 1 na več opisan način.

CAS READ

Funkcija: učitava sa trake podatke bez zaglavlja #bca1
Ulazni parametri: HL sadrži adresu gde se učitava „hederles“. DE sadrži dužinu podataka, A sadrži sinhronizacioni bajt
Izlazni parametri: ako je sve u redu CARRY je 1, ako je greška pri učitavanju CARRY je 0 i pri tom A sadrži kod greške
Prlja: BC, DE, HL, IX i sve ostale zastavice
Napomena: ovom rutinom se može učitati i samo zaglavlje programa. Tada sinhronizacioni bajt ima vrednost #2C

Ovaj program, kao i u prvom slučaju, treba prevesti i snimiti, a ekvivalentan bejzik program je:

10 mode 0
20 load „copy 1“
30 call &bf00
40 save „ime'' , b,&XXXX, &YYYY

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:

10 ORG &BFOO
20 ld a, Z
30 ld de, #YYYY ; u dužini # YYYY
40 ld hl, # XXXX ; od adrese #XXXX
50 call &bca1 ; učitava program bez zaglavlja
60 ld c,#7 ; DISK*
70 call #bcce ;
80 ld b,1
90 ld hl,#QQQQ ; #QQQQ je adresa naredbe LDC.C
100 call #bc8c ; otvora struju za snimanje
110 ld hl,#XXXX ; OD ADRESE XXXX
120 ld de, #YYYY ; U DUŽINI YYYY
130 ld a, 2
140 call #bc98 ; snima podatke
150 call #bc8f ; i zatvara struju za snimanje
160 ld c,c ; ASC kod za „I"

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

★ ANNÉE: 1985
★ AUTHOR: Željko Ciganović / Računari Magazine
 

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Cours de Bidouilles A100 - Lmdsptdviduqstds 1 (Amstrad Cent Pour Cent)
» Applications » Amstrad Magazine 12 - Dossier Piratage (Amstrad Magazine)
» Applications » Funcionamiento de los sistemas de protección (Amstrad Personal)
» Applications » Les Protections Livrent Leurs Secrets (Tilt)
» Applications » Dossier Piratage 1985 (CPC Revue)
» Applications » Protection Logiciel n°45 (Amstrad Cent Pour Cent)
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 197 millisecondes et consultée 606 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.