home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / apps / dtp / pgsmodst / atariexp / ascii.s next >
Text File  |  1991-08-20  |  4KB  |  210 lines

  1.  
  2.  Include "expequ.h"
  3.  Include "equ.h"
  4.  
  5.  
  6.     .text
  7.  
  8. ***************************************************
  9. ***                        ***
  10. ***************************************************
  11. dumbentry:
  12.     clr.l    d0
  13.     rts
  14.  
  15.     dc.l    "EXPT"
  16.     dc.w    200
  17.     dc.l    0
  18.  
  19. table:    dc.l    0
  20.     dc.l    name,special,check,ascii
  21.  
  22. check:
  23. rrts:    rts
  24.  
  25. *
  26. * Ascii
  27. *
  28. ascii:    move.l    table,a0
  29.     move.l    f_openw(a0),a0
  30.     jsr    (a0)
  31.     beq    rrts
  32.  
  33.     move.l    table,a0
  34.     move.l    setrange(a0),a0
  35.     jsr    (a0)
  36.  
  37.     move.l    table,a0
  38.     move.l    doflag(a0),a0
  39.     tst.b    (a0)
  40.     beq    asc10
  41.  
  42.     bsr    asc1
  43.  
  44. asc10:    move.l    table,a0
  45.     move.l    f_closew(a0),a0
  46.     jmp    (a0)
  47.  
  48.  
  49.  
  50. asc1:    move.l    table,a0
  51.     move.l    dorange(a0),a0
  52.     jsr    (a0)
  53. *
  54. * this will get called for every chunk of text to be exported till
  55. * all chunks are gone
  56. *
  57.     move.l    table,a4
  58.     move.l    objptr(a4),a3
  59.     move.l    (a3),a3
  60.     move.l    (a3),a3
  61.  
  62.     move.l    markcol1(a4),a0
  63.     move.w    (a0),d0
  64.     mulu    #ob_SizeOf,d0
  65.     move.l    ob_Ptr(a3,d0.l),a0
  66.     move.l    (a0),a0
  67.     move.l    cm_THandle(a0),a0
  68.     move.l    (a0),a0
  69.     move.l    a0,a1
  70.     move.l    markoff1(a4),a2
  71.     add.l    (a2),a0
  72.     move.l    markoff2(a4),a2
  73.     add.l    (a2),a1
  74.     move.l    a0,curptr
  75.     move.l    a1,endptr
  76.  
  77. *
  78. asc2:    move.l    curptr,a0
  79.     cmp.l    endptr,a0
  80.     bcc    rrts
  81.     move.b    (a0)+,d0
  82.     beq    asc9
  83.     move.l    a0,curptr
  84.  
  85.     lea    ktoi,a0
  86.     move.b    d0,d1
  87.     moveq    #0,d0
  88. asc3:    cmp.b    (a0)+,d1
  89.     beq    asc4
  90.     addq.w    #1,d0
  91.     cmp.w    #256,d0
  92.     bcs    asc3
  93.     bra    asc2
  94. asc4:    bsr    putbyte
  95.     bra    asc2
  96.  
  97. asc9:    moveq    #0,d0
  98.     move.b    (a0)+,d0
  99.     move.l    a0,curptr
  100.     move.l    d0,-(sp)
  101.  
  102.     lsl.w    #2,d0
  103.     lea    t_rtns,a0
  104.     move.l    0(a0,d0.w),a0
  105.     jsr    (a0)
  106.  
  107.     move.l    (sp)+,d0
  108.     move.l    table,a0
  109.     move.l    cmdlength(a0),a0
  110.     move.b    0(a0,d0.l),d0
  111.     add.l    d0,curptr
  112.     bra    asc2
  113.  
  114.  
  115. *****************************************
  116. *                    *
  117. *****************************************
  118. crlf:    move.b    #$d,d0            ;cr
  119.     bsr    putbyte
  120.     move.b    #$a,d0            ;lf
  121.     bra    putbyte
  122.  
  123. tab:    move.b    #9,d0            ;tab
  124.     bra    putbyte
  125.  
  126. *****************************************
  127. *                    *
  128. *****************************************
  129. putbyte:
  130.     move.l    table,a1
  131.     move.l    f_put(a1),a1
  132.     jmp    (a1)
  133.  
  134. *****************************************
  135. *                    *
  136. *****************************************
  137. putword:
  138.     move.l    table,a1
  139.     move.l    f_putw(a1),a1
  140.     jmp    (a1)
  141.  
  142. *************************************************************
  143. *************************************************************
  144.     .data
  145. *
  146.  
  147. t_rtns:    dc.l    rrts,crlf,rrts,rrts,rrts,rrts,tab,rrts
  148.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  149.  
  150.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  151.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  152.  
  153.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  154.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  155.  
  156.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  157.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  158.  
  159.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  160.     dc.l    rrts,rrts,rrts,rrts,rrts,rrts,rrts,rrts
  161.  
  162.  
  163. ktoi:    dc.b    $00,$00,$00,$00,$00,$00,$00,$00        ;$00-$07
  164.     dc.b    $00,$00,$00,$00,$00,$00,$00,$00        ;$08-$0f
  165.     dc.b    $00,$00,$00,$00,$00,$00,$00,$00        ;$10-$17
  166.     dc.b    $00,$00,$00,$00,$00,$00,$00,$00        ;$18-$1f
  167.     dc.b    $20,$21,$22,$23,$24,$25,$26,$27
  168.     dc.b    $28,$29,$2a,$2b,$2c,$2d,$2e,$2f
  169.     dc.b    $30,$31,$32,$33,$34,$35,$36,$37
  170.     dc.b    $38,$39,$3a,$3b,$3c,$3d,$3e,$3f
  171.     dc.b    $40,$41,$42,$43,$44,$45,$46,$47
  172.     dc.b    $48,$49,$4a,$4b,$4c,$4d,$4e,$4f
  173.     dc.b    $50,$51,$52,$53,$54,$55,$56,$57
  174.     dc.b    $58,$59,$5a,$5b,$5c,$5d,$5e,$5f
  175.     dc.b    $60,$61,$62,$63,$64,$65,$66,$67
  176.     dc.b    $68,$69,$6a,$6b,$6c,$6d,$6e,$6f
  177.     dc.b    $70,$71,$72,$73,$74,$75,$76,$77
  178.     dc.b    $78,$79,$7a,$7b,$7c,$7d,$7e,$00
  179.  
  180.     dc.b    199,252,233,226,228,224,229,231
  181.     dc.b    234,235,232,239,238,236,196,197
  182.     dc.b    201,230,198,244,246,242,251,249
  183.     dc.b    254,214,220,162,163,161,187,164
  184.     dc.b    225,237,243,250,241,209,189,156
  185.     dc.b    185,000,141,145,144,186,136,137
  186.     dc.b    227,245,159,191,247,215,192,195
  187.     dc.b    213,000,000,180,181,183,184,182
  188.     dc.b    000,000,138,000,000,000,000,000
  189.     dc.b    000,000,000,000,000,000,000,000
  190.     dc.b    000,000,000,000,000,000,000,000
  191.     dc.b    000,000,000,000,000,165,000,151
  192.     dc.b    000,000,000,150,000,000,153,000
  193.     dc.b    000,000,000,000,000,160,000,000
  194.     dc.b    131,140,135,134,000,000,139,130
  195.     dc.b    155,172,171,128,147,148,149,173
  196.  
  197. *
  198. special:
  199.     dc.w    1
  200.     dc.l    spc1
  201.  
  202. name:    dc.b    "Ascii Text v2.0.0",0
  203. spc1:    dc.b    "Stripped Ascii",0
  204.  
  205.  
  206.     .bss
  207.  
  208. curptr:    ds.l    1
  209. endptr:    ds.l    1
  210.