home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0400 / CCE_0428.ZIP / CCE_0428.PD / RSC2ASM / RSC2ASM.TXT < prev   
Encoding:
Text File  |  1992-08-28  |  6.2 KB  |  141 lines

  1.  
  2.  
  3.       HALLO USER
  4.    ----------------
  5.  
  6.  Resourcen im Programm haben einige Vorteile. Sie sind besser
  7.  geschützt, brauchen nicht extra geladen zu werden und sind
  8.  optimierbar.
  9.  Mit diesem Programm kann man die in einem Resource-File abgelegten
  10.  Menüs und Formulare in Assemblerquelltext umwandeln.
  11.  Man kann also, mit einem Resource-Editor bequem seine GEM-Graphiken
  12.  erstellen, und dann in sein Programm einbinden.
  13.  Wer schon mal ein Formular zu Fuß angelegt hat, weiß zu schätzen,
  14.  was das für eine Erleichterung ist.
  15.  Gleichzeitig optimiert das Programm die TEDINFOs, so daß eine Menge
  16.  Speicherplatz gespart wird.
  17.  Bei der Nutzung ist Vorausetzung, daß man einen Assembler hat, der
  18.  die Bezeichner für die Labels in ganzer Länge auswertet. Die Labels
  19.  bestehen aus der Strukturbezeichnung(zB. tedinfo, ib_pmask), der
  20.  Objektnummer und dem Baumbezeichner.
  21.  Umgewandelt wird die Resource baumweise.
  22.  Die Strukturen werden in folgender Reihenfolge abgelegt:
  23.  Objektvariabelen, TEDINFOs,ICONBLKs mit Bild und Maske, 
  24.  BITBLKs mit Bild, C-Strings für TEDINFOSs und ICONBLKs, C_TEXTe.
  25.  Dadurch wird erreicht, daß alle Informationen für einen Baum
  26.  kompakt hintereinander stehen. Es entsteht natürlich die Gefahr,
  27.  daß eine ungerade Adresse entsteht, um dies zu vermeiden kann man
  28.  ein Kommando einfügen lassen, daß dann den Assembler veranlaßt, auf
  29.  geraden Adressen weiterzumachen.
  30.  Die Koordinatenangaben der einzelnen Objekte werden pixelorientiert
  31.  umgewandelt.
  32.  Um die Zeilenlänge bei C-Strings zu beeinflussen, ist es möglich,
  33.  Label und String in aufeinanderfolgenden Zeilen zu schreiben.
  34.  Für Freunde des PC-relativen-Programmierens gibt es die Möglichkeit,
  35.  die Labels relativ zur Baumadresse zu setzen. Am Ende des Textes
  36.  steht ein Vorschlag, wie eine Relozierungsroutine aussehen könnte.
  37.  
  38.  **********************************************************************
  39.  *                                                                    *
  40.  *  Das vorliegende Programm RSC2ASM ist Public Domain, und kann      *
  41.  *  frei kopiert werden.                                              *
  42.  *  Wer meint, daß ihm dieses Pogramm gefällt und das es nützlich     *
  43.  *  ist, sollte nicht darauf verzichten mir eine kleine finanzielle,  *
  44.  *  PD-übliche Anerkennung zukommen zu lassen.                        *
  45.  *  Der Assemblerquelltext (Profimat ST) kann bei mir bezogen werden. *
  46.  *                                                                    *
  47.  *  Martin Kowalski                                                   *
  48.  *  Lübecker Str. 43                                                  *
  49.  *  0-3018 Magdeburg                                                  *
  50.  *                                                                    *
  51.  *                                                                    *
  52.  **********************************************************************
  53.  
  54.      Bedienungsanleitung:
  55.   --------------------------
  56.  
  57.  1. Nachdem man sich das Eröffnungsformular angesehen hat, kann man
  58.     einige Voreinstellungen treffen:
  59.  
  60.     Buttons:   
  61.     --------
  62.               Labels : absolut/relativ                    Erklärung
  63.     Labels/C-Strings : gleiche Zeile/nächste Zeile        siehe oben
  64.  
  65.  
  66.     Eingaben:
  67.     ---------
  68.      gerade Baumadresse :  Diese Zeichen werden eine Zeile vor
  69.                            jedem Baumlabel eingefügt.
  70.  
  71.              Leerzeilen :  Diese Zeichen werden in jeder Leerzeile
  72.                            eingefügt.
  73.  
  74.     optimierte Tedinfos :  Wenn TE_PTMPLT oder TE_PVALID auf ein
  75.                            ein Nullbyte zeigen, wird dieses Label
  76.                            dafür eingesetzt.
  77.                            Man muß dann aber noch ein Nullbyte mit
  78.                            diesem Label in seinem Quelltext
  79.                            reservieren.
  80.                            Wird kein Label angegeben erfolgt keine
  81.                            Optimierung.
  82.  
  83.  
  84.   2. Nach den Voreinstellungen lädt man das gewünchte Resource-File.
  85.      Es erfolgt keine Überprüfung, ob es wirklich ein Resource-File ist.
  86.  
  87.   3. Es werden jetzt alle Bäume unzentriert der Reihe nach angezeigt.
  88.      Man kann ein eigenes Baumlabel angeben, den aktuellen Baum
  89.      überspringen oder vorzeitig beenden.
  90.      Das Formular ist verschiebbar.
  91.  
  92.   4. Sind alle Bäume umgewandelt oder hat man Beenden gedrückt,
  93.      brauch nur noch auf Disk abgespeichert zu werden.
  94.  
  95.   Wird im Fileselector Abbruch gedrückt, kommt man zum Programmende.
  96.  
  97. ----------------------------------------------------------------------
  98.  
  99.   Diese Routine reloziert immer nur ein Baum, aufrufen kann man sie
  100.   zB.:
  101.        lea tree_1,a0
  102.        bsr relo_tree
  103.  
  104.  
  105.  
  106. relo_tree:   move.l a0,d1    ; Zeiger auf Baum sichern.
  107. relo_loop:   move.w 6(a0),d0 ; OB_TYPE holen
  108.                              ;
  109.                              ; Objekt auf BOXINFO testen.
  110.              cmp.w #20,d0    ; G_BOX
  111.              beq.s next_ob   ;
  112.              cmp.w #25,d0    ; G_IBOX
  113.              beq.s next_ob   ;
  114.              cmp.w #27,d0    ; G_BOXCHAR
  115.              beq.s next_ob   ;
  116.                              ;
  117.              add.l d1,12(a0) ; Zeiger in OB_SPEC relozieren.
  118.                              ;
  119.                              ; Auf C_TEXT prüfen.
  120.              cmp.w #26,d0    ; G_BUTTON
  121.              beq.s next_ob   ;
  122.              cmp.w #28,d0    ; G_STRING
  123.              beq.s next_ob   ;
  124.                              ;
  125.              move.l 12(a0),a1; Zeiger auf Unterstruktur holen, und
  126.              add.l d1,(a1)+  ; ersten Zeiger relozieren.
  127.                              ;
  128.                              ; Auf BITBLK testen.
  129.              cmp.w #23,d0    ; G_IMAGE
  130.              beq.s next_ob   ;
  131.                              ; Jetzt kann es sich nur noch um
  132.                              ; eine TEDINFO oder ein ICONBLK handeln.
  133.              add.l d1,(a1)+  ; Die zwei folgenden Zeiger
  134.              add.l d1,(a1)   ; relozieren.
  135.                              ;
  136. next_ob:     add.l #24,a0    ; Zeiger auf nächstes Objekt setzen.
  137.              btst #5,-15(a0) ; Vorhergehendes Objekt auf LASTOB prüfen.
  138.              beq.s relo_loop ;
  139.              rts             ;
  140.                              ;