home *** CD-ROM | disk | FTP | other *** search
/ The Best of Mecomp Multimedia 1 / Mecomp-CD.iso / amiga / tools / cd / indexcd / bin / sources.lha / sources / SizeAG.s < prev   
Text File  |  1980-01-04  |  4KB  |  191 lines

  1.  
  2.     bra    _main
  3.     dc.b    "$VER: "
  4. Title:    dc.b    " SizeAGv1.0 (11-05-1996) © di Claudio Buraglio",10,0
  5.  
  6. _main:        lea    XOrig,a1
  7.         bsr    ReadArg
  8.         lea    YOrig,a1
  9.         bsr    ReadArg
  10.         lea    XSize,a1
  11.         bsr    ReadArg
  12.         lea    YSize,a1
  13.         bsr    ReadArg
  14.  
  15.         tst.l    YSize
  16.         beq    rts
  17.  
  18.         lea    XOrig,a0
  19.         bsr    StringToBin
  20.         move.w    d0,XOrig
  21.  
  22.         lea    YOrig,a0
  23.         bsr    StringToBin
  24.         move.w    d0,YOrig
  25.  
  26.         lea    XSize,a0
  27.         bsr    StringToBin
  28.         move.w    d0,XSize
  29.  
  30.         lea    YSize,a0
  31.         bsr    StringToBin
  32.         move.w    d0,YSize
  33.  
  34.  
  35. OpenDos:    moveq    #0,d0
  36.         lea    DosName,a1
  37.         move.l  4,a6
  38.         jsr    -552(a6)    ; OpenLibrary
  39.         tst.l    d0
  40.         beq    rts
  41.         move.l    d0,DosBase
  42.  
  43.  
  44.  
  45. Open:        move.l    #AGEnv,d1
  46.         move.l    #1004,d2    ; ReadWrite
  47.         move.l    DosBase,a6
  48.         jsr    -30(a6)        ; Open
  49.         tst.l    d0
  50.         beq    CloseDosBase
  51.         move.l    d0,FileHandle
  52.  
  53. WriteXOrig:    cmp.w    #1000,XOrig
  54.         bge    WriteYOrig
  55.         tst.w    XOrig
  56.         beq    WriteYOrig
  57.  
  58.         move.l    FileHandle,d1    ; File Handle
  59.         move.l    #$4,d2        ; Posizion
  60.         move.l    #-1,d3        ; OFFSET_BEGINNING
  61.         move.l    DosBase,a6
  62.         jsr    -66(a6)        ; Seek
  63.  
  64.         move.l    FileHandle,d1    ; File Handle
  65.         move.l    #XOrig,d2    ; Buffer
  66.         move.l    #2,d3        ; Lenght
  67.         move.l    DosBase,a6
  68.         jsr    -48(a6)        ; Write
  69.  
  70. WriteYOrig:    cmp.w    #1000,YOrig
  71.         bge    WriteX
  72.         tst.w    YOrig
  73.         beq    WriteX
  74.  
  75.         move.l    FileHandle,d1    ; File Handle
  76.         move.l    #$6,d2        ; Posizion
  77.         move.l    #-1,d3        ; OFFSET_BEGINNING
  78.         move.l    DosBase,a6
  79.         jsr    -66(a6)        ; Seek
  80.  
  81.         move.l    FileHandle,d1    ; File Handle
  82.         move.l    #YOrig,d2    ; Buffer
  83.         move.l    #2,d3        ; Lenght
  84.         move.l    DosBase,a6
  85.         jsr    -48(a6)        ; Write
  86.  
  87. WriteX:        cmp.w    #1000,XSize
  88.         bge    WriteY
  89.         tst.w    XSize
  90.         beq    WriteY
  91.  
  92.         move.l    FileHandle,d1    ; File Handle
  93.         move.l    #$8,d2        ; Posizion
  94.         move.l    #-1,d3        ; OFFSET_BEGINNING
  95.         move.l    DosBase,a6
  96.         jsr    -66(a6)        ; Seek
  97.  
  98.         move.l    FileHandle,d1    ; File Handle
  99.         move.l    #XSize,d2    ; Buffer
  100.         move.l    #2,d3        ; Lenght
  101.         move.l    DosBase,a6
  102.         jsr    -48(a6)        ; Write
  103.  
  104. WriteY:        cmp.w    #1000,YSize
  105.         bge    CloseFile
  106.         tst.w    YSize
  107.         beq    CloseFile
  108.  
  109.         move.l    FileHandle,d1    ; File Handle
  110.         move.l    #$a,d2        ; Posizion
  111.         move.l    #-1,d3        ; OFFSET_BEGINNING
  112.         move.l    DosBase,a6
  113.         jsr    -66(a6)        ; Seek
  114.  
  115.         move.l    FileHandle,d1    ; File Handle
  116.         move.l    #YSize,d2    ; Buffer
  117.         move.l    #2,d3        ; Lenght
  118.         move.l    DosBase,a6
  119.         jsr    -48(a6)        ; Write
  120.  
  121. CloseFile:    move.l    FileHandle,d1
  122.         move.l    DosBase,a6
  123.         jsr    -36(a6)        ;Close
  124.  
  125.  
  126.  
  127. CloseDosBase:    movea.l    DosBase,a1
  128.         move.l    4,a6
  129.         jsr    -414(a6)    ; CloseLibrary
  130.         moveq.l    #0,d0
  131. rts:        rts      
  132.  
  133. ;--------------------------------------------------------------------------
  134.  
  135. StringToBin:    moveq    #0,d0
  136.         moveq    #0,d1
  137. .Loop:        move.b    (a0)+,d0
  138.         sub.b    #$30,d0
  139.         tst.b    (a0)
  140.         beq    .Fine
  141.         add.l    d0,d1
  142.         mulu    #10,d1
  143.         bra    .Loop
  144. .Fine:        add.l    d1,d0
  145.         rts      
  146.  
  147. ;--------------------------------------------------------------------------
  148. ReadArg:    cmp.b    #$0a,(a0)    ; se Line Feed...
  149.         beq    .Exit        ; esce.
  150.         cmp.b    #$00,(a0)    ; se Nullo...
  151.         beq    .Exit        ; esce.
  152.         cmp.b    #'"',(a0)    ; Se incontra le virgolette "
  153.         beq    .Virg        ; usa l'apposita routine
  154.         cmp.b    #"'",(a0)    ; Se incontra le virgolette '
  155.         beq    .Virg        ; usa l'apposita routine
  156.         cmp.b    #" ",(a0)    ; Cerca inizio testo
  157.         bne    .loop        ; se si loop
  158.         addq    #1,a0
  159.         bra    ReadArg        ; se no, cicla.
  160. .loop:        cmp.b    #$0a,(a0)    ; se Line Feed
  161.         beq    .Exit
  162.         cmp.b    #$20,(a0)    ; o un'altro spazio
  163.         beq    .Exit        ; esce
  164.         move.b    (a0)+,(a1)+    ; copia lettera
  165.         bra    .loop        ; e cicla
  166. .Virg:        addq.l    #1,a0
  167. .V:        cmp.b    #$0a,(a0)    ; se Line Feed
  168.         beq    .Exit
  169.         cmp.b    #'"',(a0)    ; o un'altra virgoletta
  170.         beq    .ExV        ; esce
  171.         cmp.b    #"'",(a0)
  172.         beq    .ExV
  173.         move.b    (a0)+,(a1)+    ; copia lettera
  174.         bra    .V        ; e cicla
  175. .ExV:        addq    #1,a0
  176. .Exit:        rts
  177.  
  178. ;-------------------------------------------------------------
  179.  
  180. DosBase:    ds.l    1
  181. FileHandle:    ds.l    1
  182. Lock:        ds.l    1
  183.  
  184. XOrig:        ds.l    4
  185. YOrig:        ds.l    4
  186. XSize:        ds.l    4
  187. YSize:        ds.l    4
  188.  
  189. DosName:    dc.b    "dos.library",0
  190. AGEnv:        dc.b    "ENV:AmigaGuide/Workbench",0
  191.