home *** CD-ROM | disk | FTP | other *** search
/ Kyūkyoku!! X68000 Emulator / X68000Book.dat / mac / OLS / X68000 / Ko-Window / kow142s.lzh / wsrv / execasm.s < prev    next >
Text File  |  1991-12-23  |  3KB  |  191 lines

  1. *:vi:se ts=8 sw=8:
  2. * modified  1991 8/9 Å¼è}î┤öÄöV
  3. *
  4.  
  5. GETPUT        macro    reg
  6.         moveq.l    #$7c,d0        * 4
  7.         add.l    $1c54.w,d0    * 18
  8.         sub.l    $1c50.w,d0    * 18
  9.         lsr.w    #5,d0        * 16
  10.         and.w    #$fffc,d0    * 8
  11.         lea    _PutCVtable(pc),reg
  12.         move.l    (reg,d0.w),reg
  13.         endm
  14.  
  15. xGETPUT        macro    reg
  16.         move.l    _PutCVtable(pc),reg
  17.         endm
  18.  
  19.         .xdef    _PutCVtable
  20. _PutCVtable:
  21.         .dc.l    _DummyPut
  22.         .dc.l    _DummyPut
  23.         .dc.l    _DummyPut
  24.         .dc.l    _DummyPut
  25.         .dc.l    _DummyPut
  26.         .dc.l    _DummyPut
  27.         .dc.l    _DummyPut
  28.         .dc.l    _DummyPut
  29.         .dc.l    _DummyPut
  30.         .dc.l    _DummyPut
  31.         .dc.l    _DummyPut
  32.         .dc.l    _DummyPut
  33.         .dc.l    _DummyPut
  34.         .dc.l    _DummyPut
  35.         .dc.l    _DummyPut
  36.         .dc.l    _DummyPut
  37.         .dc.l    _DummyPut
  38.         .dc.l    _DummyPut
  39.         .dc.l    _DummyPut
  40.         .dc.l    _DummyPut
  41.         .dc.l    _DummyPut
  42.         .dc.l    _DummyPut
  43.         .dc.l    _DummyPut
  44.         .dc.l    _DummyPut
  45.         .dc.l    _DummyPut
  46.         .dc.l    _DummyPut
  47.         .dc.l    _DummyPut
  48.         .dc.l    _DummyPut
  49.         .dc.l    _DummyPut
  50.         .dc.l    _DummyPut
  51.         .dc.l    _DummyPut
  52.         .dc.l    _DummyPut
  53.  
  54.         .xdef    _xConCtrlEntry
  55. _xConCtrlEntry:
  56.         cmp.w    #1,(a6)
  57.         beq    _xprint
  58.         rts
  59.  
  60.         .xdef    _ConCtrlEntry
  61. _ConCtrlEntry:
  62.         cmp.w    #1,(a6)
  63.         beq    _print
  64.     _DummyPut:
  65.         rts
  66.  
  67.         .xdef    _xPutEntry
  68. _xPutEntry:
  69.         cmp.b    #1,_FCB
  70.         bne    xputentjump
  71.         xGETPUT    a0
  72.         bra    xputskipjump
  73.  
  74.         .xdef    _PutEntry
  75. _PutEntry:
  76.         cmp.b    #1,_FCB
  77.         beq    PutSkip
  78.     xputentjump:
  79.         move.w    #1,-(sp)
  80.         move.w    (a6),-(sp)
  81.         dc.w    $FF1D
  82.         addq.l    #4,sp
  83.         rts
  84.     PutSkip:
  85.         GETPUT    a0
  86.     xputskipjump:
  87.         move.w    (a6),-(sp)
  88.         clr.w    -(sp)
  89.         jsr    (a0)
  90.         addq.l    #4,sp
  91.         rts
  92.  
  93.     _xprint:
  94.         addq.l    #2,a6
  95.  
  96.         .xdef    _xPrintEntry
  97. _xPrintEntry:
  98.         cmp.b    #1,_FCB
  99.         bne    xprintentjump
  100.         xGETPUT    a5
  101.         bra    xprintskipjump
  102.  
  103.     _print:
  104.         addq.l    #2,a6
  105.  
  106.         .xdef    _PrintEntry
  107. _PrintEntry:
  108.         cmp.b    #1,_FCB
  109.         beq    PrintSkip
  110.     xprintentjump:
  111.         move.w    #1,-(sp)
  112.         move.l    (a6),-(sp)
  113.         dc.w    $FF1E
  114.         addq.l    #6,sp
  115.         rts
  116.     PrintSkip:
  117.         GETPUT    a5
  118.     xprintskipjump:
  119.         move.l    (a6),a4
  120.         subq.l    #4,sp
  121.         bra    printloopchk
  122.     printloop:
  123.         move.l    d0,(sp)
  124.         jsr    (a5)
  125.     printloopchk:
  126.         moveq.l    #0,d0
  127.         move.b    (a4)+,d0
  128.         bne    printloop
  129.         addq.l    #4,sp
  130.         rts
  131.  
  132.         .xdef    _xIOCSPutEntry
  133. _xIOCSPutEntry:
  134.         movem.l    d1-d2/a0-a2,-(sp)
  135.         xGETPUT    a0
  136.         bra    xiocsputjump
  137.  
  138.         .xdef    _IOCSPutEntry
  139. _IOCSPutEntry:
  140.         movem.l    d1-d2/a0-a2,-(sp)
  141.         GETPUT    a0
  142.     xiocsputjump:
  143.         move.l    d1,-(sp)
  144.         jsr    (a0)
  145.         addq.l    #4,sp
  146.         movem.l    (sp)+,d1-d2/a0-a2
  147.         rts
  148.  
  149.         .xdef    _xIOCSPrtEntry
  150. _xIOCSPrtEntry:
  151.         movem.l    d1-d2/a0/a2/a4-a5,-(sp)
  152.         xGETPUT    a5
  153.         bra    xiocsprtjump
  154.  
  155.         .xdef    _IOCSPrtEntry
  156. _IOCSPrtEntry:
  157.         movem.l    d1-d2/a0/a2/a4-a5,-(sp)
  158.         GETPUT    a5
  159.     xiocsprtjump:
  160.         move.l    a1,a4
  161.         subq.l    #4,sp
  162.         bra    iocsloopchk
  163.     iocsputloop:
  164.         move.l    d1,(sp)
  165.         jsr    (a5)
  166.     iocsloopchk:
  167.         moveq.l    #0,d1
  168.         move.b    (a4)+,d1
  169.         bne    iocsputloop
  170.         addq.l    #4,sp
  171.         move.l    a4,a1
  172.         movem.l    (sp)+,d1-d2/a0/a2/a4-a5
  173.         rts
  174.  
  175.         .xdef    _GETFCB
  176. _GETFCB:
  177.         move.w    4+2(sp),d0
  178.         move.w    d0,-(sp)
  179.         dc.w    $FF7C
  180.         addq.l    #2,sp
  181.         rts
  182.  
  183.         .xdef    _threadflagcall
  184.         .xref    _threadflag
  185.         .xref    _old_open_pr
  186. _threadflagcall:
  187.         move.w    #$1,_threadflag
  188.         move.l    _old_open_pr,-(sp)
  189.         rts
  190.  
  191.