home *** CD-ROM | disk | FTP | other *** search
-
-
- HALLO USER
- ----------------
-
- Resourcen im Programm haben einige Vorteile. Sie sind besser
- geschützt, brauchen nicht extra geladen zu werden und sind
- optimierbar.
- Mit diesem Programm kann man die in einem Resource-File abgelegten
- Menüs und Formulare in Assemblerquelltext umwandeln.
- Man kann also, mit einem Resource-Editor bequem seine GEM-Graphiken
- erstellen, und dann in sein Programm einbinden.
- Wer schon mal ein Formular zu Fuß angelegt hat, weiß zu schätzen,
- was das für eine Erleichterung ist.
- Gleichzeitig optimiert das Programm die TEDINFOs, so daß eine Menge
- Speicherplatz gespart wird.
- Bei der Nutzung ist Vorausetzung, daß man einen Assembler hat, der
- die Bezeichner für die Labels in ganzer Länge auswertet. Die Labels
- bestehen aus der Strukturbezeichnung(zB. tedinfo, ib_pmask), der
- Objektnummer und dem Baumbezeichner.
- Umgewandelt wird die Resource baumweise.
- Die Strukturen werden in folgender Reihenfolge abgelegt:
- Objektvariabelen, TEDINFOs,ICONBLKs mit Bild und Maske,
- BITBLKs mit Bild, C-Strings für TEDINFOSs und ICONBLKs, C_TEXTe.
- Dadurch wird erreicht, daß alle Informationen für einen Baum
- kompakt hintereinander stehen. Es entsteht natürlich die Gefahr,
- daß eine ungerade Adresse entsteht, um dies zu vermeiden kann man
- ein Kommando einfügen lassen, daß dann den Assembler veranlaßt, auf
- geraden Adressen weiterzumachen.
- Die Koordinatenangaben der einzelnen Objekte werden pixelorientiert
- umgewandelt.
- Um die Zeilenlänge bei C-Strings zu beeinflussen, ist es möglich,
- Label und String in aufeinanderfolgenden Zeilen zu schreiben.
- Für Freunde des PC-relativen-Programmierens gibt es die Möglichkeit,
- die Labels relativ zur Baumadresse zu setzen. Am Ende des Textes
- steht ein Vorschlag, wie eine Relozierungsroutine aussehen könnte.
-
- **********************************************************************
- * *
- * Das vorliegende Programm RSC2ASM ist Public Domain, und kann *
- * frei kopiert werden. *
- * Wer meint, daß ihm dieses Pogramm gefällt und das es nützlich *
- * ist, sollte nicht darauf verzichten mir eine kleine finanzielle, *
- * PD-übliche Anerkennung zukommen zu lassen. *
- * Der Assemblerquelltext (Profimat ST) kann bei mir bezogen werden. *
- * *
- * Martin Kowalski *
- * Lübecker Str. 43 *
- * 0-3018 Magdeburg *
- * *
- * *
- **********************************************************************
-
- Bedienungsanleitung:
- --------------------------
-
- 1. Nachdem man sich das Eröffnungsformular angesehen hat, kann man
- einige Voreinstellungen treffen:
-
- Buttons:
- --------
- Labels : absolut/relativ Erklärung
- Labels/C-Strings : gleiche Zeile/nächste Zeile siehe oben
-
-
- Eingaben:
- ---------
- gerade Baumadresse : Diese Zeichen werden eine Zeile vor
- jedem Baumlabel eingefügt.
-
- Leerzeilen : Diese Zeichen werden in jeder Leerzeile
- eingefügt.
-
- optimierte Tedinfos : Wenn TE_PTMPLT oder TE_PVALID auf ein
- ein Nullbyte zeigen, wird dieses Label
- dafür eingesetzt.
- Man muß dann aber noch ein Nullbyte mit
- diesem Label in seinem Quelltext
- reservieren.
- Wird kein Label angegeben erfolgt keine
- Optimierung.
-
-
- 2. Nach den Voreinstellungen lädt man das gewünchte Resource-File.
- Es erfolgt keine Überprüfung, ob es wirklich ein Resource-File ist.
-
- 3. Es werden jetzt alle Bäume unzentriert der Reihe nach angezeigt.
- Man kann ein eigenes Baumlabel angeben, den aktuellen Baum
- überspringen oder vorzeitig beenden.
- Das Formular ist verschiebbar.
-
- 4. Sind alle Bäume umgewandelt oder hat man Beenden gedrückt,
- brauch nur noch auf Disk abgespeichert zu werden.
-
- Wird im Fileselector Abbruch gedrückt, kommt man zum Programmende.
-
- ----------------------------------------------------------------------
-
- Diese Routine reloziert immer nur ein Baum, aufrufen kann man sie
- zB.:
- lea tree_1,a0
- bsr relo_tree
-
-
-
- relo_tree: move.l a0,d1 ; Zeiger auf Baum sichern.
- relo_loop: move.w 6(a0),d0 ; OB_TYPE holen
- ;
- ; Objekt auf BOXINFO testen.
- cmp.w #20,d0 ; G_BOX
- beq.s next_ob ;
- cmp.w #25,d0 ; G_IBOX
- beq.s next_ob ;
- cmp.w #27,d0 ; G_BOXCHAR
- beq.s next_ob ;
- ;
- add.l d1,12(a0) ; Zeiger in OB_SPEC relozieren.
- ;
- ; Auf C_TEXT prüfen.
- cmp.w #26,d0 ; G_BUTTON
- beq.s next_ob ;
- cmp.w #28,d0 ; G_STRING
- beq.s next_ob ;
- ;
- move.l 12(a0),a1; Zeiger auf Unterstruktur holen, und
- add.l d1,(a1)+ ; ersten Zeiger relozieren.
- ;
- ; Auf BITBLK testen.
- cmp.w #23,d0 ; G_IMAGE
- beq.s next_ob ;
- ; Jetzt kann es sich nur noch um
- ; eine TEDINFO oder ein ICONBLK handeln.
- add.l d1,(a1)+ ; Die zwei folgenden Zeiger
- add.l d1,(a1) ; relozieren.
- ;
- next_ob: add.l #24,a0 ; Zeiger auf nächstes Objekt setzen.
- btst #5,-15(a0) ; Vorhergehendes Objekt auf LASTOB prüfen.
- beq.s relo_loop ;
- rts ;
- ;