home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / ftp.vapor.com / microdot-1 / md1_src_02.lzx / iso.a < prev    next >
Text File  |  1989-06-24  |  4KB  |  183 lines

  1.  
  2.     section    "_MERGED",data
  3.  
  4.  
  5. BAD    equ 32
  6.     xdef    ___is2ibtab
  7.  
  8. ___is2ibtab:
  9. iso2ibm:
  10.     dc.b 0,1,2,3,4,5,6,7
  11.     dc.b 8,9,10,11,12,13,14,15
  12.     dc.b 16,17,18,19,182,186,22,23
  13.     dc.b 24,25,26,27,28,29,30,31
  14.     dc.b 32,33,34,35,36,37,38,39
  15.     dc.b 40,41,42,43,44,45,46,47
  16.     dc.b 48,49,50,51,52,53,54,55
  17.     dc.b 56,57,58,59,60,61,62,63
  18.     dc.b 64,65,66,67,68,69,70,71
  19.     dc.b 72,73,74,75,76,77,78,79
  20.     dc.b 80,81,82,83,84,85,86,87
  21.     dc.b 88,89,90,91,92,93,94,95
  22.     dc.b 96,97,98,99,100,101,102,103
  23.     dc.b 104,105,106,107,108,109,110,111
  24.     dc.b 112,113,114,115,116,117,118,119
  25.     dc.b 120,121,122,123,124,125,126,127
  26.     dc.b 199,252,233,226,228,224,229,231
  27.     dc.b 234,235,232,239,238,236,196,197
  28.     dc.b 201,181,198,244,247,242,251,249
  29.     dc.b 223,214,220,243,183,209,158,159
  30.     dc.b 255,173,155,156,177,157,188,21
  31.     dc.b 191,169,166,174,170,237,189,187
  32.     dc.b 248,241,253,179,180,230,20,250
  33.     dc.b 184,185,167,175,172,171,190,168
  34.     dc.b 192,193,194,195,142,143,146,128
  35.     dc.b 200,144,202,203,204,205,206,207
  36.     dc.b 208,165,210,211,212,213,153,215
  37.     dc.b 216,217,218,219,154,221,222,225
  38.     dc.b 133,160,131,227,132,134,145,135
  39.     dc.b 138,130,136,137,141,161,140,139
  40.     dc.b 240,164,149,162,147,245,148,246
  41.     dc.b 176,151,163,150,129,178,254,152
  42.  
  43.     xdef    ___ib2istab
  44. ___ib2istab:
  45. ibm2iso:
  46.  
  47.     dc.b 0,1,2,3,4,5,6,7
  48.     dc.b 8,9,10,11,12,13,14,15
  49.     dc.b 16,17,18,19,182,167,22,23
  50.     dc.b 24,25,26,27,28,29,30,31
  51.     dc.b 32,33,34,35,36,37,38,39
  52.     dc.b 40,41,42,43,44,45,46,47
  53.     dc.b 48,49,50,51,52,53,54,55
  54.     dc.b 56,57,58,59,60,61,62,63
  55.     dc.b 64,65,66,67,68,69,70,71
  56.     dc.b 72,73,74,75,76,77,78,79
  57.     dc.b 80,81,82,83,84,85,86,87
  58.     dc.b 88,89,90,91,92,93,94,95
  59.     dc.b 96,97,98,99,100,101,102,103
  60.     dc.b 104,105,106,107,108,109,110,111
  61.     dc.b 112,113,114,115,116,117,118,119
  62.     dc.b 120,121,122,123,124,125,126,127
  63.     dc.b 199,252,233,226,228,224,229,231
  64.     dc.b 234,235,232,239,238,236,196,197
  65.     dc.b 201,230,198,244,246,242,251,249
  66.     dc.b 255,214,220,162,163,165,158,159
  67.     dc.b 225,237,243,250,241,209,170,186
  68.     dc.b 191,169,172,189,188,161,171,187
  69.     dc.b 248,164,253,179,180,145,20,156
  70.     dc.b 184,185,21,175,166,174,190,168
  71.     dc.b 192,193,194,195,142,143,146,128
  72.     dc.b 200,144,202,203,204,205,206,207
  73.     dc.b 208,157,210,211,212,213,153,215
  74.     dc.b 216,217,218,219,154,221,222,152
  75.     dc.b 133,223,131,227,132,134,181,135
  76.     dc.b 138,130,136,137,141,173,140,139
  77.     dc.b 240,177,149,155,147,245,247,148
  78.     dc.b 176,151,183,150,129,178,254,160
  79.  
  80.     section    "text",code
  81.  
  82.     xdef    _siso2ibm
  83. _siso2ibm:
  84.     lea    iso2ibm(a4),a1
  85.     bra.s    l3
  86.  
  87.     xdef    _sibm2iso    ; a0 = string
  88. _sibm2iso:
  89.     lea    ibm2iso(a4),a1
  90. l3:
  91.     moveq    #0,d0
  92. l1:
  93.     move.b    (a0),d0
  94. ;    beq.s    l2
  95.     move.b    0(a1,d0.w),(a0)+
  96.     bne.s    l1
  97. l2:
  98.     rts
  99.  
  100.     xdef    _bibm2iso    ; a0 = block,d0 = count
  101. _bibm2iso:
  102.     lea        ibm2iso(a4),a1
  103.     moveq    #0,d1
  104.     bra.s    bl1
  105. bl2:
  106.     move.b    (a0),d1
  107.     move.b    0(a1,d1.w),(a0)+
  108. bl1:
  109.     dbf        d0,bl2
  110.     rts
  111.  
  112.  
  113.     xdef    _sibmclnl    ; a0 = string
  114. _sibmclnl:
  115.     lea    ibm2iso(a4),a1
  116.     moveq    #0,d0
  117. scl1:
  118.     move.b    (a0),d0
  119.     beq.s    scl3
  120.     cmp.b    #10,d0
  121.     beq.s    scl2
  122.     cmp.b    #13,d0
  123.     beq.s    scl2
  124.  
  125.     move.b    0(a1,d0.w),(a0)+
  126.     bra.s    scl1
  127. scl2:
  128.     clr.b    (a0)
  129. scl3:
  130.     rts
  131.  
  132.     xdef    _biso2ibmnl    ; a0 = from,a1 = to,d0 = inlen
  133.  
  134. _biso2ibmnl:
  135.     movem.l    d2-d5/a2,-(sp)
  136.     lea        iso2ibm(a4),a2
  137.     moveq    #10,d3
  138.     moveq    #13,d4
  139.     moveq    #0,d2
  140.     move.l    a1,d5
  141.     bra.s    xbl2
  142. xbl1:
  143.     move.b    (a0)+,d2
  144.     cmp.b    d4,d2
  145.     beq.s    xbl2    ; CR ⁿberspringen
  146.     move.b    0(a2,d2.w),(a1)+
  147.     cmp.b    d3,d2    ; LF?
  148.     bne.s    xbl2
  149.     move.b    d4,(a1)+
  150. xbl2:
  151.     dbf    d0,xbl1
  152.     move.l    a1,d0
  153.     sub.l    d5,d0    ; outbytes
  154.     movem.l    (sp)+,d2-d5/a2
  155.     rts
  156.  
  157.  
  158.     xdef    _scpy_iso2ibm    ; a0 = from,a1 = to
  159. _scpy_iso2ibm:
  160.     move.l    a2,d1
  161.     lea        iso2ibm(a4),a2
  162.     moveq    #0,d0
  163. yy1:
  164.     move.b    (a0)+,d0
  165.     move.b    0(a2,d0.w),(a1)+
  166.     bne.s    yy1
  167.     move.l    d1,a2
  168.     rts
  169.  
  170.     xdef    _scpy_ibm2iso    ; a0 = from,a1 = to
  171. _scpy_ibm2iso:
  172.     move.l    a2,d1
  173.     lea        ibm2iso(a4),a2
  174.     moveq    #0,d0
  175. yy3:
  176.     move.b    (a0)+,d0
  177.     move.b    0(a2,d0.w),(a1)+
  178.     bne.s    yy3
  179.     move.l    d1,a2
  180.     rts
  181.  
  182.     end
  183.