home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Utilities / ACDPlay / src / V1.6 / convert.s < prev    next >
Text File  |  1997-03-29  |  4KB  |  105 lines

  1. * Konvertierungsprogramm für alte ACDPlay1.0/1.1-Konfigurationsdateien
  2. * sollte am besten vom Installerskript aufgerufen werden
  3.  
  4. * Das Programm prüft, welche Version vorliegt und handelt dann
  5. * entsprechend.
  6.  
  7. _LVOOpenLibrary     EQU -552        * exec.library
  8. _LVOCloseLibrary    EQU -414
  9. _LVOAllocVec        EQU -684
  10. _LVOFreeVec         EQU -690
  11.  
  12. _LVOOpen            EQU -30         * dos.library
  13. _LVOClose           EQU -36
  14. _LVORead            EQU -42
  15. _LVOAllocDosObject  EQU -228
  16. _LVOFreeDosObject   EQU -234
  17. _LVOExamineFH       EQU -390
  18.  
  19.  move.l         4.w,A6
  20.  moveq          #36,d0
  21.  lea            DosName(pc),A1
  22.  jsr            _LVOOpenLibrary(A6)
  23.  tst.l          D0
  24.  beq.w          Fehler_DosLib
  25.  
  26.  lea            DOSBase(pc),A0
  27.  move.l         D0,(A0)                 * Adresse der Lib sichern
  28.  move.l         D0,A6
  29.  move.l         Filename(pc),D1         * Dateiname als Argument
  30.  move.l         #1005,D2                * MODE_OLDFILE als Argument
  31.  jsr            _LVOOpen(A6)            * Open()
  32.  tst.l          D0                      * Ergebnis testen
  33.  beq.w          Fehler_Open
  34.  
  35.  lea            FileHandle(pc),A0
  36.  move.l         D0,(A0)                 * Struktur sichern
  37.  moveq          #2,D1                   * DOS_FIB als Argument
  38.  moveq          #0,D2                   * NULL für Tagliste
  39.  jsr            _LVOAllocDosObject(A6)  * AllocDosObject()
  40.  tst.l          D0                      * Ergebnis testen
  41.  beq.w          Fehler_AllocDosObject
  42.  
  43.  lea            FIB(pc),A0
  44.  move.l         D0,(A0)                 * FileInfoBlock sichern
  45.  move.l         FileHandle(pc),D1       * FileHandle als Argument
  46.  move.l         D0,D2                   * FIB als Argument
  47.  jsr            _LVOExamineFH(A6)       * ExamineFH()
  48.  tst.l          D0
  49.  beq.w          Fehler_ExamineFH
  50.  
  51.  move.l         FIB(pc),A0              * Adresse des FIBs
  52.  move.l         17(A0),D0               * fib->fib_Size als Argument
  53.  tst.l          D0                      * aber erstmal testen
  54.  beq.w          Fehler_ExamineFH
  55.  
  56.  lea            FIB_Size(pc),A0
  57.  move.l         D0,(A0)                 * fib->fib_Size sichern
  58.  moveq          #0,D1                   * MEMF_ANY als Argument
  59.  move.l         4.w,A6                  * ExecBase
  60.  jsr            _LVOAllocVec(A6)
  61.  tst.l          D0
  62.  beq.w          Fehler_ExamineFH
  63.  
  64.  lea            Buffer(pc),A0
  65.  move.l         D0,(A0)                 * Adresse sichern
  66.  move.l         D0,D2                   * Buffer als Argument
  67.  move.l         FileHandle(pc),D1       * FileHandle als Argument
  68.  move.l         FIB_Size(pc),D3         * fib->fib_Size als Argument
  69.  move.l         DOSBase(pc),A6
  70.  jsr            _LVORead(A6)
  71.  cmp.l          FIB_Size,D0             * Vergleichen
  72.  bne.w          Fehler_Read
  73.  
  74. Fehler_Read:
  75.  move.l         Buffer(pc),A1
  76.  jsr            _LVOFreeVec(A6)
  77.  
  78. Fehler_ExamineFH:
  79.  moveq          #2,D1                   * DOS_FIB als Argument
  80.  move.l         FIB(pc),D2              * FIB als Argument
  81.  jsr            _LVOFreeDosObject(A6)
  82.  
  83. Fehler_AllocDosObject:
  84.  move.l         FileHandle(pc),D1       * FileHandle als Argument
  85.  jsr            _LVOClose(A6)           * Close()
  86.  
  87. Fehler_Open:
  88.  move.l         DOSBase(pc),A1
  89.  move.l         4.w,A6
  90.  jsr            _LVOCloseLibrary(A6)
  91.  
  92. Fehler_DosLib:
  93.  moveq          #0,D0
  94.  rts
  95.  
  96. DosName:    dc.b            "dos.library",0
  97. Filename:   dc.b            "ENVARC:acdplay.cfg",0
  98.             cnop            0,2
  99. DOSBase:    dc.l            0
  100. FileHandle: dc.l            0
  101. FIB:        dc.l            0
  102. FIB_Size:   dc.l            0
  103. Buffer:     dc.l            0
  104.  END
  105.