home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / PNL Libraries / Assembly / TranslateISO.a < prev    next >
Encoding:
Text File  |  1995-05-01  |  2.0 KB  |  138 lines  |  [TEXT/MPS ]

  1.     macro
  2.     PUSH
  3.     move.l    &SYSLIST[1],-(sp)
  4.     endm
  5.         
  6.     macro
  7.     POP
  8.     move.l    (sp)+,&SYSLIST[1]
  9.     endm
  10.  
  11. NetToMacStack    record    0
  12. a2    ds.l    1
  13. pc    ds.l    1
  14. len    ds.l    1
  15. p    ds.l    1
  16. tabl    ds.l    1
  17. return    ds.l    1
  18.     endr
  19.  
  20. ; function NetToMacTabl(tabl:Handle; p:ptr; len:longInt):longInt;
  21. NetToMacTabl    proc    export
  22.     with    NetToMacStack
  23.  
  24. ; a0 = src ptr
  25. ; a1 = dest ptr
  26. ; a2 = isotomactable
  27. ; d0 = src len
  28. ; d1 = dest len
  29. ; d2 = the byte
  30.  
  31.     move.l    a2,-(sp)
  32.     move.l    len(sp),d0
  33.     clr.l    d1
  34.     move.l    p(sp),a0
  35.     move.l    a0,a1
  36.     move.l    tabl(sp),a2
  37.     move.l    (a2),a2
  38.     clr.w    d2
  39. loop
  40.     sub.l    #1,d0
  41.     bmi.s    fin
  42.     move.b    (a0)+,d2
  43.     cmp.b    #13,d2
  44.     beq.s    loop        ; delete cr
  45.     move.b    (a2,d2.w),d2    ; maps lf -> cr
  46.     move.b    d2,(a1)+
  47.     addq.l    #1,d1
  48.     bra.s    loop
  49. fin
  50.     move.l    d1,return(sp)
  51.     move.l    (sp)+,a2
  52.     move.l    (sp),12(sp)
  53.     add.l    #12,sp
  54.     rts
  55.  
  56.     STRING    ASIS                ; The debugger string.
  57.     DC.B    $8C,'NetToMacTabl'
  58.     DC.W    $0000
  59.  
  60.     endp
  61.     
  62. MacToNetStack    record    0
  63. a2    ds.l    1
  64. pc    ds.l    1
  65. len    ds.l    1
  66. p    ds.l    1
  67. tabl    ds.l    1
  68. return    ds.l    1
  69.     endr
  70.  
  71. ; function MacToNetTabl(tabl:Handle; p:ptr; len:longInt):longInt;
  72. MacToNetTabl    proc    export
  73.     with    MacToNetStack
  74.  
  75. ; a0 = src ptr
  76. ; a1 = dest ptr
  77. ; a2 = mactoisotable
  78. ; d0 = src len
  79. ; d1 = dest len
  80. ; d2 = the byte
  81.  
  82.     move.l    a2,-(sp)
  83.  
  84. ; first find the final length of the block
  85.     move.l    len(sp),d0
  86.     move.l    p(sp),a0
  87.     move.l    d0,d1
  88. loop1
  89.     sub.l    #1,d0
  90.     bmi.s    fin1
  91.     cmp.b    #13,(a0)+
  92.     bne.s    loop1
  93.     addq.l    #1,d1
  94.     bra.s    loop1
  95. fin1
  96.  
  97.     move.l    len(sp),d0
  98.     move.l    p(sp),a0
  99.     lea    (a0,d1.l),a1
  100.     lea    (a0,d0.l),a0
  101.     move.l    tabl(sp),a2
  102.     move.l    (a2),a2
  103.     lea    256(a2),a2
  104.     clr.w    d2
  105. loop2
  106.     sub.l    #1,d0
  107.     bmi.s    fin2
  108.     move.b    -(a0),d2
  109.     cmp.b    #13,d2
  110.     bne.s    over2
  111.     move.b    #10,-(a1)
  112. over2
  113.     move.b    (a2,d2.w),d2
  114.     move.b    d2,-(a1)
  115.     bra.s    loop2
  116. fin2
  117.     move.l    d1,return(sp)
  118.     move.l    (sp)+,a2
  119.     move.l    (sp),12(sp)
  120.     add.l    #12,sp
  121.     rts
  122.  
  123.     STRING    ASIS                ; The debugger string.
  124.     DC.B    $8C,'MacToNetTabl'
  125.     DC.W    $0000
  126.  
  127.     endp
  128.  
  129.     END
  130.  
  131. asm -wb "{active}"
  132.  
  133.  
  134. (evaluate "{active}" =~ /(?*):(?*)®1.a/ )> dev:null
  135. (evaluate "{active}" =~ "/(?*)®2.a/" )> dev:null
  136. link -sn CalcCRC="{®1}" "{active}.o" -o "{®2}"
  137. dumpcode "{®2}"
  138.