home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / utilities / shell / execute_upd.lha / Execute / execute.s < prev    next >
Encoding:
Text File  |  1995-02-28  |  67.4 KB  |  1,515 lines

  1.             xdef       _wedge
  2.             xref       _main
  3.     
  4.                     CSEG
  5. _main
  6. L0                  LINK           A5,#-$80
  7.                     MOVEM.L        D2-D7/A2-A3/A6,-(SP)
  8.                     MOVEA.W        #$4,A0
  9.                     MOVEA.L        (A0),A1
  10.                     MOVEA.L        $114(A1),A0
  11.                     MOVEQ          #$14,D5
  12.                     MOVE.L         A0,$34(SP)
  13.                     MOVE.L         A1,$38(SP)
  14.                     MOVEA.L        A1,A6
  15.                     LEA            L578(PC),A1    ; dos.library
  16.                     MOVEQ          #$24,D0
  17.                     JSR            -$228(A6)    ; SysBase: OpenLibrary(a1,d0)
  18.                     MOVE.L         D0,$30(SP)
  19.                     TST.L          D0
  20.                     BEQ.L          L55E
  21.                     MOVE.L         #$550,D0
  22.                     MOVE.L         #$10001,D1
  23.                     JSR            -$C6(A6)    ; SysBase: AllocMem(d0,d1)
  24.                     MOVEA.L        D0,A2
  25.                     MOVE.L         A2,D0
  26.                     BEQ.L          L4E4
  27.                     MOVE.L         $30(SP),$4(A2)
  28.                     LEA            L584(PC),A1    ; utility.library
  29.                     MOVEQ          #$0,D0
  30.                     JSR            -$228(A6)    ; SysBase: OpenLibrary(a1,d0)
  31.                     MOVE.L         D0,(A2)
  32.                     BEQ.L          L4E4
  33.          
  34.             JSR           _wedge
  35.                 BNE.L          L4E4
  36.             
  37.                     MOVEA.L        $34(SP),A1
  38.                     MOVEA.L        $B8(A1),A0
  39.                     MOVE.L         $8C(A1),D6
  40.                     MOVE.L         A0,$2C(SP)
  41.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  42.                     JSR            -$3C(A6)    ; DOSBase: Output()
  43.                     MOVE.L         D0,$18(A2)
  44.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  45.                     JSR            -$36(A6)     ; DOSBase: Input()
  46.                     MOVE.L         D0,$1C(A2)
  47.                     MOVEQ          #$0,D0
  48.                     MOVE.L         D0,$14(A2)
  49.                     MOVE.L         D0,$10(A2)
  50.                     MOVE.L         D0,$20(A2)
  51.                     MOVE.B         #$3C,$C(A2)
  52.                     MOVE.B         #$3E,$D(A2)
  53.                     MOVE.B         #$24,$E(A2)
  54.                     MOVE.B         #$2E,$F(A2)
  55.                     LEA            $28(A2),A0
  56.                     MOVE.L         A0,$28(SP)
  57.                     MOVEQ          #$4F,D0
  58.                     MOVEQ          #$0,D1
  59.                     MOVEA.L        A0,A1
  60. LBC                 MOVE.B         D1,(A1)+
  61.                     DBRA           D0,LBC
  62.                     LEA            $514(A2),A1
  63.                     MOVE.L         A1,-(SP)
  64.                     JSR            L1038(PC)
  65.                     ADDQ.W         #$4,SP
  66.                     MOVE.L         D0,D7
  67.                     TST.L          D7
  68.                     BEQ.S          LDA
  69.                     MOVE.L         D7,D5
  70.                     BRA.L          L4E4
  71. LDA                 LEA            -$68(A5),A0
  72.                     MOVE.L         A0,D1
  73.                     MOVEQ          #$50,D2
  74.                     MOVEQ          #$0,D3
  75.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  76.                     JSR            -$32A(A6)    ; DOSBase: ReadItem(d1,d2,d3)
  77.                     MOVE.L         D0,D7
  78.                     TST.L          D7
  79.                     BEQ.S          L13A
  80.                     LEA            -$68(A5),A0
  81.                     LEA            L594(PC),A1
  82. LFA                 MOVE.B         (A0)+,D0
  83.                     CMP.B          (A1)+,D0
  84.                     BNE.S          L13A
  85.                     TST.B          D0
  86.                     BNE.S          LFA
  87.                     BNE.S          L13A
  88.                     LEA            L59E(PC),A0
  89.                     CLR.L          -(SP)
  90.                     MOVE.L         A0,-(SP)
  91.                     PEA            L596(PC)
  92.                     MOVE.L         A2,-(SP)
  93.                     BSR.L          LF56
  94.                     LEA            $10(SP),SP
  95.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  96.                     JSR            -$36(A6)    ; DOSBase: Input()
  97.                     MOVE.L         D0,D1
  98.                     JSR            -$168(A6)    ; DOSBase: Flush(d1)
  99.                     LEA            -$68(A5),A0
  100.                     MOVE.L         A0,D1
  101.                     MOVEQ          #$50,D2
  102.                     MOVEQ          #$0,D3
  103.                     JSR            -$32A(A6)    ; DOSBase: ReadItem(d1,d2,d3)
  104.                     MOVE.L         D0,D7
  105. L13A                TST.L          D7
  106.                     BGT.S          L154
  107.                     TST.L          D7
  108.                     BEQ.L          L4E4
  109.                     PEA            L5C6(PC)
  110.                     MOVE.L         A2,-(SP)
  111.                     BSR.L          LF84
  112.                     ADDQ.W         #$8,SP
  113.                     BRA.L          L4E4
  114. L154                MOVEQ          #$0,D5
  115.                     LEA            -$68(A5),A0
  116.                     MOVE.L         A0,D1
  117.                     MOVE.L         #$3ED,D2
  118.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  119.                     JSR            -$1E(A6)    ; DOSBase: Open(d1,d2)
  120.                     MOVE.L         D0,$10(A2)
  121.                     BNE.S          L1B0
  122.                     LEA            L5DA(PC),A0
  123.                     MOVE.L         A0,D1
  124.                     MOVEQ          #-$2,D2
  125.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  126.                     JSR            -$54(A6)     ; DOSBase: Lock(d1,d2)
  127.                     MOVE.L         D0,D1
  128.                     JSR            -$7E(A6)    ; DOSBase: CurrentDir(d1)
  129.                     MOVE.L         D0,$24(SP)
  130.                     LEA            -$68(A5),A0
  131.                     MOVE.L         A0,D1
  132.                     MOVE.L         #$3ED,D2
  133.                     JSR            -$1E(A6)    ; DOSBase: Open(d1,d2)
  134.                     MOVE.L         D0,$10(A2)
  135.                     MOVE.L         $24(SP),D1
  136.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  137.                     JSR            -$7E(A6)    ; DOSBase: CurrentDir(d1)
  138.                     MOVE.L         D0,D1
  139.                     JSR            -$5A(A6)    ; DOSBase: UnLock(d1)
  140. L1B0                TST.L          $10(A2)
  141.                     BNE.S          L1C8
  142.                     PEA            -$68(A5)
  143.                     PEA            L5DE(PC)
  144.                     MOVE.L         A2,-(SP)
  145.                     BSR.L          LF84
  146.                     LEA            $C(SP),SP
  147. L1C8                MOVE.L         $10(A2),D1
  148.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  149.                     JSR            -$126(A6)    ; DOSBase: SelectInput(d1)
  150. L1D4                MOVEA.L        $4(A2),A6    ; DosBase ptr
  151.                     JSR            -$36(A6)    ; DOSBase: Input()
  152.                     MOVE.L         D0,D1
  153.                     JSR            -$132(A6)    ; DOSBase: FGetC(d1)
  154.                     MOVE.L         D0,D7
  155.                     MOVEQ          #$A,D0
  156.                     CMP.L          D0,D7
  157.                     BEQ.S          L1D4
  158.                     MOVEQ          #$2E,D0
  159.                     CMP.L          D0,D7
  160.                     BEQ.S          L242
  161.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  162.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  163.                     MOVE.L         D0,$24(SP)
  164.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  165.                     MOVEA.L        $24(SP),A0
  166.                     MOVE.L         $20(A0),D1
  167.                     MOVEA.L        D0,A0
  168.                     CMP.L          $1C(A0),D1
  169.                     BNE.S          L242
  170.                     JSR            -$36(A6)    ; DOSBase: Input()
  171.                     MOVE.L         D0,D1
  172.                     MOVEQ          #-$1,D2
  173.                     JSR            -$13E(A6)    ; DOSBase: UnGetC(d1,d2)
  174.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  175.                     MOVEA.L        D0,A0
  176.                     TST.L          $28(A0)
  177.                     BEQ.S          L232
  178.                     MOVE.L         #$2000,D1
  179.                     JSR            -$318(A6)    ; DOSBase: CheckSignal(d1)
  180. L232                JSR            -$1EC(A6)    ; DOSBase: Cli()
  181.                     MOVEA.L        D0,A0
  182.                     MOVE.L         $10(A2),$20(A0)
  183.                     BRA.L          L4E4
  184. L242                MOVEQ          #-$1,D0
  185.                     MOVEA.L        $34(SP),A0
  186.                     MOVE.L         D0,$B8(A0)
  187.                     LEA            L5EC(PC),A0
  188.                     MOVE.L         A0,D1
  189.                     MOVEQ          #-$2,D2
  190.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  191.                     JSR            -$54(A6)    ; DOSBase: Lock(d1,d2)
  192.                     MOVE.L         D0,D4
  193.                     MOVEA.L        $34(SP),A0
  194.                     MOVE.L         $2C(SP),$B8(A0)
  195.                     TST.L          D4
  196.                     BNE.S          L272
  197.                     LEA            L5F0(PC),A3
  198.                     BRA.S          L280
  199. L272                MOVE.L         D4,D1
  200.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  201.                     JSR            -$5A(A6)    ; DOSBase: UnLock(d1)
  202.                     LEA            L602(PC),A3
  203. L280                MOVEA.L        A3,A0
  204.                     MOVEA.L        $28(SP),A1
  205. L286                MOVE.B         (A0)+,(A1)+
  206.                     BNE.S          L286
  207.                     MOVE.L         D6,D0
  208.                     MOVEQ          #$A,D1
  209.                     JSR            L1068(PC)
  210.                     MOVEQ          #$30,D1
  211.                     ADD.L          D1,D0
  212.                     MOVE.B         D0,$36(A2)
  213.                     MOVE.L         D6,D0
  214.                     MOVEQ          #$A,D1
  215.                     JSR            L1068(PC)
  216.                     MOVEQ          #$30,D0
  217.                     ADD.L          D0,D1
  218.                     MOVE.B         D1,$37(A2)
  219.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  220.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  221.                     MOVEA.L        D0,A0
  222.                     MOVE.L         $24(A0),D1
  223.                     ASL.L          #$2,D1
  224.                     MOVEA.L        D1,A3
  225.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  226.                     MOVE.L         D0,$24(SP)
  227.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  228.                     MOVEA.L        $24(SP),A0
  229.                     MOVE.L         $20(A0),D1
  230.                     MOVEA.L        D0,A0
  231.                     CMP.L          $1C(A0),D1
  232.                     BEQ.S          L2EA
  233.                     CMPI.B         #$C,(A3)
  234.                     BCS.S          L2EA
  235.                     MOVE.B         $C(A3),D0
  236.                     EORI.B         #$1,D0
  237.                     MOVE.B         D0,$33(A2)
  238. L2EA                MOVE.L         $28(SP),D1
  239.                     MOVE.L         #$3EE,D2
  240.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  241.                     JSR            -$1E(A6)    ; DOSBase: Open(d1,d2)
  242.                     MOVE.L         D0,$14(A2)
  243.                     BNE.S          L376
  244.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  245.                     JSR            -$84(A6)    ; DOSBase: IoErr()
  246.                     MOVEQ          #$32,D1
  247.                     NOT.B          D1
  248.                     CMP.L          D1,D0
  249.                     BNE.S          L336
  250.                     LEA            L614(PC),A0
  251.                     MOVE.L         A0,D1
  252.                     JSR            -$78(A6)    ; DOSBase: CreateDir(d1)
  253.                     MOVE.L         D0,D6
  254.                     TST.L          D6
  255.                     BEQ.S          L328
  256.                     MOVE.L         D6,D1
  257.                     JSR            -$5A(A6)    ; DOSBase: UnLock(d1)
  258. L328                MOVE.L         $28(SP),D1
  259.                     JSR            -$1E(A6)    ; DOSBase: Open(d1,d2)
  260.                     MOVE.L         D0,$14(A2)
  261.                     BRA.S          L35E
  262. L336                JSR            -$84(A6)    ; DOSBase: IoErr()
  263.                     MOVEQ          #$6F,D1
  264.                     ADD.L          D1,D1
  265.                     CMP.L          D1,D0
  266.                     BNE.S          L35E
  267.                     MOVE.L         $28(SP),D1
  268.                     MOVEQ          #$0,D2
  269.                     JSR            -$BA(A6)    ; DOSBase: SetProtection(d1,d2)
  270.                     MOVE.L         $28(SP),D1
  271.                     MOVE.L         #$3EE,D2
  272.                     JSR            -$1E(A6)    ; DOSBase: Open(d1,d2)
  273.                     MOVE.L         D0,$14(A2)
  274. L35E                TST.L          $14(A2)
  275.                     BNE.S          L376
  276.                     MOVE.L         $28(SP),-(SP)
  277.                     PEA            L618(PC)
  278.                     MOVE.L         A2,-(SP)
  279.                     BSR.L          LF84
  280.                     LEA            $C(SP),SP
  281. L376                MOVE.L         $14(A2),D1
  282.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  283.                     JSR            -$12C(A6)    ; DOSBase: SelectOutput(d1)
  284.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  285.                     MOVEA.L        D0,A0
  286.                     TST.L          $28(A0)
  287.                     BEQ.S          L3BC
  288.                     MOVE.L         #$2000,D1
  289.                     JSR            -$318(A6)    ; DOSBase: CheckSignal(d1)
  290.                     BRA.S          L3BC
  291. L39A                MOVEQ          #$0,D0
  292.                     MOVE.B         $F(A2),D0
  293.                     CMP.L          D0,D7
  294.                     BNE.S          L3B0
  295.                     MOVE.L         A2,-(SP)
  296.                     BSR.L          L730
  297.                     ADDQ.W         #$4,SP
  298.                     MOVE.L         D0,D7
  299.                     BRA.S          L3BC
  300. L3B0                MOVE.L         D7,-(SP)
  301.                     MOVE.L         A2,-(SP)
  302.                     BSR.L          L9E6
  303.                     ADDQ.W         #$8,SP
  304.                     MOVE.L         D0,D7
  305. L3BC                MOVEQ          #-$1,D0
  306.                     CMP.L          D0,D7
  307.                     BNE.S          L39A
  308.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  309.                     JSR            -$36(A6)    ; DOSBase: Input()
  310.                     MOVE.L         D0,D1
  311.                     JSR            -$24(A6)    ; DOSBase: Close(d1)
  312.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  313.                     MOVEA.L        D0,A0
  314.                     MOVE.L         $20(A0),D1
  315.                     JSR            -$126(A6)    ; DOSBase: SelectInput(d1)
  316.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  317.                     MOVE.L         D0,$24(SP)
  318.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  319.                     MOVEA.L        $24(SP),A0
  320.                     MOVE.L         $20(A0),D1
  321.                     MOVEA.L        D0,A0
  322.                     CMP.L          $1C(A0),D1
  323.                     BEQ.S          L41E
  324. L3FA                MOVEA.L        $4(A2),A6    ; DosBase ptr
  325.                     JSR            -$36(A6)    ; DOSBase: Input()
  326.                     MOVE.L         D0,D1
  327.                     JSR            -$132(A6)    ; DOSBase: FGetC(d1)
  328.                     MOVE.L         D0,D7
  329.                     MOVEQ          #-$1,D0
  330.                     CMP.L          D0,D7
  331.                     BEQ.S          L41E
  332.                     JSR            -$3C(A6)    ; DOSBase: Output()
  333.                                                
  334.                     MOVE.L         D0,D1
  335.                     MOVE.L         D7,D2
  336.                     JSR            -$138(A6)    ; DOSBase: FPutC(d1,d2)
  337.                     BRA.S          L3FA
  338. L41E                MOVEA.L        $4(A2),A6    ; DosBase ptr
  339.                     JSR            -$3C(A6)    ; DOSBase: Output()
  340.                     MOVE.L         D0,D1
  341.                     JSR            -$24(A6)    ; DOSBase: Close(d1)
  342.                     MOVE.L         $28(SP),D1
  343.                     MOVE.L         #$3ED,D2
  344.                     JSR            -$1E(A6)    ; DOSBase: Open(d1,d2)
  345.                     MOVE.L         D0,D7
  346.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  347.                     MOVE.L         D0,$24(SP)
  348.                     JSR            -$1EC(A6)    ; DOSBase: Cli()
  349.                     MOVEA.L        $24(SP),A0
  350.                     MOVE.L         $20(A0),D1
  351.                     MOVEA.L        D0,A0
  352.                     CMP.L          $1C(A0),D1
  353.                     BEQ.S          L4A2
  354.                     JSR            -$36(A6)    ; DOSBase: Input()
  355.                     MOVE.L         D0,D1
  356.                     JSR            -$24(A6)    ; DOSBase: Close(d1)
  357.                     MOVEQ          #-$1,D0
  358.                     MOVEA.L        $34(SP),A0
  359.                     MOVE.L         D0,$B8(A0)
  360.                     TST.B          (A3)
  361.                     BEQ.S          L498
  362.                     LEA            $1(A3),A0
  363.                     MOVE.L         A0,$24(SP)
  364.                     MOVE.L         A0,D1
  365.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  366.                     JSR            -$48(A6)    ; DOSBase: DeleteFile(d1)
  367.                     TST.L          D0
  368.                     BNE.S          L498
  369.                     MOVE.L         $24(SP),D1
  370.                     MOVEQ          #$0,D2
  371.                     JSR            -$BA(A6)    ; DOSBase: SetProtection(d1,d2)
  372.                     MOVE.L         $24(SP),D1
  373.                     JSR            -$48(A6)
  374.                                                ; DOSBase: DeleteFile(d1)
  375.                                                ; SysBase: InitCode(d0,d1)
  376. L498                MOVEA.L        $34(SP),A0
  377.                     MOVE.L         $2C(SP),$B8(A0)
  378. L4A2                MOVEA.L        $4(A2),A6        ; DosBase ptr
  379.                     JSR            -$1EC(A6)
  380.                                                ; DOSBase: Cli()
  381.                                                ; SysBase: RemResource(a1)
  382.                     MOVEA.L        D0,A0
  383.                     MOVE.L         D7,$20(A0)
  384.                     MOVEQ          #$1,D7
  385.                     BRA.S          L4BC
  386. L4B4                MOVE.B         $27(A2,D7.L),$0(A3,D7.L)
  387.                     ADDQ.L         #$1,D7
  388. L4BC                MOVEA.L        $28(SP),A0
  389. L4C0                TST.B          (A0)+
  390.                     BNE.S          L4C0
  391.                     SUBQ.L         #$1,A0
  392.                     SUBA.L         $28(SP),A0
  393.                     MOVE.L         A0,D0
  394.                     ADDQ.L         #$1,D0
  395.                     CMP.L          D0,D7
  396.                     BLE.S          L4B4
  397.                     MOVEA.L        $28(SP),A0
  398. L4D6                TST.B          (A0)+
  399.                     BNE.S          L4D6
  400.                     SUBQ.L         #$1,A0
  401.                     SUBA.L         $28(SP),A0
  402.                     MOVE.L         A0,D0
  403.                     MOVE.B         D0,(A3)
  404.  
  405. L4E4                MOVE.L         A2,D0
  406.                     BEQ.S          L546
  407.                     TST.L          D5
  408.                     BEQ.S          L4FE
  409.                     TST.L          $18(A2)
  410.                     BEQ.S          L4FE
  411.                     MOVE.L         $18(A2),D1
  412.                     MOVEA.L        $4(A2),A6    ; DosBase ptr
  413.                     JSR            -$12C(A6)       ; DOSBase: SelectOutput(d1)
  414. L4FE                MOVEA.L        $4(A2),A6    ; DosBase ptr
  415.                     JSR            -$84(A6)    ; DOSBase: IoErr()
  416.                     MOVE.L         D0,D7
  417.                     MOVE.L         $8(A2),D0
  418.                     BEQ.S          L514
  419.                     MOVE.L         D0,D1
  420.                     JSR            -$35A(A6)    ; DOSBase: FreeArgs(d1)
  421. L514                TST.L          D5
  422.                     BEQ.S          L526
  423.                     MOVE.L         D7,D1
  424.                     MOVEQ          #$0,D2
  425.                     JSR            -$1DA(A6)    ; DOSBase: PrintFault(d1,d2)
  426.                     MOVE.L         D7,D1
  427.                     JSR            -$1CE(A6)    ; DOSBase: SetIoErr(d1)
  428. L526                MOVE.L         (A2),D0
  429.                     BEQ.S          L534
  430.                     MOVEA.L        D0,A1
  431.                     MOVEA.L        $38(SP),A6    ; SysBase ptr
  432.                     JSR            -$19E(A6)    ; SysBase: CloseLibrary(a1)
  433.  
  434.             ; Free allocated memory
  435. L534                MOVEA.L        A2,A1
  436.                     MOVE.L         #$550,D0
  437.                     MOVEA.L        $38(SP),A6    ; SysBase ptr
  438.                     JSR            -$D2(A6)    ; SysBase: FreeMem(a1,d0)
  439.                     BRA.S          L550
  440.  
  441. L546                MOVE.L         $30(SP),-(SP)
  442.                     BSR.L          L101A
  443.                     ADDQ.W         #$4,SP
  444.  
  445.             ; Close dos.library
  446. L550                MOVEA.L        $30(SP),A1    ; DosBase ptr
  447.                     MOVEA.L        $38(SP),A6    ; SysBase ptr
  448.                     JSR            -$19E(A6)    ; SysBase: CloseLibrary(a1)
  449.                     BRA.S          L56E
  450. L55E                MOVEA.W        #$4,A0
  451.                     MOVEA.L        (A0),A1
  452.                     MOVEA.L        $114(A1),A0
  453.                     MOVEQ          #$7A,D0
  454.                     MOVE.L         D0,$94(A0)
  455. L56E                MOVE.L         D5,D0
  456.                     MOVEM.L        (SP)+,D2-D7/A2-A3/A6
  457.                     UNLK           A5
  458.                     RTS
  459.  
  460. L578                DC.B           "dos.library",0
  461. L584                DC.B           "utility.library",0
  462. L594                DC.B           "?",0
  463. L596                DC.B           "%S: %C",0
  464.                     DC.B           $0
  465. L59E                DC.B           "FILE/A",0
  466.                     DC.B           "$VER: execute 37.11 (14.5.91)",$A,$D,0
  467.                     DC.B           $0
  468. L5C6                DC.B           "Incorrect file name",0
  469. L5DA                DC.B           "S:",0
  470.                     DC.B           $0
  471. L5DE                DC.B           "Can't open %S",0
  472. L5EC                DC.B           "T:",0
  473.                     DC.B           $0
  474. L5F0                DC.B           ":T/Command-0-Tnn",0
  475.                     DC.B           $0
  476. L602                DC.B           "T:Command-00-Tnn",0
  477.                     DC.B           $0
  478. L614                DC.B           ":T",0
  479.                     DC.B           $0
  480. L618                DC.B           "Can't open work file "%S"",0
  481. L632                DC.B           "KEY,K,DEFAULT,DEF,BRA,KET,DOLLAR,DOT",0
  482.                     DC.B           $0
  483. L658                DC.B           "Invalid directive",0
  484. L66A                DC.B           "More than one .KEY directive",0
  485.                     DC.B           $0
  486. L688                DC.B           "Illegal KEY directive",0
  487. L69E                DC.B           "Parameters unsuitable for key "%S"",0
  488.                     DC.B           $0
  489. L6C2                DC.B           "Illegal key",0
  490. L6CE                DC.B           "Missing .KEY directive",0
  491.                     DC.B           $0
  492. L6E6                DC.B           "Illegal data item",0
  493. L6F8                DC.B           "%N",0
  494.                     DC.B           $0
  495. L6FC                DC.B           "Key too long",$A,0
  496. L70A                DC.B           "Invalid directive argument",0
  497.                     DC.B           $0
  498. L726                DC.B           "EXECUTE: ",0
  499.  
  500. L730                MOVEM.L        D2-D3/D6-D7/A2-A3/A6,-(SP)
  501.                     MOVEA.L        $20(SP),A3
  502.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  503.                     JSR            -$36(A6)
  504.                                                ; DOSBase: Input()
  505.                     MOVE.L         D0,D1
  506.                     JSR            -$132(A6)
  507.                                                ; DOSBase: FGetC(d1)
  508.                                                ; SysBase: SetSignal(d0,d1)
  509.                     MOVE.L         D0,D7
  510.                     MOVEQ          #$A,D0
  511.                     CMP.L          D0,D7
  512.                     BEQ.L          L9C6
  513.                     MOVEQ          #$9,D0
  514.                     CMP.L          D0,D7
  515.                     BEQ.L          L9C6
  516.                     MOVEQ          #$20,D0
  517.                     CMP.L          D0,D7
  518.                     BEQ.L          L9C6
  519.                     MOVEQ          #-$1,D0
  520.                     CMP.L          D0,D7
  521.                     BEQ.L          L9C6
  522.                     JSR            -$36(A6)
  523.                                                ; DOSBase: Input()
  524.                     MOVE.L         D0,D1
  525.                     MOVEQ          #-$1,D2
  526.                     JSR            -$13E(A6)
  527.                                                ; DOSBase: UnGetC(d1,d2)
  528.                                                ; SysBase: Wait(d0)
  529.                     LEA            $78(A3),A2
  530.                     MOVE.L         A2,D1
  531.                     MOVEQ          #$50,D2
  532.                     MOVEQ          #$0,D3
  533.                     JSR            -$32A(A6)    ; DOSBase: ReadItem(d1,d2,d3)
  534.                                                
  535.                     SUBQ.L         #$1,D0
  536.                     BNE.S          L796
  537.                     LEA            L632(PC),A0
  538.                     MOVE.L         A0,D1
  539.                     MOVE.L         A2,D2
  540.                     JSR            -$324(A6)    ; DOSBase: FindArg(d1,d2)
  541.                                                
  542.                     MOVE.L         D0,D7
  543.                     BRA.S          L798
  544. L796                MOVEQ          #-$1,D7
  545. L798                TST.L          D7
  546.                     BPL.S          L7A8
  547.                     PEA            L658(PC)
  548.                     MOVE.L         A3,-(SP)
  549.                     BSR.L          LF84
  550.                     ADDQ.W         #$8,SP
  551. L7A8                MOVE.L         D7,D0
  552.                     CMPI.L         #$8,D0
  553.                     BCC.L          L9A4
  554.                     ADD.W          D0,D0
  555.                     MOVE.W         L7BE(PC,D0.W),D0
  556. L7BA                JMP            $4(PC,D0.W)
  557.  
  558. L7BE                DC.W           L7CE-L7BA-$6
  559.                     DC.W           L7CE-L7BA-$6
  560.                     DC.W           L87E-L7BA-$6
  561.                     DC.W           L87E-L7BA-$6
  562.                     DC.W           L96E-L7BA-$6
  563.                     DC.W           L97C-L7BA-$6
  564.                     DC.W           L98A-L7BA-$6
  565.                     DC.W           L998-L7BA-$6
  566. L7CE                TST.L          $20(A3)
  567.                     BEQ.S          L7E0
  568.                     PEA            L66A(PC)
  569.                     MOVE.L         A3,-(SP)
  570.                     BSR.L          LF84
  571.                     ADDQ.W         #$8,SP
  572. L7E0                LEA            $C8(A3),A2
  573.                     MOVE.L         A2,D1
  574.                     MOVEQ          #$64,D2
  575.                     ADD.L          D2,D2
  576.                     MOVEQ          #$0,D3
  577.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  578.                     JSR            -$32A(A6)    ; DOSBase: ReadItem(d1,d2,d3)
  579.                                                
  580.                     TST.L          D0
  581.                     BGT.S          L804
  582.                     PEA            L688(PC)
  583.                     MOVE.L         A3,-(SP)
  584.                     BSR.L          LF84
  585.                     ADDQ.W         #$8,SP
  586. L804                MOVE.L         $1C(A3),D1
  587.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  588.                     JSR            -$126(A6)    ; DOSBase: SelectInput(d1)
  589.                     MOVE.L         $18(A3),D1
  590.                     JSR            -$12C(A6)    ; DOSBase: SelectOutput(d1)
  591.                     LEA            $190(A3),A0
  592.                     MOVE.W         #$18F,D0
  593.                     MOVEQ          #$0,D1
  594.                     MOVEA.L        A0,A1
  595. L824                MOVE.B         D1,(A1)+
  596.                     DBRA           D0,L824
  597.                     MOVE.L         A0,D2
  598.                     MOVE.L         A2,D1
  599.                     MOVE.L         $8(A3),D3
  600.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  601.                     JSR            -$31E(A6)    ; DOSBase: ReadArgs(d1,d2,d3)
  602.                                                
  603.                     MOVE.L         D0,$8(A3)
  604.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  605.                     JSR            -$36(A6)    ; DOSBase: Input()
  606.                                                
  607.                     MOVE.L         D0,D1
  608.                     MOVEQ          #-$1,D2
  609.                     JSR            -$13E(A6)    ; DOSBase: UnGetC(d1,d2)
  610.                     MOVE.L         $14(A3),D1
  611.                     JSR            -$12C(A6)    ; DOSBase: SelectOutput(d1)
  612.                     MOVE.L         $10(A3),D1
  613.                     JSR            -$126(A6)    ; DOSBase: SelectInput(d1)
  614.                     TST.L          $8(A3)
  615.                     BNE.S          L874
  616.                     MOVE.L         A2,-(SP)
  617.                     PEA            L69E(PC)
  618.                     MOVE.L         A3,-(SP)
  619.                     BSR.L          LF84
  620.                     LEA            $C(SP),SP
  621. L874                MOVEQ          #$1,D0
  622.                     MOVE.L         D0,$20(A3)
  623.                     BRA.L          L9A4
  624. L87E                MOVE.L         A2,D1
  625.                     MOVEQ          #$50,D2
  626.                     MOVEQ          #$0,D3
  627.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  628.                     JSR            -$32A(A6)    ; DOSBase: ReadItem(d1,d2,d3)
  629.                     MOVE.L         D0,D7
  630.                     TST.L          D7
  631.                     BPL.S          L89E
  632.                     PEA            L6C2(PC)
  633.                     MOVE.L         A3,-(SP)
  634.                     BSR.L          LF84
  635.                     ADDQ.W         #$8,SP
  636. L89E                TST.L          D7
  637.                     BEQ.L          L9A4
  638.                     TST.L          $20(A3)
  639.                     BNE.S          L8B6
  640.                     PEA            L6CE(PC)
  641.                     MOVE.L         A3,-(SP)
  642.                     BSR.L          LF84
  643.                     ADDQ.W         #$8,SP
  644. L8B6                LEA            $C8(A3),A0
  645.                     MOVE.L         A0,D1
  646.                     MOVE.L         A2,D2
  647.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  648.                     JSR            -$324(A6)    ; DOSBase: FindArg(d1,d2)
  649.                     MOVE.L         D0,D7
  650.                     TST.L          D7
  651.                     BMI.L          L9A4
  652.                     MOVE.L         D7,D0
  653.                     ASL.L          #$2,D0
  654.                     MOVEA.L        A3,A2
  655.                     ADDA.L         D0,A2
  656.                     TST.L          $190(A2)
  657.                     BNE.L          L9A4
  658.                     MOVE.L         #$1F4,D0
  659.                     MOVE.L         $24(A3),D1
  660.                     SUB.L          D1,D0
  661.                     MOVE.L         D0,D7
  662.                     MOVEA.L        A3,A1
  663.                     ADDA.L         D1,A1
  664.                     LEA            $320(A1),A6
  665.                     MOVE.L         D7,-(SP)
  666.                     MOVE.L         A6,-(SP)
  667.                     MOVE.L         A3,-(SP)
  668.                     BSR.L          LC36
  669.                     LEA            $C(SP),SP
  670.                     MOVE.L         D0,D6
  671.                     MOVEQ          #-$2,D0
  672.                     CMP.L          D0,D6
  673.                     BNE.S          L924
  674.                     MOVEA.L        A3,A0
  675.                     ADDA.L         $24(A3),A0
  676.                     LEA            $320(A0),A1
  677.                     MOVE.L         D7,-(SP)
  678.                     MOVE.L         A1,-(SP)
  679.                     MOVE.L         A3,-(SP)
  680.                     BSR.L          LC36
  681.                     LEA            $C(SP),SP
  682.                     MOVE.L         D0,D6
  683. L924                TST.L          D6
  684.                     BGT.S          L93A
  685.                     TST.L          D6
  686.                     BEQ.S          L9A4
  687.                     PEA            L6E6(PC)
  688.                     MOVE.L         A3,-(SP)
  689.                     BSR.L          LF84
  690.                     ADDQ.W         #$8,SP
  691.                     BRA.S          L9A4
  692. L93A                MOVEA.L        A3,A0
  693.                     MOVE.L         $24(A3),D0
  694.                     ADDA.L         D0,A0
  695.                     LEA            $320(A0),A1
  696.                     MOVE.L         A1,$190(A2)
  697.                     MOVEA.L        A3,A0
  698.                     ADDA.L         $24(A3),A0
  699.                     LEA            $320(A0),A1
  700.                     MOVEA.L        A1,A0
  701. L956                TST.B          (A0)+
  702.                     BNE.S          L956
  703.                     SUBQ.L         #$1,A0
  704.                     SUBA.L         A1,A0
  705.                     MOVE.L         A0,D0
  706.                     MOVE.L         $24(A3),D1
  707.                     ADD.L          D0,D1
  708.                     ADDQ.L         #$1,D1
  709.                     MOVE.L         D1,$24(A3)
  710.                     BRA.S          L9A4
  711. L96E                MOVE.L         A3,-(SP)
  712.                     BSR.L          LBB8
  713.                     ADDQ.W         #$4,SP
  714.                     MOVE.B         D0,$C(A3)
  715.                     BRA.S          L9A4
  716. L97C                MOVE.L         A3,-(SP)
  717.                     BSR.L          LBB8
  718.                     ADDQ.W         #$4,SP
  719.                     MOVE.B         D0,$D(A3)
  720.                     BRA.S          L9A4
  721. L98A                MOVE.L         A3,-(SP)
  722.                     BSR.L          LBB8
  723.                     ADDQ.W         #$4,SP
  724.                     MOVE.B         D0,$E(A3)
  725.                     BRA.S          L9A4
  726. L998                MOVE.L         A3,-(SP)
  727.                     BSR.L          LBB8
  728.                     ADDQ.W         #$4,SP
  729.                     MOVE.B         D0,$F(A3)
  730. L9A4                MOVEA.L        $4(A3),A6    ; DosBase ptr
  731.                     JSR            -$36(A6)    ; DOSBase: Input()
  732.                     MOVE.L         D0,D1
  733.                     JSR            -$132(A6)    ; DOSBase: FGetC(d1)
  734.                     MOVE.L         D0,D7
  735.                     BRA.S          L9C6
  736. L9B6                MOVEA.L        $4(A3),A6    ; DosBase ptr
  737.                     JSR            -$36(A6)    ; DOSBase: Input()
  738.                     MOVE.L         D0,D1
  739.                     JSR            -$132(A6)    ; DOSBase: FGetC(d1)
  740.                     MOVE.L         D0,D7
  741. L9C6                MOVEQ          #$A,D0
  742.                     CMP.L          D0,D7
  743.                     BEQ.S          L9D2
  744.                     MOVEQ          #-$1,D0
  745.                     CMP.L          D0,D7
  746.                     BNE.S          L9B6
  747. L9D2                MOVEA.L        $4(A3),A6    ; DosBase ptr
  748.                     JSR            -$36(A6)    ; DOSBase: Input()
  749.                     MOVE.L         D0,D1
  750.                     JSR            -$132(A6)    ; DOSBase: FGetC(d1)
  751.                     MOVEM.L        (SP)+,D2-D3/D6-D7/A2-A3/A6
  752.                     RTS
  753.  
  754. L9E6                LINK           A5,#-$1C
  755.                     MOVEM.L        D2/D4-D7/A2-A3/A6,-(SP)
  756.                     MOVEA.L        $8(A5),A3
  757.                     MOVE.L         $C(A5),D7
  758.                     MOVEQ          #$1,D4
  759.                     MOVEQ          #$0,D6
  760.                     MOVEQ          #$3B,D1
  761.                     CMP.L          D1,D7
  762.                     SNE            D0
  763.                     NEG.B          D0
  764.                     EXT.W          D0
  765.                     EXT.L          D0
  766.                     MOVE.W         D0,$24(SP)
  767.                     BRA.L          LB88
  768. LA0E                MOVEQ          #$0,D0
  769.                     MOVE.B         $C(A3),D0
  770.                     CMP.L          D0,D7
  771.                     BNE.L          LB50
  772.                     TST.L          D4
  773.                     BEQ.L          LB50
  774.                     TST.L          $20(A3)
  775.                     BEQ.L          LB50
  776.                     TST.W          $24(SP)
  777.                     BEQ.L          LB50
  778.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  779.                     JSR            -$36(A6)
  780.                                                ; DOSBase: Input()
  781.                     MOVE.L         D0,D1
  782.                     JSR            -$132(A6)
  783.                                                ; DOSBase: FGetC(d1)
  784.                                                ; SysBase: SetSignal(d0,d1)
  785.                     MOVE.L         D0,D7
  786.                     MOVEQ          #$0,D5
  787.                     MOVEQ          #$0,D6
  788.                     MOVEQ          #$0,D4
  789.                     MOVEQ          #$1,D0
  790.                     MOVE.L         D0,-$14(A5)
  791.                     MOVEQ          #$0,D0
  792.                     MOVE.B         $E(A3),D0
  793.                     CMP.L          D0,D7
  794.                     BNE.S          LA96
  795.                     JSR            -$36(A6)
  796.                                                ; DOSBase: Input()
  797.                     MOVE.L         D0,D1
  798.                     JSR            -$132(A6)
  799.                                                ; DOSBase: FGetC(d1)
  800.                                                ; SysBase: SetSignal(d0,d1)
  801.                     MOVEQ          #$0,D1
  802.                     MOVE.B         $E(A3),D1
  803.                     CMP.L          D1,D0
  804.                     BNE.S          LA8A
  805.                     MOVEQ          #$1,D6
  806.                     MOVEA.W        #$4,A0
  807.                     MOVEA.L        (A0),A1
  808.                     MOVEA.L        $114(A1),A0
  809.                     MOVE.L         $8C(A0),-(SP)
  810.                     PEA            L6F8(PC)
  811.                     MOVE.L         A3,-(SP)
  812.                     BSR.L          LF56
  813.                     LEA            $C(SP),SP
  814.                     BRA.S          LA96
  815. LA8A                JSR            -$36(A6)
  816.                                                ; DOSBase: Input()
  817.                     MOVE.L         D0,D1
  818.                     MOVEQ          #-$1,D2
  819.                     JSR            -$13E(A6)
  820.                                                ; DOSBase: UnGetC(d1,d2)
  821.                                                ; SysBase: Wait(d0)
  822. LA96                MOVE.L         D6,D0
  823.                     MOVE.L         -$14(A5),D6
  824.                     TST.L          D0
  825.                     BNE.L          LB88
  826.                     BRA.S          LACE
  827. LAA4                MOVEQ          #$15,D0
  828.                     CMP.L          D0,D5
  829.                     BLT.S          LAB6
  830.                     PEA            L6FC(PC)
  831.                     MOVE.L         A3,-(SP)
  832.                     BSR.L          LF84
  833.                     ADDQ.W         #$8,SP
  834. LAB6                ADDQ.L         #$1,D5
  835.                     MOVE.L         D7,D0
  836.                     MOVE.B         D0,$78(A2)
  837.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  838.                     JSR            -$36(A6)
  839.                                                ; DOSBase: Input()
  840.                     MOVE.L         D0,D1
  841.                     JSR            -$132(A6)
  842.                                                ; DOSBase: FGetC(d1)
  843.                                                ; SysBase: SetSignal(d0,d1)
  844.                     MOVE.L         D0,D7
  845. LACE                MOVEA.L        A3,A2
  846.                     ADDA.L         D5,A2
  847.                     MOVEQ          #$0,D0
  848.                     MOVE.B         $D(A3),D0
  849.                     CMP.L          D7,D0
  850.                     BEQ.S          LAF2
  851.                     MOVEQ          #$0,D0
  852.                     MOVE.B         $E(A3),D0
  853.                     CMP.L          D7,D0
  854.                     BEQ.S          LAF2
  855.                     MOVEQ          #$A,D0
  856.                     CMP.L          D0,D7
  857.                     BEQ.S          LAF2
  858.                     MOVEQ          #-$1,D0
  859.                     CMP.L          D0,D7
  860.                     BNE.S          LAA4
  861. LAF2                CLR.B          $78(A2)
  862.                     LEA            $C8(A3),A0
  863.                     LEA            $78(A3),A1
  864.                     MOVE.L         A0,D1
  865.                     MOVE.L         A1,D2
  866.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  867.                     JSR            -$324(A6)
  868.                                                ; DOSBase: FindArg(d1,d2)
  869.                     MOVE.L         D0,D5
  870.                     TST.L          D5
  871.                     BMI.S          LB1E
  872.                     MOVE.L         D5,D0
  873.                     ASL.L          #$2,D0
  874.                     MOVEA.L        A3,A2
  875.                     ADDA.L         D0,A2
  876.                     MOVE.L         $190(A2),D0
  877.                     BNE.S          LB22
  878. LB1E                MOVEQ          #$1,D4
  879.                     BRA.S          LB38
  880. LB22                ADDQ.L         #$1,D0
  881.                     BNE.S          LB2E
  882.                     MOVE.L         D2,D1
  883.                     JSR            -$3B4(A6)
  884.                                                ; DOSBase: PutStr(d1)
  885.                     BRA.S          LB38
  886. LB2E                MOVEA.L        $190(A2),A0
  887.                     MOVE.L         A0,D1
  888.                     JSR            -$3B4(A6)
  889.                                                ; DOSBase: PutStr(d1)
  890. LB38                MOVEQ          #$0,D0
  891.                     MOVE.B         $E(A3),D0
  892.                     CMP.L          D0,D7
  893.                     BNE.S          LB88
  894.                     JSR            -$36(A6)
  895.                                                ; DOSBase: Input()
  896.                     MOVE.L         D0,D1
  897.                     JSR            -$132(A6)
  898.                                                ; DOSBase: FGetC(d1)
  899.                                                ; SysBase: SetSignal(d0,d1)
  900.                     MOVE.L         D0,D7
  901.                     BRA.S          LB88
  902. LB50                MOVEQ          #$0,D0
  903.                     MOVE.B         $D(A3),D0
  904.                     CMP.L          D0,D7
  905.                     BNE.S          LB64
  906.                     TST.L          D6
  907.                     BEQ.S          LB64
  908.                     MOVEQ          #$1,D4
  909.                     MOVEQ          #$0,D6
  910.                     BRA.S          LB78
  911. LB64                TST.L          D4
  912.                     BEQ.S          LB78
  913.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  914.                     JSR            -$3C(A6)
  915.                                                ; DOSBase: Output()
  916.                     MOVE.L         D0,D1
  917.                     MOVE.L         D7,D2
  918.                     JSR            -$138(A6)
  919.                                                ; DOSBase: FPutC(d1,d2)
  920.                                                ; SysBase: SetExcept(d0,d1)
  921. LB78                MOVEA.L        $4(A3),A6        ; DosBase ptr
  922.                     JSR            -$36(A6)
  923.                                                ; DOSBase: Input()
  924.                     MOVE.L         D0,D1
  925.                     JSR            -$132(A6)
  926.                                                ; DOSBase: FGetC(d1)
  927.                                                ; SysBase: SetSignal(d0,d1)
  928.                     MOVE.L         D0,D7
  929. LB88                MOVEQ          #$A,D0
  930.                     CMP.L          D0,D7
  931.                     BEQ.S          LB96
  932.                     MOVEQ          #-$1,D0
  933.                     CMP.L          D0,D7
  934.                     BNE.L          LA0E
  935. LB96                MOVEA.L        $4(A3),A6        ; DosBase ptr
  936.                     JSR            -$3C(A6)
  937.                                                ; DOSBase: Output()
  938.                     MOVE.L         D0,D1
  939.                     MOVEQ          #$A,D2
  940.                     JSR            -$138(A6)
  941.                                                ; DOSBase: FPutC(d1,d2)
  942.                                                ; SysBase: SetExcept(d0,d1)
  943.                     JSR            -$36(A6)
  944.                                                ; DOSBase: Input()
  945.                     MOVE.L         D0,D1
  946.                     JSR            -$132(A6)
  947.                                                ; DOSBase: FGetC(d1)
  948.                                                ; SysBase: SetSignal(d0,d1)
  949.                     MOVEM.L        (SP)+,D2/D4-D7/A2-A3/A6
  950.                     UNLK           A5
  951.                     RTS
  952.  
  953. LBB8                LINK           A5,#-$4
  954.                     MOVEM.L        D2-D3/D7/A2-A3/A6,-(SP)
  955.                     MOVEA.L        $24(SP),A3
  956.                     LEA            $78(A3),A2
  957.                     MOVE.L         A2,D1
  958.                     MOVEQ          #$50,D2
  959.                     MOVEQ          #$0,D3
  960.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  961.                     JSR            -$32A(A6)
  962.                                                ; DOSBase: ReadItem(d1,d2,d3)
  963.                     MOVE.L         D0,D7
  964.                     TST.L          D7
  965.                     BNE.S          LC08
  966.                     JSR            -$36(A6)
  967.                                                ; DOSBase: Input()
  968.                     MOVE.L         D0,D1
  969.                     JSR            -$132(A6)
  970.                                                ; DOSBase: FGetC(d1)
  971.                                                ; SysBase: SetSignal(d0,d1)
  972.                     MOVE.L         D0,$18(SP)
  973.                     JSR            -$36(A6)
  974.                                                ; DOSBase: Input()
  975.                     MOVE.L         D0,D1
  976.                     MOVEQ          #-$1,D2
  977.                     JSR            -$13E(A6)
  978.                                                ; DOSBase: UnGetC(d1,d2)
  979.                                                ; SysBase: Wait(d0)
  980.                     MOVE.L         $18(SP),D0
  981.                     MOVEQ          #$A,D1
  982.                     CMP.L          D1,D0
  983.                     BEQ.S          LC04
  984.                     ADDQ.L         #$1,D0
  985.                     BNE.S          LC08
  986. LC04                MOVEQ          #-$2,D0
  987.                     BRA.S          LC2E
  988. LC08                TST.L          D7
  989.                     BLE.S          LC1C
  990.                     MOVEA.L        A2,A0
  991. LC0E                TST.B          (A0)+
  992.                     BNE.S          LC0E
  993.                     SUBQ.L         #$1,A0
  994.                     SUBA.L         A2,A0
  995.                     CMPA.W         #$1,A0
  996.                     BEQ.S          LC28
  997. LC1C                PEA            L70A(PC)
  998.                     MOVE.L         A3,-(SP)
  999.                     BSR.L          LF84
  1000.                     ADDQ.W         #$8,SP
  1001. LC28                MOVEQ          #$0,D0
  1002.                     MOVE.B         $78(A3),D0
  1003. LC2E                MOVEM.L        (SP)+,D2-D3/D7/A2-A3/A6
  1004.                     UNLK           A5
  1005.                     RTS
  1006.  
  1007. LC36                LINK           A5,#-$24
  1008.                     MOVEM.L        D2/D4-D7/A2-A3/A6,-(SP)
  1009.                     MOVEA.L        $8(A5),A3
  1010.                     MOVEQ          #$0,D0
  1011.                     MOVE.L         D0,-$18(A5)
  1012.                     MOVE.L         D0,D4
  1013.                     MOVE.L         D0,-$1C(A5)
  1014.                     MOVE.L         $10(A5),D0
  1015.                     MOVEQ          #$0,D1
  1016.                     MOVEA.L        $C(A5),A0
  1017.                     BRA.S          LC5C
  1018. LC5A                MOVE.B         D1,(A0)+
  1019. LC5C                SUBQ.L         #$1,D0
  1020.                     BCC.S          LC5A
  1021. LC60                MOVEA.L        $4(A3),A6        ; DosBase ptr
  1022.                     JSR            -$36(A6)
  1023.                                                ; DOSBase: Input()
  1024.                     MOVE.L         D0,D1
  1025.                     JSR            -$132(A6)
  1026.                                                ; DOSBase: FGetC(d1)
  1027.                                                ; SysBase: SetSignal(d0,d1)
  1028.                     MOVE.L         D0,D7
  1029.                     MOVEQ          #$20,D0
  1030.                     CMP.L          D0,D7
  1031.                     BEQ.S          LC60
  1032.                     MOVEQ          #$22,D0
  1033.                     CMP.L          D0,D7
  1034.                     BNE.L          LE84
  1035.                     MOVEQ          #$1,D0
  1036.                     MOVE.L         D0,-$1C(A5)
  1037.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  1038.                     JSR            -$36(A6)
  1039.                                                ; DOSBase: Input()
  1040.                     MOVE.L         D0,D1
  1041.                     JSR            -$132(A6)
  1042.                                                ; DOSBase: FGetC(d1)
  1043.                                                ; SysBase: SetSignal(d0,d1)
  1044.                     MOVE.L         D0,D7
  1045.                     BRA.L          LE84
  1046. LC98                MOVEQ          #$0,D0
  1047.                     MOVE.B         $C(A3),D0
  1048.                     CMP.L          D0,D7
  1049.                     BNE.L          LDE8
  1050.                     MOVEQ          #$1,D0
  1051.                     TST.L          D0
  1052.                     BEQ.L          LDE8
  1053.                     TST.L          $20(A3)
  1054.                     BEQ.L          LDE8
  1055.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  1056.                     JSR            -$36(A6)
  1057.                                                ; DOSBase: Input()
  1058.                     MOVE.L         D0,D1
  1059.                     JSR            -$132(A6)
  1060.                                                ; DOSBase: FGetC(d1)
  1061.                                                ; SysBase: SetSignal(d0,d1)
  1062.                     MOVE.L         D0,D7
  1063.                     MOVEQ          #$0,D5
  1064.                     MOVEQ          #$0,D6
  1065.                     MOVEQ          #$1,D4
  1066.                     MOVEQ          #$0,D0
  1067.                     MOVE.B         $E(A3),D0
  1068.                     CMP.L          D0,D7
  1069.                     BNE.S          LD14
  1070.                     JSR            -$36(A6)
  1071.                                                ; DOSBase: Input()
  1072.                     MOVE.L         D0,D1
  1073.                     JSR            -$132(A6)
  1074.                                                ; DOSBase: FGetC(d1)
  1075.                                                ; SysBase: SetSignal(d0,d1)
  1076.                     MOVEQ          #$0,D1
  1077.                     MOVE.B         $E(A3),D1
  1078.                     CMP.L          D1,D0
  1079.                     BNE.S          LD08
  1080.                     MOVEQ          #$1,D6
  1081.                     MOVEA.W        #$4,A0
  1082.                     MOVEA.L        (A0),A1
  1083.                     MOVEA.L        $114(A1),A0
  1084.                     MOVE.L         $8C(A0),-(SP)
  1085.                     PEA            L6F8(PC)
  1086.                     MOVE.L         A3,-(SP)
  1087.                     BSR.L          LF56
  1088.                     LEA            $C(SP),SP
  1089.                     BRA.S          LD14
  1090. LD08                JSR            -$36(A6)
  1091.                                                ; DOSBase: Input()
  1092.                     MOVE.L         D0,D1
  1093.                     MOVEQ          #-$1,D2
  1094.                     JSR            -$13E(A6)
  1095.                                                ; DOSBase: UnGetC(d1,d2)
  1096.                                                ; SysBase: Wait(d0)
  1097. LD14                TST.L          D6
  1098.                     BNE.L          LE84
  1099.                     BRA.S          LD46
  1100. LD1C                MOVEQ          #$15,D0
  1101.                     CMP.L          D0,D5
  1102.                     BLT.S          LD2E
  1103.                     PEA            L6FC(PC)
  1104.                     MOVE.L         A3,-(SP)
  1105.                     BSR.L          LF84
  1106.                     ADDQ.W         #$8,SP
  1107. LD2E                ADDQ.L         #$1,D5
  1108.                     MOVE.L         D7,D0
  1109.                     MOVE.B         D0,$78(A2)
  1110.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  1111.                     JSR            -$36(A6)
  1112.                                                ; DOSBase: Input()
  1113.                     MOVE.L         D0,D1
  1114.                     JSR            -$132(A6)
  1115.                                                ; DOSBase: FGetC(d1)
  1116.                                                ; SysBase: SetSignal(d0,d1)
  1117.                     MOVE.L         D0,D7
  1118. LD46                MOVEA.L        A3,A2
  1119.                     ADDA.L         D5,A2
  1120.                     MOVEQ          #$0,D0
  1121.                     MOVE.B         $D(A3),D0
  1122.                     CMP.L          D7,D0
  1123.                     BEQ.S          LD6A
  1124.                     MOVEQ          #$0,D0
  1125.                     MOVE.B         $E(A3),D0
  1126.                     CMP.L          D7,D0
  1127.                     BEQ.S          LD6A
  1128.                     MOVEQ          #$A,D0
  1129.                     CMP.L          D0,D7
  1130.                     BEQ.S          LD6A
  1131.                     MOVEQ          #-$1,D0
  1132.                     CMP.L          D0,D7
  1133.                     BNE.S          LD1C
  1134. LD6A                CLR.B          $78(A2)
  1135.                     LEA            $C8(A3),A0
  1136.                     LEA            $78(A3),A1
  1137.                     MOVE.L         A0,D1
  1138.                     MOVE.L         A1,D2
  1139.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  1140.                     JSR            -$324(A6)
  1141.                                                ; DOSBase: FindArg(d1,d2)
  1142.                     MOVE.L         D0,$24(SP)
  1143.                     ASL.L          #$2,D0
  1144.                     MOVEA.L        A3,A2
  1145.                     ADDA.L         D0,A2
  1146.                     MOVE.L         $24(SP),D0
  1147.                     TST.L          D0
  1148.                     BMI.S          LDC8
  1149.                     MOVE.L         $190(A2),D0
  1150.                     BEQ.S          LDC8
  1151.                     MOVEQ          #-$1,D1
  1152.                     CMP.L          D1,D0
  1153.                     BNE.S          LDA4
  1154.                     MOVEA.L        D2,A0
  1155.                     BRA.S          LDA6
  1156. LDA4                MOVEA.L        D0,A0
  1157. LDA6                PEA            -$18(A5)
  1158.                     MOVE.L         $C(A5),-(SP)
  1159.                     MOVE.L         $10(A5),-(SP)
  1160.                     MOVE.L         A0,-(SP)
  1161.                     MOVE.L         A3,-(SP)
  1162.                     BSR.L          LF06
  1163.                     LEA            $14(SP),SP
  1164.                     TST.W          D0
  1165.                     BNE.S          LDC8
  1166.                     MOVEQ          #-$1,D0
  1167.                     BRA.L          LECC
  1168. LDC8                MOVEQ          #$0,D0
  1169.                     MOVE.B         $E(A3),D0
  1170.                     CMP.L          D0,D7
  1171.                     BNE.L          LE84
  1172.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  1173.                     JSR            -$36(A6)
  1174.                                                ; DOSBase: Input()
  1175.                     MOVE.L         D0,D1
  1176.                     JSR            -$132(A6)
  1177.                                                ; DOSBase: FGetC(d1)
  1178.                                                ; SysBase: SetSignal(d0,d1)
  1179.                     MOVE.L         D0,D7
  1180.                     BRA.L          LE84
  1181. LDE8                MOVEQ          #$0,D0
  1182.                     MOVE.B         $D(A3),D0
  1183.                     CMP.L          D7,D0
  1184.                     BNE.S          LDFA
  1185.                     TST.L          D4
  1186.                     BEQ.S          LDFA
  1187.                     MOVEQ          #$0,D4
  1188.                     BRA.S          LE74
  1189. LDFA                TST.L          -$1C(A5)
  1190.                     BEQ.S          LE44
  1191.                     MOVEQ          #$22,D0
  1192.                     CMP.L          D0,D7
  1193.                     BNE.S          LE0C
  1194.                     MOVEQ          #$2,D0
  1195.                     BRA.L          LECC
  1196. LE0C                MOVEQ          #$2A,D0
  1197.                     CMP.L          D0,D7
  1198.                     BNE.S          LE56
  1199.                     MOVEA.L        $4(A3),A6        ; DosBase ptr
  1200.                     JSR            -$36(A6)
  1201.                                                ; DOSBase: Input()
  1202.                     MOVE.L         D0,D1
  1203.                     JSR            -$132(A6)
  1204.                                                ; DOSBase: FGetC(d1)
  1205.                                                ; SysBase: SetSignal(d0,d1)
  1206.                     MOVE.L         D0,D7
  1207.                     MOVE.L         D7,D0
  1208.                     MOVEA.L        (A3),A6
  1209.                     JSR            -$AE(A6)
  1210.                                                ; DOSBase: DeviceProc(d1)
  1211.                                                ; SysBase: RemIntServer(d0,a1)
  1212.                     MOVEQ          #$45,D1
  1213.                     CMP.B          D1,D0
  1214.                     BNE.S          LE34
  1215.                     MOVEQ          #$1B,D7
  1216.                     BRA.S          LE56
  1217. LE34                MOVE.L         D7,D0
  1218.                     JSR            -$AE(A6)
  1219.                                                ; DOSBase: DeviceProc(d1)
  1220.                                                ; SysBase: RemIntServer(d0,a1)
  1221.                     MOVEQ          #$4E,D1
  1222.                     CMP.B          D1,D0
  1223.                     BNE.S          LE56
  1224.                     MOVEQ          #$A,D7
  1225.                     BRA.S          LE56
  1226. LE44                MOVEQ          #$3B,D0
  1227.                     CMP.L          D0,D7
  1228.                     BEQ.S          LE92
  1229.                     MOVEQ          #$20,D0
  1230.                     CMP.L          D0,D7
  1231.                     BEQ.S          LE92
  1232.                     MOVEQ          #$3D,D0
  1233.                     CMP.L          D0,D7
  1234.                     BEQ.S          LE92
  1235. LE56                PEA            -$18(A5)
  1236.                     MOVE.L         $C(A5),-(SP)
  1237.                     MOVE.L         $10(A5),-(SP)
  1238.                     MOVE.L         D7,-(SP)
  1239.                     BSR.L          LED4
  1240.                     LEA            $10(SP),SP
  1241.                     TST.L          D0
  1242.                     BNE.S          LE74
  1243.                     MOVEQ          #-$1,D0
  1244.                     BRA.S          LECC
  1245. LE74                MOVEA.L        $4(A3),A6        ; DosBase ptr
  1246.                     JSR            -$36(A6)
  1247.                                                ; DOSBase: Input()
  1248.                     MOVE.L         D0,D1
  1249.                     JSR            -$132(A6)
  1250.                                                ; DOSBase: FGetC(d1)
  1251.                                                ; SysBase: SetSignal(d0,d1)
  1252.                     MOVE.L         D0,D7
  1253. LE84                MOVEQ          #$A,D0
  1254.                     CMP.L          D0,D7
  1255.                     BEQ.S          LE92
  1256.                     MOVEQ          #-$1,D0
  1257.                     CMP.L          D0,D7
  1258.                     BNE.L          LC98
  1259. LE92                MOVEA.L        $4(A3),A6    ; DosBase ptr
  1260.                     JSR            -$36(A6)    ; DOSBase: Input()
  1261.                     MOVE.L         D0,D1
  1262.                     MOVEQ          #-$1,D2
  1263.                     JSR            -$13E(A6)    ; DOSBase: UnGetC(d1,d2)
  1264.                     TST.L          -$1C(A5)
  1265.                     BEQ.S          LEAC
  1266.                     MOVE.L         D2,D0
  1267.                     BRA.S          LECC
  1268. LEAC                TST.L          -$18(A5)
  1269.                     BNE.S          LECA
  1270.                     MOVEQ          #$3D,D0
  1271.                     CMP.L          D0,D7
  1272.                     BNE.S          LEC6
  1273.                     JSR            -$36(A6)    ; DOSBase: Input()
  1274.                     MOVE.L         D0,D1
  1275.                     JSR            -$132(A6)    ; DOSBase: FGetC(d1)
  1276.                     MOVEQ          #-$2,D0
  1277.                     BRA.S          LECC
  1278. LEC6                MOVEQ          #$0,D0
  1279.                     BRA.S          LECC
  1280. LECA                MOVEQ          #$1,D0
  1281. LECC                MOVEM.L        (SP)+,D2/D4-D7/A2-A3/A6
  1282.                     UNLK           A5
  1283.                     RTS
  1284.  
  1285. LED4                MOVEM.L        D5-D7/A2-A3,-(SP)
  1286.                     MOVE.L         $18(SP),D7
  1287.                     MOVE.L         $1C(SP),D6
  1288.                     MOVEA.L        $20(SP),A3
  1289.                     MOVEA.L        $24(SP),A2
  1290.                     MOVE.L         (A2),D5
  1291.                     CMP.L          D6,D5
  1292.                     BLE.S          LEF2
  1293.                     MOVEQ          #$0,D0
  1294.                     BRA.S          LF00
  1295. LEF2                MOVE.L         D7,D0
  1296.                     MOVE.B         D0,$0(A3,D5.L)
  1297.                     MOVE.L         D5,D0
  1298.                     ADDQ.L         #$1,D0
  1299.                     MOVE.L         D0,(A2)
  1300.                     MOVEQ          #$1,D0
  1301. LF00                MOVEM.L        (SP)+,D5-D7/A2-A3
  1302.                     RTS
  1303.  
  1304. LF06                LINK           A5,#-$4
  1305.                     MOVEM.L        D6-D7/A2-A3,-(SP)
  1306.                     MOVEA.L        $C(A5),A3
  1307.                     MOVE.L         $10(A5),D7
  1308.                     MOVEA.L        $14(A5),A2
  1309.                     MOVEQ          #$0,D6
  1310.                     BRA.S          LF3E
  1311. LF1E                MOVEQ          #$0,D0
  1312.                     MOVE.B         $0(A3,D6.L),D0
  1313.                     MOVE.L         $18(A5),-(SP)
  1314.                     MOVE.L         A2,-(SP)
  1315.                     MOVE.L         D7,-(SP)
  1316.                     MOVE.L         D0,-(SP)
  1317.                     BSR.S          LED4
  1318.                     LEA            $10(SP),SP
  1319.                     TST.L          D0
  1320.                     BNE.S          LF3C
  1321.                     MOVEQ          #$0,D0
  1322.                     BRA.S          LF4E
  1323. LF3C                ADDQ.L         #$1,D6
  1324. LF3E                MOVEA.L        A3,A0
  1325. LF40                TST.B          (A0)+
  1326.                     BNE.S          LF40
  1327.                     SUBQ.L         #$1,A0
  1328.                     SUBA.L         A3,A0
  1329.                     CMP.L          A0,D6
  1330.                     BLT.S          LF1E
  1331.                     MOVEQ          #$1,D0
  1332. LF4E                MOVEM.L        (SP)+,D6-D7/A2-A3
  1333.                     UNLK           A5
  1334.                     RTS
  1335.  
  1336. LF56                LINK           A5,#$0
  1337.                     MOVEM.L        D2-D3/A2-A3/A6,-(SP)
  1338.                     MOVEA.L        $8(A5),A3
  1339.                     MOVEA.L        $C(A5),A2
  1340.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  1341.                     JSR            -$3C(A6)    ; DOSBase: Output()
  1342.                     MOVE.L         D0,D1
  1343.                     MOVE.L         A2,D2
  1344.                     LEA            $10(A5),A0
  1345.                     MOVE.L         A0,D3
  1346.                     JSR            -$15C(A6)    ; DOSBase: VFWritef(d1,d2,d3)
  1347.                     MOVEM.L        (SP)+,D2-D3/A2-A3/A6
  1348.                     UNLK           A5
  1349.                     RTS
  1350.  
  1351. LF84                MOVEM.L        D2/D5-D7/A2-A3/A6,-(SP)
  1352.                     MOVEA.L        $20(SP),A3
  1353.                     MOVEA.L        $24(SP),A2
  1354.                     MOVE.L         $28(SP),D7
  1355.                     MOVE.L         $2C(SP),D6
  1356.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  1357.                     JSR            -$84(A6)    ; DOSBase: IoErr()
  1358.                     MOVE.L         D0,D5
  1359.                     TST.L          $14(A3)
  1360.                     BEQ.S          LFC8
  1361.                     JSR            -$3C(A6)    ; DOSBase: Output()
  1362.                     MOVE.L         D0,D1
  1363.                     JSR            -$24(A6)    ; DOSBase: Close(d1)
  1364.                     LEA            $28(A3),A0
  1365.                     MOVE.L         A0,D0
  1366.                     BEQ.S          LFC0
  1367.                     MOVE.L         A0,D1
  1368.                     JSR            -$48(A6)    ; DOSBase: DeleteFile(d1)
  1369. LFC0                MOVE.L         $18(A3),D1
  1370.                     JSR            -$12C(A6)    ; DOSBase: SelectOutput(d1)
  1371. LFC8                TST.L          $10(A3)
  1372.                     BEQ.S          LFD8
  1373.                     JSR            -$36(A6)    ; DOSBase: Input()
  1374.                     MOVE.L         D0,D1
  1375.                     JSR            -$24(A6)    ; DOSBase: Close(d1)
  1376. LFD8                LEA            L726(PC),A0
  1377.                     MOVE.L         A0,D1
  1378.                     JSR            -$3B4(A6)    ; DOSBase: PutStr(d1)
  1379.                     MOVE.L         D6,-(SP)
  1380.                     MOVE.L         D7,-(SP)
  1381.                     MOVE.L         A2,-(SP)
  1382.                     MOVE.L         A3,-(SP)
  1383.                     BSR.L          LF56
  1384.                     MOVEA.L        $4(A3),A6    ; DosBase ptr
  1385.                     JSR            -$3C(A6)    ; DOSBase: Output()
  1386.                     MOVE.L         D0,D1
  1387.                     MOVEQ          #$A,D2
  1388.                     JSR            -$138(A6)    ; DOSBase: FPutC(d1,d2)
  1389.                     MOVE.L         D5,D1
  1390.                     JSR            -$1CE(A6)    ; DOSBase: SetIoErr(d1)
  1391.                     LEA            $514(A3),A0
  1392.                     MOVE.L         D2,(SP)
  1393.                     MOVE.L         A0,-(SP)
  1394.                     JSR            L104C(PC)
  1395.                     LEA            $14(SP),SP
  1396.                     MOVEM.L        (SP)+,D2/D5-D7/A2-A3/A6
  1397.                     RTS
  1398.  
  1399. L101A               MOVEM.L        D2/A3/A6,-(SP)
  1400.                     MOVEA.L        $10(SP),A3
  1401.                     MOVEA.L        A3,A6
  1402.                     JSR            -$84(A6)    ; DOSBase: IoErr()
  1403.                     MOVE.L         D0,D1
  1404.                     MOVEQ          #$0,D2
  1405.                     JSR            -$1DA(A6)    ; DOSBase: PrintFault(d1,d2)
  1406.                     MOVEM.L        (SP)+,D2/A3/A6
  1407.                     RTS
  1408.  
  1409. L1036               DC.W           $0
  1410. L1038               MOVEA.L        $4(SP),A0
  1411.                     MOVEM.L        D1-D7/A1-SP,$4(A0)
  1412.                     MOVE.L         $0(SP),$0(A0)
  1413.                     MOVEQ          #$0,D0
  1414.                     RTS
  1415.  
  1416. L104C               MOVE.L         $8(SP),D0
  1417.                     BNE.S          L1054
  1418.                     ADDQ.L         #$1,D0
  1419. L1054               MOVEA.L        $4(SP),A0
  1420.                     MOVEM.L        $4(A0),D1-D7/A1-SP
  1421.                     MOVE.L         $0(A0),$0(SP)
  1422.                     RTS
  1423.  
  1424. L1066               DC.W           $0
  1425. L1068               TST.L          D0
  1426.                     BPL.L          L108A
  1427.                     NEG.L          D0
  1428.                     TST.L          D1
  1429.                     BPL.L          L1080
  1430.                     NEG.L          D1
  1431.                     BSR.L          L109A
  1432.                     NEG.L          D1
  1433.                     RTS
  1434.  
  1435. L1080               BSR.L          L109A
  1436.                     NEG.L          D0
  1437.                     NEG.L          D1
  1438.                     RTS
  1439.  
  1440. L108A               TST.L          D1
  1441.                     BPL.L          L109A
  1442.                     NEG.L          D1
  1443.                     BSR.L          L109A
  1444.                     NEG.L          D0
  1445.                     RTS
  1446.  
  1447. L109A               MOVE.L         D2,-(SP)
  1448.                     SWAP           D1
  1449.                     MOVE.W         D1,D2
  1450.                     BNE.L          L10C4
  1451.                     SWAP           D0
  1452.                     SWAP           D1
  1453.                     SWAP           D2
  1454.                     MOVE.W         D0,D2
  1455.                     BEQ.L          L10B4
  1456.                     DIVU.W         D1,D2
  1457.                     MOVE.W         D2,D0
  1458. L10B4               SWAP           D0
  1459.                     MOVE.W         D0,D2
  1460.                     DIVU.W         D1,D2
  1461.                     MOVE.W         D2,D0
  1462.                     SWAP           D2
  1463.                     MOVE.W         D2,D1
  1464.                     MOVE.L         (SP)+,D2
  1465.                     RTS
  1466.  
  1467. L10C4               MOVE.L         D3,-(SP)
  1468.                     MOVEQ          #$10,D3
  1469.                     CMPI.W         #$80,D1
  1470.                     BCC.L          L10D4
  1471.                     ROL.L          #$8,D1
  1472.                     SUBQ.W         #$8,D3
  1473. L10D4               CMPI.W         #$800,D1
  1474.                     BCC.L          L10E0
  1475.                     ROL.L          #$4,D1
  1476.                     SUBQ.W         #$4,D3
  1477. L10E0               CMPI.W         #$2000,D1
  1478.                     BCC.L          L10EC
  1479.                     ROL.L          #$2,D1
  1480.                     SUBQ.W         #$2,D3
  1481. L10EC               TST.W          D1
  1482.                     BMI.L          L10F6
  1483.                     ROL.L          #$1,D1
  1484.                     SUBQ.W         #$1,D3
  1485. L10F6               MOVE.W         D0,D2
  1486.                     LSR.L          D3,D0
  1487.                     SWAP           D2
  1488.                     CLR.W          D2
  1489.                     LSR.L          D3,D2
  1490.                     SWAP           D3
  1491.                     DIVU.W         D1,D0
  1492.                     MOVE.W         D0,D3
  1493.                     MOVE.W         D2,D0
  1494.                     MOVE.W         D3,D2
  1495.                     SWAP           D1
  1496.                     MULU.W         D1,D2
  1497.                     SUB.L          D2,D0
  1498.                     BCC.L          L111A
  1499.                     SUBQ.W         #$1,D3
  1500.                     ADD.L          D1,D0
  1501. L1118               BCC.S          L1118
  1502. L111A               MOVEQ          #$0,D1
  1503.                     MOVE.W         D3,D1
  1504.                     SWAP           D3
  1505.                     ROL.L          D3,D0
  1506.                     SWAP           D0
  1507.                     EXG            D0,D1
  1508.                     MOVE.L         (SP)+,D3
  1509.                     MOVE.L         (SP)+,D2
  1510.                     RTS
  1511.  
  1512.  
  1513.  
  1514.                     END
  1515.