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

  1.  
  2.     section    "_MERGED",data
  3.  
  4.  
  5. BAD    equ 32
  6.     xdef    ___is2ibtab
  7.  
  8. ___is2ibtab:
  9. iso2ibm:
  10.  
  11.     dc.b 0,1,2,3,4,5,6,7
  12.     dc.b 8,9,10,11,12,13,14,15
  13.     dc.b 16,17,18,19,20,21,22,23
  14.     dc.b 24,25,26,27,28,29,30,31
  15.  
  16.     dc.b ' ','!',34,'#','$',37,'&',39
  17.     dc.b '(',')','*','+',',','-','.','/'
  18.     dc.b '0','1','2','3','4','5','6','7'
  19.     dc.b '8','9',':',';','<','=','>','?'
  20.     dc.b '@','A','B','C','D','E','F','G'
  21.     dc.b 'H','I','J','K','L','M','N','O'
  22.     dc.b 'P','Q','R','S','T','U','V','W'
  23.     dc.b 'X','Y','Z','[',92,']','^','_'
  24.     dc.b  96,'a','b','c','d','e','f','g'
  25.     dc.b 'h','i','j','k','l','m','n','o'
  26.     dc.b 'p','q','r','s','t','u','v','w'
  27.     dc.b 'x','y','z','{','|','}',126,127
  28.  
  29.     dc.b BAD,BAD,BAD,BAD,BAD,BAD,BAD,BAD
  30.     dc.b BAD,BAD,BAD,BAD,BAD,BAD,BAD,BAD
  31.     dc.b BAD,BAD,BAD,BAD,BAD,BAD,BAD,BAD
  32.     dc.b BAD,BAD,BAD,155,BAD,BAD,BAD,BAD
  33.  
  34.     dc.b ' ',173,155,156,'o',157,'|',21
  35.     dc.b  34,'C',166,174,170,196,'R','-'
  36.     dc.b 248,241,253,'3',39,230,20,250
  37.     dc.b ',','1',167,175,172,171,BAD,168
  38.     dc.b 'A','A','A','A',142,143,146,128
  39.     dc.b 'E',144,'E','E','I','I','I','I'
  40.     dc.b 'D',165,'O','O','O','O',153,'x'
  41.     dc.b 'O','U','U','U',154,'Y','P',225
  42.     dc.b 133,160,131,'a',132,134,145,135
  43.     dc.b 138,130,136,137,141,161,140,139
  44.     dc.b 'd',164,149,162,147,'o',148,246
  45.     dc.b 237,151,163,150,129,'y','p',152
  46.  
  47.     xdef    ___ib2istab
  48. ___ib2istab:
  49. ibm2iso:
  50.  
  51.     dc.b 0,1,2,3,4,5,6,7
  52.     dc.b 8,9,10,11,12,13,14,15
  53.     dc.b 16,17,18,19,20,21,22,23
  54.     dc.b 24,25,26,27,28,29,30,31
  55.  
  56.     dc.b ' ','!',34,'#','$',37,'&',39
  57.     dc.b '(',')','*','+',',','-','.','/'
  58.     dc.b '0','1','2','3','4','5','6','7'
  59.     dc.b '8','9',':',';','<','=','>','?'
  60.     dc.b '@','A','B','C','D','E','F','G'
  61.     dc.b 'H','I','J','K','L','M','N','O'
  62.     dc.b 'P','Q','R','S','T','U','V','W'
  63.     dc.b 'X','Y','Z','[',92,']','^','_'
  64.     dc.b  96,'a','b','c','d','e','f','g'
  65.     dc.b 'h','i','j','k','l','m','n','o'
  66.     dc.b 'p','q','r','s','t','u','v','w'
  67.     dc.b 'x','y','z','{','|','}',126,127
  68.  
  69.     dc.b 199,252,233,226,228,224,229,231    ; 128
  70.     dc.b 234,235,232,239,238,236,196,197    ; 136
  71.     dc.b 201,230,198,244,246,242,251,249    ; 144
  72.     dc.b 255,214,220,162,163,165,'P','f'    ; 152
  73.     dc.b 225,237,243,250,241,209,170,186    ; 160
  74.     dc.b 191,'-',172,189,188,161,171,187    ; 168
  75.     dc.b '#','#','#','|','|','|','|','+'    ; 176
  76.     dc.b '+','|','|','+','+','+','+','+'    ; 184
  77.     dc.b '+','-','-','|',173,'+','|','|'    ; 192
  78.     dc.b '+','+','-','-','|','-','+','-'    ; 200
  79.     dc.b '-','-','-','+','+','+','+','+'    ; 208
  80.     dc.b '+','+','+','#','#','#','#','#'    ; 216
  81.     dc.b 'a',223,'G','n','S','s',181,'t'    ; 224
  82.     dc.b 'O','O','O','d',BAD,'O','e',BAD    ; 232
  83.     dc.b '=',177,BAD,BAD,BAD,BAD,247,'='    ; 240
  84.     dc.b 176,183,183,'V','n',178,183,' '    ; 248
  85.  
  86.     section    "text",code
  87.  
  88.     xdef    _siso2ibm
  89. _siso2ibm:
  90.     lea    iso2ibm(a4),a1
  91.     bra.s    l3
  92.  
  93.     xdef    _sibm2iso    ; a0 = string
  94. _sibm2iso:
  95.     lea    ibm2iso(a4),a1
  96. l3:
  97.     moveq    #0,d0
  98. l1:
  99.     move.b    (a0),d0
  100. ;    beq.s    l2
  101.     move.b    0(a1,d0.w),(a0)+
  102.     bne.s    l1
  103. l2:
  104.     rts
  105.  
  106.     xdef    _bibm2iso    ; a0 = block,d0 = count
  107. _bibm2iso:
  108.     lea        ibm2iso(a4),a1
  109.     moveq    #0,d1
  110.     bra.s    bl1
  111. bl2:
  112.     move.b    (a0),d1
  113.     move.b    0(a1,d1.w),(a0)+
  114. bl1:
  115.     dbf        d0,bl2
  116.     rts
  117.  
  118.  
  119.     xdef    _sibmclnl    ; a0 = string
  120. _sibmclnl:
  121.     lea    ibm2iso(a4),a1
  122.     moveq    #0,d0
  123. scl1:
  124.     move.b    (a0),d0
  125.     beq.s    scl3
  126.     cmp.b    #10,d0
  127.     beq.s    scl2
  128.     cmp.b    #13,d0
  129.     beq.s    scl2
  130.  
  131.     move.b    0(a1,d0.w),(a0)+
  132.     bra.s    scl1
  133. scl2:
  134.     clr.b    (a0)
  135. scl3:
  136.     rts
  137.  
  138.     xdef    _biso2ibmnl    ; a0 = from, a1 = to, d0 = inlen
  139.  
  140. _biso2ibmnl:
  141.     movem.l    d2-d5/a2,-(sp)
  142.     lea        iso2ibm(a4),a2
  143.     moveq    #10,d3
  144.     moveq    #13,d4
  145.     moveq    #0,d2
  146.     move.l    a1,d5
  147.     bra.s    xbl2
  148. xbl1:
  149.     move.b    (a0)+,d2
  150.     cmp.b    d4,d2
  151.     beq.s    xbl2    ; CR ⁿberspringen
  152.     move.b    0(a2,d2.w),(a1)+
  153.     cmp.b    d3,d2    ; LF?
  154.     bne.s    xbl2
  155.     move.b    d4,(a1)+
  156. xbl2:
  157.     dbf    d0,xbl1
  158.     move.l    a1,d0
  159.     sub.l    d5,d0    ; outbytes
  160.     movem.l    (sp)+,d2-d5/a2
  161.     rts
  162.  
  163.  
  164.     xdef    _scpy_iso2ibm    ; a0 = from, a1 = to
  165. _scpy_iso2ibm:
  166.     move.l    a2,d1
  167.     lea        iso2ibm(a4),a2
  168.     moveq    #0,d0
  169. yy1:
  170.     move.b    (a0)+,d0
  171.     move.b    0(a2,d0.w),(a1)+
  172.     bne.s    yy1
  173.     move.l    d1,a2
  174.     rts
  175.  
  176.     xdef    _scpy_ibm2iso    ; a0 = from, a1 = to
  177. _scpy_ibm2iso:
  178.     move.l    a2,d1
  179.     lea        ibm2iso(a4),a2
  180.     moveq    #0,d0
  181. yy3:
  182.     move.b    (a0)+,d0
  183.     move.b    0(a2,d0.w),(a1)+
  184.     bne.s    yy3
  185.     move.l    d1,a2
  186.     rts
  187.  
  188.     end
  189.