Jedes Programm, das auf Diskette abgespeichert wird, wird vom Betriebssystem bzw. vom Amsdos mit einem sog. ‘Header' versehen (Ausnahme: ASCII-Dateien). In diesem 64 Bytes langen Bereich sind wichtige Daten über das File festgehalten, die mit dem vorliegenden Programm ausgelesen und entschlüsselt werden können. Das sind: 1a. Art des Programms (Basic, Binär, ASCII) 1b. geschützt/ungeschützt 2. Ladeadresse 3. Länge 4. Startadresse (5. Attribut (R/O, R/W)) Punkt 4. wird nur bei Binärdateien angegeben. Bei ASCII-Dateien entfallen die Angaben 2, 3, 4. Programmbeschreibung: Zeile 10-50 Bildaufbau Zeile 60-170 Eingabe von User und Drive Zeile 230-240 Poken des MC-Teils Zeile 250-270 Einlesen des Catalogs in Puffer Zeile 280-730 Auslesen des Puffers Zeile 300-350 Feststellen von Name (a$) Länge in K(PEEK(j)) und Attribut (PEEK(i+9)) Zeile 320 Zeile 400 Header einiesen Zeile 420-480 Feststellen u. Ausgeben d. Programmtyps Zeile 500-520 Feststellen v. Ladeadresse, Länge und Autostartadresse Zeile 540-680 Ausgabe von Ladeadresse, Länge, Autostartadresse und Attribut Zeile 750-760 DAT As für MC-Teil Benutzte AMSDOS-RAM-Adressen: &A700 Enthält akt. Drive-Nummer (0=A, 1=B) &A701 Enthält akt. User-Nummer &A767 Programmtyp (Bitweise aufzuschlüsseln)Bit 2=1 ASCII Bit 1 = 1 Binär Bit 7—1=0 Basic Bit 0=1 protected Bit 0=0 normal &A76A,&A76B Ladeadresse (Low-, Highbyte) &A76D,&A76E Länge (Low-, Highbyte) &A76F,&A770 Autostartadresse (Low-, Highbyte) Assemblerlisting MC-Teil: Hisoft GENA3.1 Assembler. Page 1. Pass 1 errors: 00 A000 10 org #a000 ; Startadresse 20; 30; DIRECTORY LESEN 40; A000 110080 50 ld de,#8000 ; Puffer für CAT A003 CD9BBC 60 call #bc9b ; CAS CATALOG A006 C9 70 ret ; fertig 80; 90; HEADER LESEN 100, A007 DD6601 110 ld h,(ix+01) ; Stringdescriptor A00A DD6E00 120 ld l,(ix+00) ; nach HL A00D 23 130 inc hl A00E 5E 140 ld e,(hl) ; Stringadresse A00F 23 150 inc hl ; nach A010 56 160 ld d,(hl) , DE A011 EB 170 ex de,hl ; muß aber nach HL A012 060C 180 ld b, 12 ; Länge Filename A014 110188 190 ld de,#8801 ; Adresse Puffer A017 CD77BC 200 call #bc77 ; CAS IN OPEN A01A CD7ABC 210 call #bc7a ;CASINCLOSE A01D C9 220 ret ; fertig Programmablauf: Nach dem Starten des Programms wird zuerst nach dem USER-Bereich gefragt, in dem das zu analysierende Programm steht. Drückt man hier nur die Enter-Taste, so wird der Wert, der in den eckigen Klammern steht, angenommen. Als nächstes ist das Laufwerk anzugeben. Auch hier kann durch Betätigen der Enter-Taste der Default-wert übernommen werden. Daraufhin liest der Rechner das Directory der Diskette, ohne es dabei anzuzeigen. Schließlich werden nacheinander alle Programmnamen angezeigt und jedesmal gefragt, ob der entsprechende ‘Header4 entschlüsselt werden soll oder nicht. Das Programm ist gegen Fehlbedienung weitgehend abgesichert, Sie brauchen also keine Angst um Ihre Disketten haben. Benutzte Variablen:
u$ Eingabevariable a$ Name der gerade zu bearbeitenden Datei u USER i,j Schleifenzähler a DATA-Wert ascii Flag, ob ASCII-Datei bin Flag, ob Binär-Datei p Programmart ladr Ladeadresse laenge Länge sadr Startadresse SA ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.7-desktop Page créée en 021 millisecondes et consultée 662 foisL'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. |
|
|