home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol159 / meta.a86 < prev    next >
Encoding:
Text File  |  1985-03-23  |  39.6 KB  |  3,293 lines

  1.     TITLE    '8086 META COMPILER CP/M-86'
  2.     PAGEWIDTH 79
  3.     NAME    'MAINPROG'
  4.     EXTRN    MSG:NEAR,OPENIO:NEAR,CLOSEIO:NEAR,RNX:NEAR
  5.     EXTRN    WNX:NEAR,STOP:NEAR,BREAD:NEAR,BWRITE:NEAR
  6.     EXTRN    INITIAL:NEAR,ENDING:NEAR,STOP:NEAR,ATTACH:NEAR
  7.     EXTRN    ASSOC:NEAR
  8. DATA    DSEG
  9. KA0EF    EQU    26
  10. KA0HT    EQU    9
  11. KA0QM    EQU    39
  12. KA0EL    EQU    13
  13. KA0NL    EQU    10
  14. BA0AA    RB    1
  15. BA0BB    RB    1
  16. BA0BO    RB    80
  17. BA0C0    RB    1
  18. BA0C1    RB    1
  19. BA0C2    RB    1
  20. BA0C3    RB    1
  21. BA0C9    RB    1
  22. BA0CB    RB    1
  23. BA0CC    RB    1
  24. BA0CD    RB    1
  25. BA0CE    RB    1
  26. BA0CG    RB    1
  27. BA0CL    RB    1
  28. BA0CM    RB    1
  29. BA0CP    RB    1
  30. BA0CQ    RB    1
  31. BA0CS    RB    1
  32. BA0CT    RB    1
  33. BA0CU    RB    1
  34. BA0CV    RB    1
  35. BA0CX    RB    1
  36. BA0DD    RB    1
  37. BA0DS    RB    10
  38. BA0EE    RB    1
  39. BA0EF    RB    1
  40. BA0EL    RB    1
  41. BA0F1    RB    128
  42. BA0F2    RB    128
  43. BA0FL    RB    1
  44. BA0KA    RB    1
  45. BA0KB    RB    1
  46. BA0KC    RB    1
  47. BA0KS    RB    6000
  48. BA0LI    RB    1
  49. BA0LL    RB    1
  50. BA0MC    RB    3000
  51. BA0MK    RB    1
  52. BA0MN    RB    1
  53. BA0ND    RB    1
  54. BA0NL    RB    1
  55. BA0NS    RB    80
  56. BA0OS    RB    80
  57. BA0PB    RB    1
  58. BA0PI    RB    1
  59. BA0PL    RB    1
  60. BA0PM    RB    1
  61. BA0PN    RB    1
  62. BA0PO    RB    1
  63. BA0QI    RB    1
  64. BA0RC    RB    1
  65. BA0RI    RB    80
  66. BA0SD    RB    1
  67. BA0WA    RB    1
  68. BA0WB    RB    1
  69. BA0X0    RB    1
  70. BA0X1    RB    1
  71. BA0X2    RB    1
  72. BA0X3    RB    1
  73. BA0X9    RB    1
  74. BA0XA    RB    1
  75. BA0XB    RB    1
  76. BA0XC    RB    1
  77. BA0XD    RB    1
  78. BA0XE    RB    1
  79. BA0XF    RB    1
  80. BA0XG    RB    1
  81. BA0XH    RB    1
  82. BA0XI    RB    1
  83. BA0XJ    RB    1
  84. BA0XK    RB    1
  85. BA0XL    RB    1
  86. BA0XM    RB    1
  87. BA0XN    RB    1
  88. BA0XO    RB    1
  89. BA0XP    RB    1
  90. BA0XQ    RB    1
  91. BA0XR    RB    1
  92. BA0XS    RB    1
  93. BA0XT    RB    1
  94. BA0XU    RB    1
  95. BA0XV    RB    1
  96. BA0XW    RB    1
  97. BA0XX    RB    1
  98. BA0XY    RB    1
  99. BA0XZ    RB    1
  100. BA0YP    RB    1
  101. BA0ZP    RB    1
  102. BA0ZX    RB    1
  103. WA000    RW    1
  104. WA001    RW    1
  105. WA003    RW    1
  106. WA010    RW    1
  107. WA016    RW    1
  108. WA0AA    RW    1
  109. WA0BB    RW    1
  110. WA0BK    RW    1
  111. WA0CC    RW    1
  112. WA0DD    RW    1
  113. WA0LB    RW    1
  114. WA0LN    RW    1
  115. WA0LT    RW    1000
  116. WA0MB    RW    1
  117. WA0MD    RW    1
  118. WA0MF    RW    1
  119. WA0MI    RW    3000
  120. WA0ML    RW    1
  121. WA0MM    RW    1
  122. WA0MT    RW    1
  123. WA0MX    RW    1
  124. WA0MZ    RW    1
  125. WA0NL    RW    1
  126. WA0PC    RW    1
  127. WA0PL    RW    1
  128. WA0PR    RW    10
  129. WA0PT    RW    1
  130. WA0RN    RW    1
  131. WA0SM    RW    1
  132. WA0ST    RW    600
  133. WA0TU    RW    1
  134. WA0UU    RW    1
  135. WA0XX    RW    1
  136. WA0YS    RW    80
  137. WA0YY    RW    1
  138. WA0ZC    RW    1
  139. WA0ZS    RW    80
  140. WA0ZT    RW    1
  141. BA0AC    RB    1
  142. WA0AV    RW    1
  143. IOCTRL    DSEG    COMMON
  144. IAV    DW    0
  145. BA0ER    DB    0
  146.     CSEG
  147. START:    CALL    INITIAL
  148.     MOV    AX,IAV
  149.     MOV    BA0AC,AL
  150.     MOV    BA0EL,KA0EL
  151.     MOV    BA0NL,KA0NL
  152.     CALL    MSG
  153.     DB    'METATERP '
  154.     CALL    MSG
  155.     DB    'Ver 1.2  '
  156.     CALL    SA0CR
  157.     CALL    MSG
  158.     DB    '8086 VERS'
  159.     CALL    MSG
  160.     DB    'ION FOR C'
  161.     CALL    MSG
  162.     DB    'P/M-86   '
  163.     CALL    SA0CR
  164.     CALL    MSG
  165.     DB    'COPYRIGHT'
  166.     CALL    MSG
  167.     DB    ' 1984 A. '
  168.     CALL    MSG
  169.     DB    'L. BENDER'
  170.     CALL    MSG
  171.     DB    ', M. D.  '
  172.     CALL    SA0IN
  173.     CALL    SA0CR
  174.     CALL    SA0RC
  175.     CALL    SA0LI
  176.     MOV    WA0PC,0
  177. LOC00:
  178.     CALL    SA0GI
  179.     MOV    BL,BA0C0
  180.     MOV    BH,0
  181.     MOV    AL,BA0RI[BX]
  182.     MOV    BA0CC,AL
  183.     MOV    AL,BA0CC
  184.     JMP    XA0101
  185.     RB    0-3
  186. A0U100:    CMP    AL,BA0XL
  187.     JZ    $+5
  188.     JMP    A0U102
  189.     MOV    AL,BA0PI
  190.     CMP    AL,BA0C1
  191.     MOV    AL,1
  192.     JZ    $+4
  193.     MOV    AL,0
  194.     MOV    BA0AA,AL
  195.     MOV    AL,BA0AA
  196.     TEST    AL,AL
  197.     JNZ    $+5
  198.     JMP    IF0103
  199.     MOV    AL,BA0FL
  200.     TEST    AL,AL
  201.     JNZ    $+5
  202.     JMP    IF0104
  203.     CALL    SA0LW
  204.     INC    WA0SM
  205.     JMP    IF0105
  206. IF0104:
  207.     MOV    AL,BA0PM
  208.     MOV    BA0PL,AL
  209. IF0105:
  210.     JMP    IF0106
  211. IF0103:
  212.     MOV    BL,BA0C1
  213.     MOV    BH,0
  214.     MOV    AL,BA0RI[BX]
  215.     MOV    BA0CC,AL
  216.     MOV    AL,BA0CC
  217.     JMP    XA0108
  218.     RB    0-3
  219. A0U107:    CMP    AL,BA0XM
  220.     JZ    $+5
  221.     JMP    A0U109
  222.     MOV    BA0FL,0
  223.     MOV    BA0BB,2
  224. TW0110:
  225.     MOV    AL,BA0BB
  226.     CMP    AL,BA0PI
  227.     LAHF
  228.     AND    AH,1
  229.     MOV    BA0AA,AH
  230.     MOV    AL,BA0AA
  231.     TEST    AL,AL
  232.     JNZ    $+5
  233.     JMP    BW0110
  234.     MOV    BL,BA0BB
  235.     MOV    BH,0
  236.     MOV    AL,BA0RI[BX]
  237.     MOV    BA0AA,AL
  238.     MOV    BL,BA0PL
  239.     MOV    BH,0
  240.     MOV    AL,BA0NS[BX]
  241.     MOV    BA0DD,AL
  242.     MOV    AL,BA0DD
  243.     CMP    AL,BA0AA
  244.     MOV    AL,1
  245.     JNZ    $+4
  246.     MOV    AL,0
  247.     MOV    BA0AA,AL
  248.     MOV    AL,BA0AA
  249.     TEST    AL,AL
  250.     JNZ    $+5
  251.     JMP    IF0111
  252.     JMP    LOC99
  253. IF0111:
  254.     INC    BA0BB
  255.     CALL    SA0LA
  256.     JMP    TW0110
  257. BW0110:
  258.     MOV    BA0FL,1
  259.     CALL    SA0LB
  260.     JMP    XA0108
  261.     RB    0-0
  262. A0U109:    CMP    AL,BA0XI
  263.     JZ    $+5
  264.     JMP    A0U112
  265.     MOV    BA0FL,0
  266.     MOV    BL,BA0PL
  267.     MOV    BH,0
  268.     MOV    AL,BA0NS[BX]
  269.     MOV    BA0CC,AL
  270.     MOV    BA0PO,0
  271.     CALL    SA0ZA
  272. TW0113:
  273.     MOV    AL,BA0AA
  274.     TEST    AL,AL
  275.     JNZ    $+5
  276.     JMP    BW0113
  277.     MOV    AL,BA0CC
  278.     MOV    BL,BA0PO
  279.     MOV    BH,0
  280.     MOV    BA0OS[BX],AL
  281.     INC    BA0PO
  282.     CALL    SA0LA
  283.     MOV    BL,BA0PL
  284.     MOV    BH,0
  285.     MOV    AL,BA0NS[BX]
  286.     MOV    BA0CC,AL
  287.     CALL    SA0ZA
  288.     MOV    AL,BA0AA
  289.     MOV    BA0DD,AL
  290.     CALL    SA0ZN
  291.     MOV    AL,BA0DD
  292.     OR    AL,BA0AA
  293.     MOV    BA0AA,AL
  294.     JMP    TW0113
  295. BW0113:
  296.     MOV    AL,BA0PO
  297.     CMP    AL,BA0C0
  298.     MOV    AL,1
  299.     JZ    $+4
  300.     MOV    AL,0
  301.     MOV    BA0AA,AL
  302.     MOV    AL,BA0AA
  303.     TEST    AL,AL
  304.     JNZ    $+5
  305.     JMP    IF0114
  306.     JMP    LOC99
  307. IF0114:
  308.     CALL    SA0MS
  309.     MOV    AX,WA0AA
  310.     MOV    BL,BA0C0
  311.     MOV    BH,0
  312.     SHL    BX,1
  313.     MOV    WA0PR[BX],AX
  314.     MOV    BA0FL,1
  315.     JMP    XA0108
  316.     RB    0-0
  317. A0U112:    CMP    AL,BA0XN
  318.     JZ    $+5
  319.     JMP    A0U115
  320.     MOV    BA0FL,0
  321.     MOV    BX,WA000
  322.     MOV    WA0AA,BX
  323. TW0116:
  324.     MOV    BL,BA0PL
  325.     MOV    BH,0
  326.     MOV    AL,BA0NS[BX]
  327.     MOV    BA0CC,AL
  328.     CALL    SA0ZN
  329.     MOV    AL,BA0AA
  330.     TEST    AL,AL
  331.     JNZ    $+5
  332.     JMP    BW0116
  333.     MOV    BA0FL,1
  334.     MOV    AX,WA0AA
  335.     IMUL    WA010
  336.     MOV    WA0AA,AX
  337.     MOV    AL,BA0CC
  338.     SUB    AL,BA0X0
  339.     MOV    BA0CC,AL
  340.     MOV    BH,0
  341.     MOV    BL,BA0CC
  342.     MOV    WA0BB,BX
  343.     MOV    AX,WA0AA
  344.     ADD    AX,WA0BB
  345.     MOV    WA0AA,AX
  346.     CALL    SA0LA
  347.     JMP    TW0116
  348. BW0116:
  349.     MOV    AX,WA0AA
  350.     MOV    BL,BA0C0
  351.     MOV    BH,0
  352.     SHL    BX,1
  353.     MOV    WA0PR[BX],AX
  354.     JMP    XA0108
  355.     RB    0-0
  356. A0U115:    CMP    AL,BA0XH
  357.     JZ    $+5
  358.     JMP    A0U117
  359.     MOV    BA0FL,0
  360.     MOV    WA0AA,0
  361. TW0118:
  362.     MOV    BL,BA0PL
  363.     MOV    BH,0
  364.     MOV    AL,BA0NS[BX]
  365.     MOV    BA0CC,AL
  366.     CALL    SA0ZH
  367.     MOV    AL,BA0AA
  368.     TEST    AL,AL
  369.     JNZ    $+5
  370.     JMP    BW0118
  371.     MOV    BA0FL,1
  372.     MOV    AX,WA0AA
  373.     IMUL    WA016
  374.     MOV    WA0AA,AX
  375.     MOV    BH,0
  376.     MOV    BL,BA0CC
  377.     MOV    WA0BB,BX
  378.     MOV    AX,WA0AA
  379.     ADD    AX,WA0BB
  380.     MOV    WA0AA,AX
  381.     CALL    SA0LA
  382.     JMP    TW0118
  383. BW0118:
  384.     MOV    AX,WA0AA
  385.     MOV    BL,BA0C0
  386.     MOV    BH,0
  387.     SHL    BX,1
  388.     MOV    WA0PR[BX],AX
  389.     JMP    XA0108
  390.     RB    0-0
  391. A0U117:    CMP    AL,BA0XQ
  392.     JZ    $+5
  393.     JMP    A0U119
  394.     MOV    BL,BA0C2
  395.     MOV    BH,0
  396.     MOV    AL,BA0RI[BX]
  397.     MOV    BA0DD,AL
  398.     MOV    BL,BA0PL
  399.     MOV    BH,0
  400.     MOV    AL,BA0NS[BX]
  401.     MOV    BA0CC,AL
  402.     MOV    BA0PO,0
  403.     MOV    AL,BA0CC
  404.     CMP    AL,BA0DD
  405.     MOV    AL,1
  406.     JZ    $+4
  407.     MOV    AL,0
  408.     MOV    BA0AA,AL
  409.     MOV    AL,BA0AA
  410.     TEST    AL,AL
  411.     JNZ    $+5
  412.     JMP    IF0120
  413.     CALL    SA0LA
  414. TW0121:
  415.     MOV    BL,BA0PL
  416.     MOV    BH,0
  417.     MOV    AL,BA0NS[BX]
  418.     MOV    BA0CC,AL
  419.     MOV    AL,BA0NL
  420.     CMP    AL,BA0CC
  421.     MOV    AL,1
  422.     JNZ    $+4
  423.     MOV    AL,0
  424.     MOV    BA0AA,AL
  425.     MOV    AL,BA0DD
  426.     CMP    AL,BA0CC
  427.     MOV    AL,1
  428.     JNZ    $+4
  429.     MOV    AL,0
  430.     MOV    BA0BB,AL
  431.     MOV    AL,BA0AA
  432.     AND    AL,BA0BB
  433.     MOV    BA0AA,AL
  434.     MOV    AL,BA0AA
  435.     TEST    AL,AL
  436.     JNZ    $+5
  437.     JMP    BW0121
  438.     MOV    AL,BA0CC
  439.     MOV    BL,BA0PO
  440.     MOV    BH,0
  441.     MOV    BA0OS[BX],AL
  442.     INC    BA0PO
  443.     CALL    SA0LA
  444.     JMP    TW0121
  445. BW0121:
  446.     CALL    SA0LA
  447.     MOV    AL,BA0CC
  448.     CMP    AL,BA0NL
  449.     MOV    AL,1
  450.     JZ    $+4
  451.     MOV    AL,0
  452.     MOV    BA0AA,AL
  453.     MOV    AL,BA0AA
  454.     TEST    AL,AL
  455.     JNZ    $+5
  456.     JMP    IF0122
  457.     INC    WA0LN
  458.     MOV    BX,WA000
  459.     MOV    WA0SM,BX
  460. IF0122:
  461.     MOV    BA0FL,1
  462.     JMP    IF0123
  463. IF0120:
  464.     MOV    BA0FL,0
  465. IF0123:
  466.     JMP    XA0108
  467.     RB    0-0
  468. A0U119:
  469.     MOV    AL,BA0CC
  470.     CALL    WNX
  471.     CALL    MSG
  472.     DB    ' NOT LEX!'
  473.     CALL    SA0CR
  474. XA0108:
  475. IF0106:
  476.     JMP    XA0101
  477.     RB    0-0
  478. A0U102:    CMP    AL,BA0XF
  479.     JZ    $+5
  480.     JMP    A0U124
  481.     MOV    AL,BA0FL
  482.     TEST    AL,AL
  483.     JNZ    $+5
  484.     JMP    IF0125
  485.     JMP    IF0126
  486. IF0125:
  487.     JMP    LOC20
  488. IF0126:
  489.     JMP    XA0101
  490.     RB    0-0
  491. A0U124:    CMP    AL,BA0XP
  492.     JZ    $+5
  493.     JMP    A0U127
  494.     MOV    BA0BB,1
  495. TW0128:
  496.     MOV    AL,BA0BB
  497.     CMP    AL,BA0PI
  498.     LAHF
  499.     AND    AH,1
  500.     MOV    BA0AA,AH
  501.     MOV    AL,BA0AA
  502.     TEST    AL,AL
  503.     JNZ    $+5
  504.     JMP    BW0128
  505.     MOV    BL,BA0BB
  506.     MOV    BH,0
  507.     MOV    AL,BA0RI[BX]
  508.     MOV    BA0CC,AL
  509.     MOV    AL,BA0CC
  510.     MOV    BL,BA0PB
  511.     MOV    BH,0
  512.     MOV    BA0BO[BX],AL
  513.     INC    BA0PB
  514.     INC    BA0BB
  515.     JMP    TW0128
  516. BW0128:
  517.     JMP    XA0101
  518.     RB    0-0
  519. A0U127:    CMP    AL,BA0XO
  520.     JZ    $+5
  521.     JMP    A0U129
  522.     MOV    BA0BB,0
  523. TW0130:
  524.     MOV    AL,BA0BB
  525.     CMP    AL,BA0PB
  526.     LAHF
  527.     AND    AH,1
  528.     MOV    BA0AA,AH
  529.     MOV    AL,BA0AA
  530.     TEST    AL,AL
  531.     JNZ    $+5
  532.     JMP    BW0130
  533.     MOV    BL,BA0BB
  534.     MOV    BH,0
  535.     MOV    AL,BA0BO[BX]
  536.     MOV    BA0CC,AL
  537.     INC    BA0BB
  538.     MOV    BX, OFFSET BA0CC
  539.     MOV    DX, OFFSET BA0F2
  540.     CALL    BWRITE
  541.     JMP    TW0130
  542. BW0130:
  543.     MOV    BA0PB,0
  544.     MOV    AL,BA0PI
  545.     CMP    AL,BA0C1
  546.     MOV    AL,1
  547.     JZ    $+4
  548.     MOV    AL,0
  549.     MOV    BA0AA,AL
  550.     MOV    AL,BA0AA
  551.     TEST    AL,AL
  552.     JNZ    $+5
  553.     JMP    IF0131
  554.     MOV    BX, OFFSET BA0EL
  555.     MOV    DX, OFFSET BA0F2
  556.     CALL    BWRITE
  557.     MOV    BX, OFFSET BA0NL
  558.     MOV    DX, OFFSET BA0F2
  559.     CALL    BWRITE
  560. IF0131:
  561.     JMP    XA0101
  562.     RB    0-0
  563. A0U129:    CMP    AL,BA0XX
  564.     JZ    $+5
  565.     JMP    A0U132
  566.     MOV    AL,BA0PI
  567.     CMP    AL,BA0C1
  568.     MOV    AL,1
  569.     JZ    $+4
  570.     MOV    AL,0
  571.     MOV    BA0AA,AL
  572.     MOV    AL,BA0AA
  573.     TEST    AL,AL
  574.     JNZ    $+5
  575.     JMP    IF0133
  576.     MOV    AL,BA0FL
  577.     TEST    AL,AL
  578.     JNZ    $+5
  579.     JMP    IF0134
  580.     JMP    IF0135
  581. IF0134:
  582. LOC98:
  583.     CALL    MSG
  584.     DB    'ERROR AT '
  585.     CALL    MSG
  586.     DB    'LINE NUM '
  587.     MOV    BX,WA0LN
  588.     MOV    WA0AA,BX
  589.     CALL    SA0PN
  590.     CALL    MSG
  591.     DB    ' SYMBOL  '
  592.     MOV    BX,WA0SM
  593.     MOV    WA0AA,BX
  594.     CALL    SA0PN
  595.     MOV    AL,BA0CB
  596.     CALL    WNX
  597.     CALL    SA0CR
  598. TW0136:
  599.     MOV    BL,BA0PL
  600.     MOV    BH,0
  601.     MOV    AL,BA0NS[BX]
  602.     MOV    BA0CC,AL
  603.     MOV    AL,BA0ZX
  604.     CMP    AL,BA0CC
  605.     MOV    AL,1
  606.     JNZ    $+4
  607.     MOV    AL,0
  608.     MOV    BA0AA,AL
  609.     MOV    AL,BA0C0
  610.     CMP    AL,BA0CC
  611.     MOV    AL,1
  612.     JNZ    $+4
  613.     MOV    AL,0
  614.     MOV    BA0BB,AL
  615.     MOV    AL,BA0AA
  616.     AND    AL,BA0BB
  617.     MOV    BA0AA,AL
  618.     MOV    AL,BA0AA
  619.     TEST    AL,AL
  620.     JNZ    $+5
  621.     JMP    BW0136
  622.     MOV    AL,BA0CC
  623.     CMP    AL,BA0NL
  624.     MOV    AL,1
  625.     JZ    $+4
  626.     MOV    AL,0
  627.     MOV    BA0AA,AL
  628.     MOV    AL,BA0AA
  629.     TEST    AL,AL
  630.     JNZ    $+5
  631.     JMP    IF0137
  632.     INC    WA0LN
  633.     MOV    WA0SM,0
  634. IF0137:
  635.     CALL    SA0LA
  636.     CALL    SA0LB
  637.     JMP    TW0136
  638. BW0136:
  639.     MOV    AL,BA0CC
  640.     CMP    AL,BA0C0
  641.     MOV    AL,1
  642.     JZ    $+4
  643.     MOV    AL,0
  644.     MOV    BA0BB,AL
  645.     MOV    AL,BA0BB
  646.     TEST    AL,AL
  647.     JNZ    $+5
  648.     JMP    IF0138
  649.     CALL    MSG
  650.     DB    'END FILE '
  651.     JMP    LOC21
  652. IF0138:
  653.     CALL    SA0LA
  654.     CALL    SA0LB
  655.     CALL    SA0LW
  656.     MOV    BX,WA0ZC
  657.     MOV    WA0PC,BX
  658.     MOV    BX,WA0ZT
  659.     MOV    WA0PT,BX
  660.     MOV    BA0FL,1
  661. IF0135:
  662.     JMP    IF0139
  663. IF0133:
  664.     MOV    BL,BA0C1
  665.     MOV    BH,0
  666.     MOV    AL,BA0RI[BX]
  667.     MOV    BA0CC,AL
  668.     MOV    AL,BA0CC
  669.     JMP    XA0141
  670.     RB    0-3
  671. A0U140:    CMP    AL,BA0XN
  672.     JZ    $+5
  673.     JMP    A0U142
  674.     MOV    BX,WA0LN
  675.     MOV    WA0AA,BX
  676.     CALL    SA0WN
  677.     JMP    XA0141
  678.     RB    0-0
  679. A0U142:    CMP    AL,BA0XO
  680.     JZ    $+5
  681.     JMP    A0U143
  682.     MOV    BA0BB,0
  683. TW0144:
  684.     MOV    AL,BA0BB
  685.     CMP    AL,BA0PB
  686.     LAHF
  687.     AND    AH,1
  688.     MOV    BA0AA,AH
  689.     MOV    AL,BA0AA
  690.     TEST    AL,AL
  691.     JNZ    $+5
  692.     JMP    BW0144
  693.     MOV    BL,BA0BB
  694.     MOV    BH,0
  695.     MOV    AL,BA0BO[BX]
  696.     MOV    BA0CC,AL
  697.     INC    BA0BB
  698.     MOV    AL,BA0CC
  699.     CALL    WNX
  700.     JMP    TW0144
  701. BW0144:
  702.     CALL    SA0CR
  703.     MOV    BA0PB,0
  704.     JMP    XA0141
  705.     RB    0-0
  706. A0U143:    CMP    AL,BA0XM
  707.     JZ    $+5
  708.     JMP    A0U145
  709.     MOV    BX,WA0PC
  710.     MOV    WA0ZC,BX
  711.     MOV    BX,WA0PT
  712.     MOV    WA0ZT,BX
  713.     MOV    BL,BA0C2
  714.     MOV    BH,0
  715.     MOV    AL,BA0RI[BX]
  716.     MOV    BA0ZX,AL
  717.     JMP    XA0141
  718.     RB    0-0
  719. A0U145:
  720. XA0141:
  721. IF0139:
  722.     JMP    XA0101
  723.     RB    0-0
  724. A0U132:    CMP    AL,BA0XT
  725.     JZ    $+5
  726.     JMP    A0U146
  727.     MOV    AL,BA0FL
  728.     TEST    AL,AL
  729.     JNZ    $+5
  730.     JMP    IF0147
  731.     JMP    LOC20
  732. IF0147:
  733.     JMP    XA0101
  734.     RB    0-0
  735. A0U146:    CMP    AL,BA0XG
  736.     JZ    $+5
  737.     JMP    A0U148
  738.     MOV    BL,BA0C1
  739.     MOV    BH,0
  740.     MOV    AL,BA0RI[BX]
  741.     MOV    BA0WA,AL
  742.     MOV    BL,BA0C2
  743.     MOV    BH,0
  744.     MOV    AL,BA0RI[BX]
  745.     MOV    BA0WB,AL
  746.     MOV    AX,WA0PT
  747.     ADD    AX,WA003
  748.     MOV    WA0PT,AX
  749.     MOV    WA0AA,597
  750.     MOV    AX,WA0AA
  751.     CMP    AX,WA0PT
  752.     MOV    AL,1
  753.     JLE    $+4
  754.     MOV    AL,0
  755.     MOV    BA0AA,AL
  756.     MOV    AL,BA0AA
  757.     TEST    AL,AL
  758.     JNZ    $+5
  759.     JMP    IF0149
  760.     CALL    MSG
  761.     DB    'STACK OVE'
  762.     CALL    MSG
  763.     DB    'R FLOW>>>'
  764.     JMP    LOC98
  765. IF0149:
  766.     MOV    AX,WA0PC
  767.     MOV    BX,WA0PT
  768.     SHL    BX,1
  769.     MOV    WA0ST[BX],AX
  770.     MOV    AL,BA0WB
  771.     MOV    AH,BA0WA
  772.     MOV    WA0PC,AX
  773.     MOV    BX,WA0PT
  774.     MOV    WA0AA,BX
  775.     INC    WA0AA
  776.     MOV    AX,WA000
  777.     MOV    BX,WA0AA
  778.     SHL    BX,1
  779.     MOV    WA0ST[BX],AX
  780.     INC    WA0AA
  781.     MOV    AX,WA000
  782.     MOV    BX,WA0AA
  783.     SHL    BX,1
  784.     MOV    WA0ST[BX],AX
  785.     JMP    XA0101
  786.     RB    0-0
  787. A0U148:    CMP    AL,BA0XR
  788.     JZ    $+5
  789.     JMP    A0U150
  790.     MOV    BX,WA0PT
  791.     SHL    BX,1
  792.     MOV    AX,WA0ST[BX]
  793.     MOV    WA0PC,AX
  794.     MOV    AX,WA0PT
  795.     CMP    AX,WA003
  796.     LAHF
  797.     ROL    AH,1
  798.     AND    AH,1
  799.     MOV    BA0AA,AH
  800.     MOV    AL,BA0AA
  801.     TEST    AL,AL
  802.     JNZ    $+5
  803.     JMP    IF0151
  804.     CALL    MSG
  805.     DB    'STACK UND'
  806.     CALL    MSG
  807.     DB    'ERFLOW...'
  808.     JMP    LOC98
  809. IF0151:
  810.     MOV    AX,WA0PT
  811.     SUB    AX,WA003
  812.     MOV    WA0PT,AX
  813.     JMP    XA0101
  814.     RB    0-0
  815. A0U150:    CMP    AL,BA0XS
  816.     JZ    $+5
  817.     JMP    A0U152
  818.     MOV    AL,BA0PI
  819.     CMP    AL,BA0C1
  820.     MOV    AL,1
  821.     JZ    $+4
  822.     MOV    AL,0
  823.     MOV    BA0AA,AL
  824.     MOV    AL,BA0AA
  825.     TEST    AL,AL
  826.     JNZ    $+5
  827.     JMP    IF0153
  828.     MOV    BA0FL,1
  829.     JMP    IF0154
  830. IF0153:
  831.     MOV    BL,BA0C1
  832.     MOV    BH,0
  833.     MOV    AL,BA0RI[BX]
  834.     MOV    BA0CC,AL
  835.     MOV    AL,BA0CC
  836.     JMP    XA0156
  837.     RB    0-3
  838. A0U155:    CMP    AL,BA0XF
  839.     JZ    $+5
  840.     JMP    A0U157
  841.     MOV    BA0FL,0
  842.     JMP    XA0156
  843.     RB    0-0
  844. A0U157:    CMP    AL,BA0XC
  845.     JZ    $+5
  846.     JMP    A0U158
  847.     MOV    AL,BA0C1
  848.     SUB    AL,BA0FL
  849.     MOV    BA0FL,AL
  850.     JMP    XA0156
  851.     RB    0-0
  852. A0U158:
  853.     CALL    MSG
  854.     DB    'SET ERROR'
  855.     CALL    SA0CR
  856. XA0156:
  857. IF0154:
  858.     JMP    XA0101
  859.     RB    0-0
  860. A0U152:    CMP    AL,BA0XU
  861.     JZ    $+5
  862.     JMP    A0U159
  863.     MOV    AL,BA0PI
  864.     CMP    AL,BA0C1
  865.     MOV    AL,1
  866.     JZ    $+4
  867.     MOV    AL,0
  868.     MOV    BA0AA,AL
  869.     MOV    AL,BA0AA
  870.     TEST    AL,AL
  871.     JNZ    $+5
  872.     JMP    IF0160
  873.     MOV    BX,WA0PT
  874.     MOV    WA0AA,BX
  875.     INC    WA0AA
  876. LOC10:
  877.     MOV    BX,WA0AA
  878.     SHL    BX,1
  879.     MOV    AX,WA0ST[BX]
  880.     MOV    WA0BB,AX
  881.     MOV    AX,WA0BB
  882.     CMP    AX,WA001
  883.     LAHF
  884.     ROL    AH,1
  885.     AND    AH,1
  886.     MOV    BA0AA,AH
  887.     MOV    AL,BA0AA
  888.     TEST    AL,AL
  889.     JNZ    $+5
  890.     JMP    IF0161
  891.     INC    WA0UU
  892.     MOV    BX,WA0UU
  893.     MOV    WA0BB,BX
  894.     MOV    AX,WA0UU
  895.     MOV    BX,WA0AA
  896.     SHL    BX,1
  897.     MOV    WA0ST[BX],AX
  898. IF0161:
  899.     MOV    BX,WA0BB
  900.     MOV    WA0AA,BX
  901.     MOV    AX,WA0AA
  902.     MOV    BL,BA0C0
  903.     MOV    BH,0
  904.     SHL    BX,1
  905.     MOV    WA0PR[BX],AX
  906.     CALL    SA0WN
  907.     JMP    IF0162
  908. IF0160:
  909.     JMP    LOC22
  910. IF0162:
  911.     JMP    XA0101
  912.     RB    0-0
  913. A0U159:    CMP    AL,BA0XC
  914.     JZ    $+5
  915.     JMP    A0U163
  916.     MOV    BA0BB,0
  917. TW0164:
  918.     MOV    AL,BA0BB
  919.     CMP    AL,BA0PO
  920.     LAHF
  921.     AND    AH,1
  922.     MOV    BA0AA,AH
  923.     MOV    AL,BA0AA
  924.     TEST    AL,AL
  925.     JNZ    $+5
  926.     JMP    BW0164
  927.     MOV    BL,BA0BB
  928.     MOV    BH,0
  929.     MOV    AL,BA0OS[BX]
  930.     MOV    BA0CC,AL
  931.     MOV    AL,BA0CC
  932.     MOV    BL,BA0PB
  933.     MOV    BH,0
  934.     MOV    BA0BO[BX],AL
  935.     INC    BA0PB
  936.     INC    BA0BB
  937.     JMP    TW0164
  938. BW0164:
  939.     JMP    XA0101
  940.     RB    0-0
  941. A0U163:    CMP    AL,BA0XV
  942.     JZ    $+5
  943.     JMP    A0U165
  944.     MOV    AL,BA0PI
  945.     CMP    AL,BA0C1
  946.     MOV    AL,1
  947.     JZ    $+4
  948.     MOV    AL,0
  949.     MOV    BA0AA,AL
  950.     MOV    AL,BA0AA
  951.     TEST    AL,AL
  952.     JNZ    $+5
  953.     JMP    IF0166
  954.     MOV    BX,WA0PT
  955.     MOV    WA0AA,BX
  956.     INC    WA0AA
  957.     INC    WA0AA
  958.     JMP    LOC10
  959.     JMP    IF0167
  960. IF0166:
  961.     JMP    LOC22
  962. IF0167:
  963.     JMP    XA0101
  964.     RB    0-0
  965. A0U165:    CMP    AL,BA0XM
  966.     JZ    $+5
  967.     JMP    A0U168
  968.     MOV    BL,BA0C1
  969.     MOV    BH,0
  970.     MOV    AL,BA0RI[BX]
  971.     MOV    BA0CC,AL
  972.     MOV    AL,BA0CC
  973.     JMP    XA0170
  974.     RB    0-3
  975. A0U169:    CMP    AL,BA0XS
  976.     JZ    $+5
  977.     JMP    A0U171
  978.     CALL    SA0MH
  979.     JMP    XA0170
  980.     RB    0-0
  981. A0U171:    CMP    AL,BA0XP
  982.     JZ    $+5
  983.     JMP    A0U172
  984.     CALL    SA0MP
  985.     JMP    XA0170
  986.     RB    0-0
  987. A0U172:    CMP    AL,BA0XE
  988.     JZ    $+5
  989.     JMP    A0U173
  990.     CALL    SA0ME
  991.     MOV    AX,WA0AA
  992.     MOV    BL,BA0C0
  993.     MOV    BH,0
  994.     SHL    BX,1
  995.     MOV    WA0PR[BX],AX
  996.     JMP    XA0170
  997.     RB    0-0
  998. A0U173:    CMP    AL,BA0XQ
  999.     JZ    $+5
  1000.     JMP    A0U174
  1001.     CALL    SA0MS
  1002.     MOV    AX,WA0AA
  1003.     MOV    BL,BA0C0
  1004.     MOV    BH,0
  1005.     SHL    BX,1
  1006.     MOV    WA0PR[BX],AX
  1007.     JMP    XA0170
  1008.     RB    0-0
  1009. A0U174:    CMP    AL,BA0XC
  1010.     JZ    $+5
  1011.     JMP    A0U175
  1012.     CALL    SA0MC
  1013.     MOV    AX,WA0AA
  1014.     MOV    BL,BA0C0
  1015.     MOV    BH,0
  1016.     SHL    BX,1
  1017.     MOV    WA0PR[BX],AX
  1018.     JMP    XA0170
  1019.     RB    0-0
  1020. A0U175:    CMP    AL,BA0XD
  1021.     JZ    $+5
  1022.     JMP    A0U176
  1023.     CALL    SA0MD
  1024.     MOV    AX,WA0AA
  1025.     MOV    BL,BA0C0
  1026.     MOV    BH,0
  1027.     SHL    BX,1
  1028.     MOV    WA0PR[BX],AX
  1029.     JMP    XA0170
  1030.     RB    0-0
  1031. A0U176:    CMP    AL,BA0XI
  1032.     JZ    $+5
  1033.     JMP    A0U177
  1034.     MOV    BL,BA0C2
  1035.     MOV    BH,0
  1036.     MOV    AL,BA0RI[BX]
  1037.     MOV    BA0CC,AL
  1038.     CALL    SA0ZN
  1039.     MOV    AL,BA0AA
  1040.     TEST    AL,AL
  1041.     JNZ    $+5
  1042.     JMP    IF0178
  1043.     MOV    AL,BA0CC
  1044.     SUB    AL,BA0X0
  1045.     MOV    BA0MK,AL
  1046.     JMP    IF0179
  1047. IF0178:
  1048.     MOV    BA0MK,2
  1049. IF0179:
  1050.     CALL    SA0MI
  1051.     JMP    XA0170
  1052.     RB    0-0
  1053. A0U177:
  1054.     CALL    MSG
  1055.     DB    'ILLEGAL M'
  1056.     CALL    MSG
  1057.     DB    'EM OPN>>>'
  1058.     CALL    SA0CR
  1059. XA0170:
  1060.     JMP    XA0101
  1061.     RB    0-0
  1062. A0U168:    CMP    AL,BA0XJ
  1063.     JZ    $+5
  1064.     JMP    A0U180
  1065. LOC20:
  1066.     MOV    BL,BA0C1
  1067.     MOV    BH,0
  1068.     MOV    AL,BA0RI[BX]
  1069.     MOV    BA0AA,AL
  1070.     MOV    BL,BA0C2
  1071.     MOV    BH,0
  1072.     MOV    AL,BA0RI[BX]
  1073.     MOV    BA0BB,AL
  1074.     MOV    AL,BA0BB
  1075.     MOV    AH,BA0AA
  1076.     MOV    WA0LB,AX
  1077.     MOV    BX,WA0LB
  1078.     SHL    BX,1
  1079.     MOV    AX,WA0LT[BX]
  1080.     MOV    WA0PC,AX
  1081.     JMP    XA0101
  1082.     RB    0-0
  1083. A0U180:    CMP    AL,BA0XE
  1084.     JZ    $+5
  1085.     JMP    A0U181
  1086. LOC21:
  1087.     MOV    DX, OFFSET BA0F1
  1088.     CALL    CLOSEIO
  1089.     MOV    DX, OFFSET BA0F2
  1090.     CALL    CLOSEIO
  1091.     MOV    BX,WA0MM
  1092.     MOV    WA0AA,BX
  1093.     CALL    SA0PN
  1094.     CALL    MSG
  1095.     DB    ' MAX MEM '
  1096.     CALL    MSG
  1097.     DB    'USAGE.   '
  1098.     CALL    SA0CR
  1099.     CALL    MSG
  1100.     DB    'PROGRAMME'
  1101.     CALL    MSG
  1102.     DB    'D TERMINA'
  1103.     CALL    MSG
  1104.     DB    'TION     '
  1105.     CALL    SA0CR
  1106.     MOV    AL,0
  1107.     CALL    STOP
  1108.     JMP    XA0101
  1109.     RB    0-0
  1110. A0U181:
  1111. LOC22:
  1112.     MOV    BA0QI,0
  1113.     CALL    SA0FT
  1114.     CALL    SA0FI
  1115.     CALL    SA0ST
  1116. XA0101:
  1117.     JMP    LOC00
  1118. LOC99:
  1119.     MOV    BA0FL,0
  1120.     JMP    LOC00
  1121.     CALL    ENDING
  1122.     MOV    CL,0
  1123.     INT    224
  1124. SA0CK:
  1125.     MOV    AL,BA0C0
  1126.     CMP    AL,BA0ER
  1127.     MOV    AL,1
  1128.     JNZ    $+4
  1129.     MOV    AL,0
  1130.     MOV    BA0AA,AL
  1131.     MOV    AL,BA0AA
  1132.     TEST    AL,AL
  1133.     JNZ    $+5
  1134.     JMP    IF0182
  1135.     CALL    MSG
  1136.     DB    'CANT OPEN'
  1137.     MOV    BX,WA0BK
  1138.     MOV    WA0AA,BX
  1139.     CALL    SA0PN
  1140.     CALL    SA0CR
  1141.     MOV    AL,1
  1142.     CALL    STOP
  1143. IF0182:
  1144.     RET
  1145. SA0CR:
  1146.     MOV    AL,BA0EL
  1147.     CALL    WNX
  1148.     MOV    AL,BA0NL
  1149.     CALL    WNX
  1150.     RET
  1151. SA0DS:
  1152.     MOV    AX,WA0AA
  1153.     CMP    AX,WA000
  1154.     LAHF
  1155.     ROL    AH,1
  1156.     AND    AH,1
  1157.     MOV    BA0AA,AH
  1158.     MOV    AL,BA0AA
  1159.     TEST    AL,AL
  1160.     JNZ    $+5
  1161.     JMP    IF0183
  1162.     MOV    BA0BB,1
  1163.     MOV    AX,WA0AA
  1164.     NEG    AX
  1165.     MOV    WA0AA,AX
  1166.     JMP    IF0184
  1167. IF0183:
  1168.     MOV    BA0BB,0
  1169. IF0184:
  1170.     MOV    AX,WA000
  1171.     CMP    AX,WA0AA
  1172.     MOV    AL,1
  1173.     JZ    $+4
  1174.     MOV    AL,0
  1175.     MOV    BA0AA,AL
  1176.     MOV    AL,BA0AA
  1177.     TEST    AL,AL
  1178.     JNZ    $+5
  1179.     JMP    IF0185
  1180.     MOV    AL,BA0C1
  1181.     MOV    BA0ND,AL
  1182.     MOV    AL,BA0X0
  1183.     MOV    BL,BA0C0
  1184.     MOV    BH,0
  1185.     MOV    BA0DS[BX],AL
  1186.     JMP    IF0186
  1187. IF0185:
  1188.     MOV    AL,BA0C0
  1189.     MOV    BA0ND,AL
  1190. TW0187:
  1191.     MOV    AX,WA000
  1192.     CMP    AX,WA0AA
  1193.     LAHF
  1194.     ROL    AH,1
  1195.     AND    AH,1
  1196.     MOV    BA0AA,AH
  1197.     MOV    AL,BA0AA
  1198.     TEST    AL,AL
  1199.     JNZ    $+5
  1200.     JMP    BW0187
  1201.     MOV    AX,WA0AA
  1202.     MOV    CX,WA010
  1203.     CWD
  1204.     JCXZ    $+4
  1205.     IDIV    CX
  1206.     MOV    WA0YY,AX
  1207.     MOV    AX,WA010
  1208.     IMUL    WA0YY
  1209.     MOV    WA0BB,AX
  1210.     MOV    AX,WA0AA
  1211.     SUB    AX,WA0BB
  1212.     MOV    WA0XX,AX
  1213.     MOV    BX,WA0YY
  1214.     MOV    WA0AA,BX
  1215.     MOV    AL,BYTE PTR WA0XX
  1216.     MOV    BA0AA,AL
  1217.     MOV    AL,BA0X0
  1218.     ADD    AL,BA0AA
  1219.     MOV    BA0AA,AL
  1220.     MOV    AL,BA0AA
  1221.     MOV    BL,BA0ND
  1222.     MOV    BH,0
  1223.     MOV    BA0DS[BX],AL
  1224.     INC    BA0ND
  1225.     JMP    TW0187
  1226. BW0187:
  1227. IF0186:
  1228.     MOV    AL,BA0CM
  1229.     MOV    BL,BA0ND
  1230.     MOV    BH,0
  1231.     MOV    BA0DS[BX],AL
  1232.     MOV    AL,BA0BB
  1233.     ADD    AL,BA0ND
  1234.     MOV    BA0ND,AL
  1235.     RET
  1236. SA0FI:
  1237.     INC    BA0QI
  1238.     MOV    BL,BA0QI
  1239.     MOV    BH,0
  1240.     MOV    AL,BA0RI[BX]
  1241.     MOV    BA0CC,AL
  1242.     MOV    AL,BA0CC
  1243.     JMP    XA0189
  1244.     RB    0-3
  1245. A0U188:    CMP    AL,BA0XM
  1246.     JZ    $+5
  1247.     JMP    A0U190
  1248.     INC    BA0QI
  1249.     MOV    BL,BA0QI
  1250.     MOV    BH,0
  1251.     MOV    AL,BA0RI[BX]
  1252.     MOV    BA0CC,AL
  1253.     CALL    SA0ZN
  1254.     MOV    AL,BA0AA
  1255.     TEST    AL,AL
  1256.     JNZ    $+5
  1257.     JMP    IF0191
  1258.     MOV    AL,BA0CC
  1259.     SUB    AL,BA0X0
  1260.     MOV    BA0BB,AL
  1261.     JMP    IF0192
  1262. IF0191:
  1263. LOC11:
  1264.     CALL    MSG
  1265.     DB    'INDEX TO '
  1266.     CALL    MSG
  1267.     DB    'MEM CELL '
  1268.     MOV    BA0BB,0
  1269. IF0192:
  1270.     MOV    AL,BA0BB
  1271.     CMP    AL,BA0MK
  1272.     LAHF
  1273.     AND    AH,1
  1274.     MOV    BA0AA,AH
  1275.     MOV    AL,BA0AA
  1276.     TEST    AL,AL
  1277.     JNZ    $+5
  1278.     JMP    IF0193
  1279.     MOV    BH,0
  1280.     MOV    BL,BA0BB
  1281.     MOV    WA0AA,BX
  1282.     MOV    AX,WA0AA
  1283.     ADD    AX,WA0TU
  1284.     MOV    WA0AA,AX
  1285.     MOV    BX,WA0AA
  1286.     SHL    BX,1
  1287.     MOV    AX,WA0MI[BX]
  1288.     MOV    WA0TU,AX
  1289.     RET
  1290.     JMP    IF0194
  1291. IF0193:
  1292.     MOV    AL,BA0BB
  1293.     SUB    AL,BA0MK
  1294.     MOV    BA0BB,AL
  1295.     MOV    AL,BA0BB
  1296.     CMP    AL,BA0MK
  1297.     LAHF
  1298.     AND    AH,1
  1299.     MOV    BA0AA,AH
  1300.     MOV    AL,BA0AA
  1301.     TEST    AL,AL
  1302.     JNZ    $+5
  1303.     JMP    IF0195
  1304.     MOV    BH,0
  1305.     MOV    BL,BA0BB
  1306.     MOV    WA0AA,BX
  1307.     MOV    AX,WA0TU
  1308.     ADD    AX,WA0AA
  1309.     MOV    WA0AA,AX
  1310.     MOV    BX,WA0AA
  1311.     MOV    AL,BA0MC[BX]
  1312.     MOV    BA0AA,AL
  1313.     MOV    BH,0
  1314.     MOV    BL,BA0AA
  1315.     MOV    WA0TU,BX
  1316.     JMP    IF0196
  1317. IF0195:
  1318.     JMP    LOC11
  1319. IF0196:
  1320. IF0194:
  1321.     JMP    XA0189
  1322.     RB    0-0
  1323. A0U190:    CMP    AL,BA0XS
  1324.     JZ    $+5
  1325.     JMP    A0U197
  1326.     MOV    AL,BYTE PTR WA0TU
  1327.     MOV    BA0AA,AL
  1328.     MOV    BL,BA0AA
  1329.     MOV    BH,0
  1330.     MOV    AL,BA0OS[BX]
  1331.     MOV    BA0BB,AL
  1332.     MOV    BH,0
  1333.     MOV    BL,BA0BB
  1334.     MOV    WA0TU,BX
  1335.     JMP    XA0189
  1336.     RB    0-0
  1337. A0U197:
  1338.     DEC    BA0QI
  1339. XA0189:
  1340.     RET
  1341. SA0FT:
  1342.     MOV    BL,BA0QI
  1343.     MOV    BH,0
  1344.     MOV    AL,BA0RI[BX]
  1345.     MOV    BA0CC,AL
  1346.     MOV    AL,BA0CC
  1347.     JMP    XA0199
  1348.     RB    0-3
  1349. A0U198:    CMP    AL,BA0XY
  1350.     JZ    $+5
  1351.     JMP    A0U200
  1352.     MOV    BL,BA0YP
  1353.     MOV    BH,0
  1354.     SHL    BX,1
  1355.     MOV    AX,WA0YS[BX]
  1356.     MOV    WA0TU,AX
  1357.     JMP    XA0199
  1358.     RB    0-0
  1359. A0U200:    CMP    AL,BA0CX
  1360.     JZ    $+5
  1361.     JMP    A0U201
  1362.     MOV    BL,BA0YP
  1363.     MOV    BH,0
  1364.     SHL    BX,1
  1365.     MOV    AX,WA0YS[BX]
  1366.     MOV    WA0TU,AX
  1367.     CALL    SA0PY
  1368.     JMP    XA0199
  1369.     RB    0-0
  1370. A0U201:    CMP    AL,BA0XZ
  1371.     JZ    $+5
  1372.     JMP    A0U202
  1373.     MOV    BL,BA0ZP
  1374.     MOV    BH,0
  1375.     SHL    BX,1
  1376.     MOV    AX,WA0ZS[BX]
  1377.     MOV    WA0TU,AX
  1378.     MOV    AL,BA0ZP
  1379.     CMP    AL,BA0C0
  1380.     MOV    AL,1
  1381.     JZ    $+4
  1382.     MOV    AL,0
  1383.     MOV    BA0AA,AL
  1384.     MOV    AL,BA0AA
  1385.     TEST    AL,AL
  1386.     JNZ    $+5
  1387.     JMP    IF0203
  1388.     CALL    MSG
  1389.     DB    'Z STACKER'
  1390.     CALL    SA0CR
  1391.     MOV    BA0ZP,1
  1392.     MOV    BA0FL,0
  1393. IF0203:
  1394.     DEC    BA0ZP
  1395.     JMP    XA0199
  1396.     RB    0-0
  1397. A0U202:    CMP    AL,BA0XN
  1398.     JZ    $+5
  1399.     JMP    A0U204
  1400.     INC    BA0QI
  1401.     MOV    BL,BA0QI
  1402.     MOV    BH,0
  1403.     MOV    AL,BA0RI[BX]
  1404.     MOV    BA0AA,AL
  1405.     INC    BA0QI
  1406.     MOV    BL,BA0QI
  1407.     MOV    BH,0
  1408.     MOV    AL,BA0RI[BX]
  1409.     MOV    BA0BB,AL
  1410.     MOV    AL,BA0BB
  1411.     MOV    AH,BA0AA
  1412.     MOV    WA0TU,AX
  1413.     JMP    XA0199
  1414.     RB    0-0
  1415. A0U204:    CMP    AL,BA0XH
  1416.     JZ    $+5
  1417.     JMP    A0U205
  1418.     MOV    BL,BA0YP
  1419.     MOV    BH,0
  1420.     SHL    BX,1
  1421.     MOV    AX,WA0YS[BX]
  1422.     MOV    WA0TU,AX
  1423.     MOV    AX,WA0TU
  1424.     MOV    BA0AA,AH
  1425.     MOV    BA0BB,AL
  1426.     MOV    BH,0
  1427.     MOV    BL,BA0AA
  1428.     MOV    WA0TU,BX
  1429.     JMP    XA0199
  1430.     RB    0-0
  1431. A0U205:    CMP    AL,BA0XB
  1432.     JZ    $+5
  1433.     JMP    A0U206
  1434.     MOV    BH,0
  1435.     MOV    BL,BA0PO
  1436.     MOV    WA0TU,BX
  1437.     JMP    XA0199
  1438.     RB    0-0
  1439. A0U206:    CMP    AL,BA0XU
  1440.     JZ    $+5
  1441.     JMP    A0U207
  1442.     MOV    BX,WA0PT
  1443.     MOV    WA0AA,BX
  1444. LOC38:
  1445.     INC    WA0AA
  1446.     MOV    BX,WA0AA
  1447.     SHL    BX,1
  1448.     MOV    AX,WA0ST[BX]
  1449.     MOV    WA0TU,AX
  1450.     JMP    XA0199
  1451.     RB    0-0
  1452. A0U207:    CMP    AL,BA0XV
  1453.     JZ    $+5
  1454.     JMP    A0U208
  1455.     MOV    BX,WA0PT
  1456.     MOV    WA0AA,BX
  1457.     INC    WA0AA
  1458.     JMP    LOC38
  1459.     JMP    XA0199
  1460.     RB    0-0
  1461. A0U208:
  1462.     CALL    SA0ZN
  1463.     MOV    AL,BA0AA
  1464.     TEST    AL,AL
  1465.     JNZ    $+5
  1466.     JMP    IF0209
  1467.     MOV    AL,BA0CC
  1468.     SUB    AL,BA0X0
  1469.     MOV    BA0AA,AL
  1470.     JMP    IF0210
  1471. IF0209:
  1472.     CALL    MSG
  1473.     DB    'ILLEGAL F'
  1474.     CALL    MSG
  1475.     DB    'ETCH OPN '
  1476.     CALL    SA0CR
  1477.     MOV    BA0AA,0
  1478. IF0210:
  1479.     MOV    BL,BA0AA
  1480.     MOV    BH,0
  1481.     SHL    BX,1
  1482.     MOV    AX,WA0PR[BX]
  1483.     MOV    WA0TU,AX
  1484. XA0199:
  1485.     RET
  1486. SA0GI:
  1487.     MOV    BA0PI,0
  1488.     MOV    BX,WA0PC
  1489.     MOV    AL,BA0KS[BX]
  1490.     MOV    BA0LI,AL
  1491.     INC    WA0PC
  1492. TW0211:
  1493.     MOV    AL,BA0PI
  1494.     CMP    AL,BA0LI
  1495.     LAHF
  1496.     AND    AH,1
  1497.     MOV    BA0AA,AH
  1498.     MOV    AL,BA0AA
  1499.     TEST    AL,AL
  1500.     JNZ    $+5
  1501.     JMP    BW0211
  1502.     MOV    BX,WA0PC
  1503.     MOV    AL,BA0KS[BX]
  1504.     MOV    BA0AA,AL
  1505.     INC    WA0PC
  1506.     MOV    AL,BA0AA
  1507.     MOV    BL,BA0PI
  1508.     MOV    BH,0
  1509.     MOV    BA0RI[BX],AL
  1510.     INC    BA0PI
  1511.     JMP    TW0211
  1512. BW0211:
  1513.     RET
  1514. SA0IN:
  1515.     MOV    BA0KB,0
  1516.     MOV    BA0KC,0
  1517.     MOV    BA0ZX,0
  1518.     MOV    BA0YP,0
  1519.     MOV    BA0ZP,0
  1520.     MOV    BA0C0,0
  1521.     MOV    BA0FL,0
  1522.     MOV    BA0PI,0
  1523.     MOV    BA0PB,0
  1524.     MOV    BA0PO,0
  1525.     MOV    BA0PN,0
  1526.     MOV    WA0ZC,0
  1527.     MOV    WA0ZT,0
  1528.     MOV    WA000,0
  1529.     MOV    WA0PC,0
  1530.     MOV    WA0PT,0
  1531.     MOV    WA0LB,0
  1532.     MOV    WA0UU,0
  1533.     MOV    WA0SM,0
  1534.     MOV    WA0NL,0
  1535.     MOV    BA0C1,1
  1536.     MOV    BA0C2,2
  1537.     MOV    BA0MK,2
  1538.     MOV    WA001,1
  1539.     MOV    WA0LN,1
  1540.     MOV    BA0C3,3
  1541.     MOV    WA003,3
  1542.     MOV    BA0C9,9
  1543.     MOV    BA0CV,25
  1544.     MOV    BA0EL,KA0EL
  1545.     MOV    BA0NL,KA0NL
  1546.     MOV    BA0EF,KA0EF
  1547.     MOV    WA010,10
  1548.     MOV    WA016,16
  1549.     MOV    BA0SD,80
  1550.     MOV    BA0MN,79
  1551.     MOV    BA0XA,'A'
  1552.     MOV    BA0XB,'B'
  1553.     MOV    BA0XC,'C'
  1554.     MOV    BA0XD,'D'
  1555.     MOV    BA0XE,'E'
  1556.     MOV    BA0XF,'F'
  1557.     MOV    BA0XG,'G'
  1558.     MOV    BA0XH,'H'
  1559.     MOV    BA0XI,'I'
  1560.     MOV    BA0XJ,'J'
  1561.     MOV    BA0XK,'K'
  1562.     MOV    BA0XL,'L'
  1563.     MOV    BA0XM,'M'
  1564.     MOV    BA0XN,'N'
  1565.     MOV    BA0XO,'O'
  1566.     MOV    BA0XP,'P'
  1567.     MOV    BA0XQ,'Q'
  1568.     MOV    BA0XR,'R'
  1569.     MOV    BA0XS,'S'
  1570.     MOV    BA0XT,'T'
  1571.     MOV    BA0XU,'U'
  1572.     MOV    BA0XV,'V'
  1573.     MOV    BA0XW,'W'
  1574.     MOV    BA0XX,'X'
  1575.     MOV    BA0XY,'Y'
  1576.     MOV    BA0XZ,'Z'
  1577.     MOV    BA0X0,'0'
  1578.     MOV    BA0X1,'1'
  1579.     MOV    BA0X2,'2'
  1580.     MOV    BA0X3,'3'
  1581.     MOV    BA0X9,'9'
  1582.     MOV    BA0CB,' '
  1583.     MOV    BA0CX,'!'
  1584.     MOV    BA0CS,'*'
  1585.     MOV    BA0CM,'-'
  1586.     MOV    BA0CP,'+'
  1587.     MOV    BA0CG,'>'
  1588.     MOV    BA0CU,'='
  1589.     MOV    BA0CL,'<'
  1590.     MOV    BA0CT,KA0HT
  1591.     MOV    BA0CE,'/'
  1592.     MOV    BA0CD,'.'
  1593.     MOV    BA0CQ,KA0QM
  1594.     MOV    WA0BK,3
  1595.     MOV    AL,3
  1596.     MOV    BX, OFFSET WA0BK
  1597.     CALL    ATTACH
  1598.     MOV    DX,OFFSET BA0F2
  1599.     MOV    BX,OFFSET BA0XW
  1600.     MOV    SI,OFFSET WA0BK
  1601.     CALL    OPENIO
  1602.     CALL    SA0MI
  1603.     RET
  1604. SA0LA:
  1605.     MOV    AL,BA0PL
  1606.     CMP    AL,BA0MN
  1607.     MOV    AL,1
  1608.     JZ    $+4
  1609.     MOV    AL,0
  1610.     MOV    BA0AA,AL
  1611.     MOV    AL,BA0AA
  1612.     TEST    AL,AL
  1613.     JNZ    $+5
  1614.     JMP    IF0212
  1615.     MOV    BA0PL,0
  1616.     JMP    IF0213
  1617. IF0212:
  1618.     INC    BA0PL
  1619. IF0213:
  1620.     RET
  1621. SA0LB:
  1622. TW0214:
  1623.     MOV    AL,BA0PM
  1624.     CMP    AL,BA0PL
  1625.     MOV    AL,1
  1626.     JNZ    $+4
  1627.     MOV    AL,0
  1628.     MOV    BA0AA,AL
  1629.     MOV    AL,BA0AA
  1630.     TEST    AL,AL
  1631.     JNZ    $+5
  1632.     JMP    BW0214
  1633.     CALL    SA0KG
  1634.     MOV    AL,BA0C0
  1635.     CMP    AL,BA0ER
  1636.     MOV    AL,1
  1637.     JNZ    $+4
  1638.     MOV    AL,0
  1639.     MOV    BA0AA,AL
  1640.     MOV    AL,BA0AA
  1641.     TEST    AL,AL
  1642.     JNZ    $+5
  1643.     JMP    IF0215
  1644.     MOV    BA0CC,0
  1645. IF0215:
  1646.     MOV    AL,BA0CC
  1647.     MOV    BL,BA0PM
  1648.     MOV    BH,0
  1649.     MOV    BA0NS[BX],AL
  1650.     MOV    AL,BA0PM
  1651.     CMP    AL,BA0MN
  1652.     MOV    AL,1
  1653.     JZ    $+4
  1654.     MOV    AL,0
  1655.     MOV    BA0AA,AL
  1656.     MOV    AL,BA0AA
  1657.     TEST    AL,AL
  1658.     JNZ    $+5
  1659.     JMP    IF0216
  1660.     MOV    BA0PM,0
  1661.     JMP    IF0217
  1662. IF0216:
  1663.     INC    BA0PM
  1664. IF0217:
  1665.     JMP    TW0214
  1666. BW0214:
  1667.     RET
  1668. SA0LI:
  1669.     MOV    BA0PM,0
  1670.     MOV    BA0PL,0
  1671.     MOV    BA0BB,0
  1672. TW0218:
  1673.     MOV    AL,BA0BB
  1674.     CMP    AL,BA0MN
  1675.     MOV    AL,0
  1676.     JNBE    $+4
  1677.     MOV    AL,1
  1678.     MOV    BA0AA,AL
  1679.     MOV    AL,BA0ER
  1680.     CMP    AL,BA0C0
  1681.     MOV    AL,1
  1682.     JZ    $+4
  1683.     MOV    AL,0
  1684.     MOV    BA0CC,AL
  1685.     MOV    AL,BA0AA
  1686.     AND    AL,BA0CC
  1687.     MOV    BA0AA,AL
  1688.     MOV    AL,BA0AA
  1689.     TEST    AL,AL
  1690.     JNZ    $+5
  1691.     JMP    BW0218
  1692.     CALL    SA0KG
  1693.     MOV    AL,BA0CC
  1694.     MOV    BL,BA0BB
  1695.     MOV    BH,0
  1696.     MOV    BA0NS[BX],AL
  1697.     INC    BA0BB
  1698.     JMP    TW0218
  1699. BW0218:
  1700.     RET
  1701. SA0LW:
  1702.     MOV    BL,BA0PL
  1703.     MOV    BH,0
  1704.     MOV    AL,BA0NS[BX]
  1705.     MOV    BA0CC,AL
  1706. TW0219:
  1707.     MOV    AL,BA0CC
  1708.     CMP    AL,BA0NL
  1709.     MOV    AL,1
  1710.     JZ    $+4
  1711.     MOV    AL,0
  1712.     MOV    BA0AA,AL
  1713.     MOV    AL,BA0AA
  1714.     TEST    AL,AL
  1715.     JNZ    $+5
  1716.     JMP    IF0220
  1717.     INC    WA0LN
  1718.     MOV    WA0SM,0
  1719. IF0220:
  1720.     MOV    AL,BA0CC
  1721.     CMP    AL,BA0CB
  1722.     MOV    AL,1
  1723.     JZ    $+4
  1724.     MOV    AL,0
  1725.     MOV    BA0BB,AL
  1726.     MOV    AL,BA0AA
  1727.     OR    AL,BA0BB
  1728.     MOV    BA0AA,AL
  1729.     MOV    AL,BA0CC
  1730.     CMP    AL,BA0CT
  1731.     MOV    AL,1
  1732.     JZ    $+4
  1733.     MOV    AL,0
  1734.     MOV    BA0BB,AL
  1735.     MOV    AL,BA0AA
  1736.     OR    AL,BA0BB
  1737.     MOV    BA0AA,AL
  1738.     MOV    AL,BA0CC
  1739.     CMP    AL,BA0EL
  1740.     MOV    AL,1
  1741.     JZ    $+4
  1742.     MOV    AL,0
  1743.     MOV    BA0BB,AL
  1744.     MOV    AL,BA0BB
  1745.     OR    AL,BA0AA
  1746.     MOV    BA0AA,AL
  1747.     MOV    AL,BA0AA
  1748.     TEST    AL,AL
  1749.     JNZ    $+5
  1750.     JMP    BW0219
  1751.     CALL    SA0LA
  1752.     MOV    BL,BA0PL
  1753.     MOV    BH,0
  1754.     MOV    AL,BA0NS[BX]
  1755.     MOV    BA0CC,AL
  1756.     JMP    TW0219
  1757. BW0219:
  1758.     CALL    SA0LB
  1759.     RET
  1760. SA0MC:
  1761.     MOV    BH,0
  1762.     MOV    BL,BA0MK
  1763.     MOV    WA0AA,BX
  1764.     MOV    AX,WA0MT
  1765.     SUB    AX,WA0AA
  1766.     MOV    WA0MT,AX
  1767.     CALL    SA0MO
  1768.     MOV    BX,WA0MT
  1769.     MOV    WA0AA,BX
  1770.     CALL    SA0MZ
  1771.     RET
  1772. SA0MD:
  1773.     MOV    BH,0
  1774.     MOV    BL,BA0MK
  1775.     MOV    WA0AA,BX
  1776.     MOV    AX,WA0MT
  1777.     ADD    AX,WA0AA
  1778.     MOV    WA0MT,AX
  1779.     MOV    AX,WA0MD
  1780.     CMP    AX,WA0MT
  1781.     LAHF
  1782.     ROL    AH,1
  1783.     AND    AH,1
  1784.     MOV    BA0AA,AH
  1785.     MOV    AL,BA0AA
  1786.     TEST    AL,AL
  1787.     JNZ    $+5
  1788.     JMP    IF0221
  1789.     CALL    MSG
  1790.     DB    'DESTROY C'
  1791.     CALL    MSG
  1792.     DB    'ELL ERROR'
  1793.     CALL    SA0CR
  1794. IF0221:
  1795.     MOV    BX,WA0MT
  1796.     MOV    WA0AA,BX
  1797.     RET
  1798. SA0ME:
  1799.     CALL    SA0ML
  1800.     MOV    AX,WA000
  1801.     CMP    AX,WA0AA
  1802.     MOV    AL,0
  1803.     JZ    $+4
  1804.     MOV    AL,1
  1805.     MOV    BA0EE,AL
  1806.     MOV    AL,BA0EE
  1807.     TEST    AL,AL
  1808.     JNZ    $+5
  1809.     JMP    IF0222
  1810.     RET
  1811. IF0222:
  1812.     MOV    AX,WA0MF
  1813.     MOV    BX,WA0BB
  1814.     SHL    BX,1
  1815.     MOV    WA0MI[BX],AX
  1816. TW0223:
  1817.     MOV    AL,BA0CC
  1818.     MOV    BX,WA0MF
  1819.     MOV    BA0MC[BX],AL
  1820.     MOV    AX,WA0MX
  1821.     MOV    BX,WA0MF
  1822.     SHL    BX,1
  1823.     MOV    WA0MI[BX],AX
  1824.     INC    WA0MF
  1825.     CALL    SA0MO
  1826.     MOV    AL,BA0C0
  1827.     CMP    AL,BA0CC
  1828.     MOV    AL,1
  1829.     JNZ    $+4
  1830.     MOV    AL,0
  1831.     MOV    BA0AA,AL
  1832.     MOV    AL,BA0AA
  1833.     TEST    AL,AL
  1834.     JNZ    $+5
  1835.     JMP    BW0223
  1836.     INC    BA0BB
  1837.     MOV    BL,BA0BB
  1838.     MOV    BH,0
  1839.     MOV    AL,BA0OS[BX]
  1840.     MOV    BA0CC,AL
  1841.     JMP    TW0223
  1842. BW0223:
  1843.     MOV    BX,WA0MF
  1844.     MOV    WA0AA,BX
  1845.     MOV    BH,0
  1846.     MOV    BL,BA0MK
  1847.     MOV    WA0DD,BX
  1848.     MOV    AX,WA0DD
  1849.     ADD    AX,WA0MF
  1850.     MOV    WA0MF,AX
  1851.     CALL    SA0MO
  1852.     CALL    SA0MZ
  1853.     RET
  1854. SA0MH:
  1855.     MOV    AX,WA0MB
  1856.     MOV    BX,WA0MF
  1857.     SHL    BX,1
  1858.     MOV    WA0MI[BX],AX
  1859.     MOV    BX,WA0MF
  1860.     MOV    WA0MB,BX
  1861.     MOV    AX,WA0MF
  1862.     ADD    AX,WA0ML
  1863.     MOV    WA0MF,AX
  1864.     MOV    AL,BA0C0
  1865.     MOV    BX,WA0MF
  1866.     MOV    BA0MC[BX],AL
  1867.     MOV    AX,WA000
  1868.     MOV    BX,WA0MF
  1869.     SHL    BX,1
  1870.     MOV    WA0MI[BX],AX
  1871.     RET
  1872. SA0MI:
  1873.     MOV    WA0MB,0
  1874.     MOV    WA0MM,0
  1875.     MOV    WA0MD,3000
  1876.     MOV    BX,WA0MD
  1877.     MOV    WA0MT,BX
  1878.     MOV    WA0ML,1
  1879.     MOV    AX,WA0MB
  1880.     ADD    AX,WA0ML
  1881.     MOV    WA0MF,AX
  1882.     MOV    WA0MX,0
  1883.     MOV    AX,WA000
  1884.     MOV    BX,WA0MB
  1885.     SHL    BX,1
  1886.     MOV    WA0MI[BX],AX
  1887.     MOV    AL,BA0C0
  1888.     MOV    BX,WA0MF
  1889.     MOV    BA0MC[BX],AL
  1890.     MOV    AX,WA000
  1891.     MOV    BX,WA0MF
  1892.     SHL    BX,1
  1893.     MOV    WA0MI[BX],AX
  1894.     RET
  1895. SA0ML:
  1896.     MOV    AX,WA0MB
  1897.     ADD    AX,WA0ML
  1898.     MOV    WA0BB,AX
  1899.     MOV    BA0BB,0
  1900. TW0224:
  1901.     MOV    BL,BA0BB
  1902.     MOV    BH,0
  1903.     MOV    AL,BA0OS[BX]
  1904.     MOV    BA0CC,AL
  1905.     MOV    BX,WA0BB
  1906.     MOV    AL,BA0MC[BX]
  1907.     MOV    BA0DD,AL
  1908.     MOV    AL,BA0CC
  1909.     CMP    AL,BA0DD
  1910.     MOV    AL,1
  1911.     JZ    $+4
  1912.     MOV    AL,0
  1913.     MOV    BA0EE,AL
  1914.     MOV    AL,BA0EE
  1915.     TEST    AL,AL
  1916.     JNZ    $+5
  1917.     JMP    IF0225
  1918.     MOV    AL,BA0CC
  1919.     CMP    AL,BA0C0
  1920.     MOV    AL,1
  1921.     JZ    $+4
  1922.     MOV    AL,0
  1923.     MOV    BA0EE,AL
  1924.     MOV    AL,BA0EE
  1925.     TEST    AL,AL
  1926.     JNZ    $+5
  1927.     JMP    IF0226
  1928.     MOV    AX,WA0BB
  1929.     ADD    AX,WA001
  1930.     MOV    WA0AA,AX
  1931.     JMP    LOC77
  1932. IF0226:
  1933.     INC    WA0BB
  1934.     INC    BA0BB
  1935.     JMP    IF0227
  1936. IF0225:
  1937.     MOV    BX,WA0BB
  1938.     SHL    BX,1
  1939.     MOV    AX,WA0MI[BX]
  1940.     MOV    WA0AA,AX
  1941.     MOV    AX,WA0MX
  1942.     CMP    AX,WA0AA
  1943.     MOV    AL,1
  1944.     JZ    $+4
  1945.     MOV    AL,0
  1946.     MOV    BA0EE,AL
  1947.     MOV    AL,BA0EE
  1948.     TEST    AL,AL
  1949.     JNZ    $+5
  1950.     JMP    IF0228
  1951.     MOV    WA0AA,0
  1952.     JMP    LOC77
  1953. IF0228:
  1954.     MOV    BX,WA0AA
  1955.     MOV    WA0BB,BX
  1956. IF0227:
  1957.     MOV    AX,WA0BB
  1958.     CMP    AX,WA0MF
  1959.     LAHF
  1960.     ROL    AH,1
  1961.     AND    AH,1
  1962.     MOV    BA0EE,AH
  1963.     MOV    AL,BA0EE
  1964.     TEST    AL,AL
  1965.     JNZ    $+5
  1966.     JMP    BW0224
  1967.     JMP    TW0224
  1968. BW0224:
  1969.     MOV    WA0AA,0
  1970. LOC77:
  1971.     RET
  1972. SA0MO:
  1973.     MOV    AX,WA0MT
  1974.     CMP    AX,WA0MF
  1975.     LAHF
  1976.     ROL    AH,1
  1977.     AND    AH,1
  1978.     MOV    BA0AA,AH
  1979.     MOV    AL,BA0AA
  1980.     TEST    AL,AL
  1981.     JNZ    $+5
  1982.     JMP    IF0229
  1983.     CALL    MSG
  1984.     DB    'OUT OF ME'
  1985.     CALL    MSG
  1986.     DB    'MORY ERR.'
  1987.     MOV    AL,3
  1988.     CALL    STOP
  1989. IF0229:
  1990.     MOV    AX,WA0MM
  1991.     CMP    AX,WA0MF
  1992.     LAHF
  1993.     ROL    AH,1
  1994.     AND    AH,1
  1995.     MOV    BA0AA,AH
  1996.     MOV    AL,BA0AA
  1997.     TEST    AL,AL
  1998.     JNZ    $+5
  1999.     JMP    IF0230
  2000.     MOV    BX,WA0MF
  2001.     MOV    WA0MM,BX
  2002. IF0230:
  2003.     RET
  2004. SA0MP:
  2005.     MOV    AX,WA000
  2006.     CMP    AX,WA0MB
  2007.     MOV    AL,0
  2008.     JZ    $+4
  2009.     MOV    AL,1
  2010.     MOV    BA0AA,AL
  2011.     MOV    AL,BA0AA
  2012.     TEST    AL,AL
  2013.     JNZ    $+5
  2014.     JMP    IF0231
  2015.     MOV    BX,WA0MB
  2016.     MOV    WA0MF,BX
  2017.     MOV    BX,WA0MB
  2018.     SHL    BX,1
  2019.     MOV    AX,WA0MI[BX]
  2020.     MOV    WA0MB,AX
  2021.     JMP    IF0232
  2022. IF0231:
  2023.     MOV    BX,WA0ML
  2024.     MOV    WA0MF,BX
  2025.     MOV    AL,BA0C0
  2026.     MOV    BX,WA0MF
  2027.     MOV    BA0MC[BX],AL
  2028.     MOV    AX,WA000
  2029.     MOV    BX,WA0MF
  2030.     SHL    BX,1
  2031.     MOV    WA0MI[BX],AX
  2032. IF0232:
  2033.     RET
  2034. SA0MS:
  2035.     MOV    AL,BA0C0
  2036.     MOV    BL,BA0PO
  2037.     MOV    BH,0
  2038.     MOV    BA0OS[BX],AL
  2039.     MOV    BX,WA0MB
  2040.     MOV    WA0MZ,BX
  2041. TW0233:
  2042.     CALL    SA0ML
  2043.     MOV    AX,WA000
  2044.     CMP    AX,WA0AA
  2045.     MOV    AL,1
  2046.     JZ    $+4
  2047.     MOV    AL,0
  2048.     MOV    BA0EE,AL
  2049.     MOV    BX,WA0MB
  2050.     SHL    BX,1
  2051.     MOV    AX,WA0MI[BX]
  2052.     MOV    WA0MB,AX
  2053.     MOV    AX,WA000
  2054.     CMP    AX,WA0MB
  2055.     MOV    AL,0
  2056.     JZ    $+4
  2057.     MOV    AL,1
  2058.     MOV    BA0DD,AL
  2059.     MOV    AL,BA0EE
  2060.     AND    AL,BA0DD
  2061.     MOV    BA0CC,AL
  2062.     MOV    AL,BA0CC
  2063.     TEST    AL,AL
  2064.     JNZ    $+5
  2065.     JMP    BW0233
  2066.     JMP    TW0233
  2067. BW0233:
  2068.     MOV    BX,WA0MZ
  2069.     MOV    WA0MB,BX
  2070.     RET
  2071. SA0MZ:
  2072.     MOV    BA0BB,0
  2073.     MOV    BX,WA0AA
  2074.     MOV    WA0DD,BX
  2075. TW0234:
  2076.     MOV    AL,BA0BB
  2077.     CMP    AL,BA0MK
  2078.     LAHF
  2079.     AND    AH,1
  2080.     MOV    BA0AA,AH
  2081.     INC    BA0BB
  2082.     MOV    AL,BA0AA
  2083.     TEST    AL,AL
  2084.     JNZ    $+5
  2085.     JMP    BW0234
  2086.     MOV    AL,BA0C0
  2087.     MOV    BX,WA0DD
  2088.     MOV    BA0MC[BX],AL
  2089.     MOV    AX,WA000
  2090.     MOV    BX,WA0DD
  2091.     SHL    BX,1
  2092.     MOV    WA0MI[BX],AX
  2093.     INC    WA0DD
  2094.     JMP    TW0234
  2095. BW0234:
  2096.     RET
  2097. SA0PN:
  2098.     CALL    SA0DS
  2099. TW0235:
  2100.     MOV    BH,0
  2101.     MOV    BL,BA0ND
  2102.     MOV    WA0BB,BX
  2103.     MOV    AX,WA000
  2104.     CMP    AX,WA0BB
  2105.     LAHF
  2106.     ROL    AH,1
  2107.     AND    AH,1
  2108.     MOV    BA0AA,AH
  2109.     MOV    AL,BA0AA
  2110.     TEST    AL,AL
  2111.     JNZ    $+5
  2112.     JMP    BW0235
  2113.     DEC    BA0ND
  2114.     MOV    BL,BA0ND
  2115.     MOV    BH,0
  2116.     MOV    AL,BA0DS[BX]
  2117.     MOV    BA0AA,AL
  2118.     MOV    AL,BA0AA
  2119.     CALL    WNX
  2120.     JMP    TW0235
  2121. BW0235:
  2122.     MOV    AL,BA0CB
  2123.     CALL    WNX
  2124.     RET
  2125. SA0PY:
  2126.     MOV    AL,BA0YP
  2127.     CMP    AL,BA0C0
  2128.     MOV    AL,1
  2129.     JZ    $+4
  2130.     MOV    AL,0
  2131.     MOV    BA0AA,AL
  2132.     MOV    AL,BA0AA
  2133.     TEST    AL,AL
  2134.     JNZ    $+5
  2135.     JMP    IF0236
  2136.     CALL    MSG
  2137.     DB    'Y STACKER'
  2138.     CALL    SA0CR
  2139.     MOV    AL,BA0C1
  2140.     MOV    BA0YP,AL
  2141.     MOV    BA0FL,0
  2142. IF0236:
  2143.     DEC    BA0YP
  2144.     RET
  2145. SA0RA:
  2146.     MOV    AL,BA0CC
  2147.     MOV    BL,BA0C0
  2148.     MOV    BH,0
  2149.     MOV    BA0OS[BX],AL
  2150.     MOV    BA0PO,1
  2151. TW0237:
  2152.     CALL    SA0KG
  2153.     CALL    SA0ZA
  2154.     MOV    AL,BA0AA
  2155.     MOV    BA0DD,AL
  2156.     CALL    SA0ZN
  2157.     MOV    AL,BA0AA
  2158.     OR    AL,BA0DD
  2159.     MOV    BA0AA,AL
  2160.     MOV    AL,BA0AA
  2161.     TEST    AL,AL
  2162.     JNZ    $+5
  2163.     JMP    BW0237
  2164.     MOV    AL,BA0CC
  2165.     MOV    BL,BA0PO
  2166.     MOV    BH,0
  2167.     MOV    BA0OS[BX],AL
  2168.     INC    BA0PO
  2169.     JMP    TW0237
  2170. BW0237:
  2171.     MOV    AL,BA0CC
  2172.     CMP    AL,BA0NL
  2173.     MOV    AL,1
  2174.     JZ    $+4
  2175.     MOV    AL,0
  2176.     MOV    BA0AA,AL
  2177.     MOV    AL,BA0AA
  2178.     TEST    AL,AL
  2179.     JNZ    $+5
  2180.     JMP    IF0238
  2181.     JMP    IF0239
  2182. IF0238:
  2183. TW0240:
  2184.     CALL    SA0KG
  2185.     MOV    AL,BA0NL
  2186.     CMP    AL,BA0CC
  2187.     MOV    AL,1
  2188.     JNZ    $+4
  2189.     MOV    AL,0
  2190.     MOV    BA0AA,AL
  2191.     MOV    AL,BA0AA
  2192.     TEST    AL,AL
  2193.     JNZ    $+5
  2194.     JMP    BW0240
  2195.     JMP    TW0240
  2196. BW0240:
  2197. IF0239:
  2198.     RET
  2199. SA0RC:
  2200.     MOV    DX, OFFSET BA0F1
  2201.     CALL    CLOSEIO
  2202.     MOV    WA0BK,1
  2203.     MOV    AL,1
  2204.     MOV    BX, OFFSET WA0BK
  2205.     CALL    ATTACH
  2206.     MOV    DX,OFFSET BA0F1
  2207.     MOV    BX,OFFSET BA0XR
  2208.     MOV    SI,OFFSET WA0BK
  2209.     CALL    OPENIO
  2210.     CALL    SA0CK
  2211.     MOV    WA0PC,1
  2212.     MOV    BA0LL,0
  2213.     MOV    WA0PL,0
  2214. TW0241:
  2215.     MOV    AL,BA0AA
  2216.     MOV    BA0AA,AL
  2217. LOC67:
  2218.     MOV    BX, OFFSET BA0RC
  2219.     MOV    DX, OFFSET BA0F1
  2220.     CALL    BREAD
  2221.     MOV    AL,BA0RC
  2222.     CMP    AL,BA0EL
  2223.     MOV    AL,1
  2224.     JZ    $+4
  2225.     MOV    AL,0
  2226.     MOV    BA0AA,AL
  2227.     MOV    AL,BA0AA
  2228.     TEST    AL,AL
  2229.     JNZ    $+5
  2230.     JMP    IF0242
  2231.     JMP    LOC67
  2232. IF0242:
  2233. LOC33:
  2234.     MOV    AL,BA0ER
  2235.     CMP    AL,BA0C0
  2236.     MOV    AL,1
  2237.     JZ    $+4
  2238.     MOV    AL,0
  2239.     MOV    BA0AA,AL
  2240.     MOV    AL,BA0AA
  2241.     TEST    AL,AL
  2242.     JNZ    $+5
  2243.     JMP    BW0241
  2244.     MOV    AL,BA0RC
  2245.     JMP    XA0244
  2246.     RB    0-3
  2247. A0U243:    CMP    AL,BA0CE
  2248.     JZ    $+5
  2249.     JMP    A0U245
  2250.     CALL    SA0KG
  2251.     MOV    AL,BA0CC
  2252.     CMP    AL,BA0CM
  2253.     MOV    AL,1
  2254.     JZ    $+4
  2255.     MOV    AL,0
  2256.     MOV    BA0AA,AL
  2257.     MOV    AL,BA0AA
  2258.     TEST    AL,AL
  2259.     JNZ    $+5
  2260.     JMP    IF0246
  2261.     CALL    SA0KG
  2262.     CALL    SA0RN
  2263.     MOV    AX,WA0RN
  2264.     NEG    AX
  2265.     MOV    WA0RN,AX
  2266.     JMP    LOC37
  2267. IF0246:
  2268.     CALL    SA0ZN
  2269.     MOV    AL,BA0AA
  2270.     TEST    AL,AL
  2271.     JNZ    $+5
  2272.     JMP    IF0247
  2273.     CALL    SA0RN
  2274. LOC37:
  2275.     MOV    AX,WA0RN
  2276.     MOV    BA0AA,AH
  2277.     MOV    BA0BB,AL
  2278.     MOV    AL,BA0AA
  2279.     MOV    BX,WA0PC
  2280.     MOV    BA0KS[BX],AL
  2281.     INC    WA0PC
  2282.     INC    BA0LL
  2283.     MOV    AL,BA0BB
  2284.     MOV    BX,WA0PC
  2285.     MOV    BA0KS[BX],AL
  2286.     INC    WA0PC
  2287.     INC    BA0LL
  2288.     MOV    AL,BA0CC
  2289.     MOV    BA0RC,AL
  2290.     MOV    AL,BA0RC
  2291.     CMP    AL,BA0CB
  2292.     MOV    AL,1
  2293.     JZ    $+4
  2294.     MOV    AL,0
  2295.     MOV    BA0AA,AL
  2296.     MOV    AL,BA0AA
  2297.     TEST    AL,AL
  2298.     JNZ    $+5
  2299.     JMP    IF0248
  2300.     JMP    IF0249
  2301. IF0248:
  2302.     JMP    LOC33
  2303. IF0249:
  2304.     JMP    IF0250
  2305. IF0247:
  2306.     MOV    AL,BA0CE
  2307.     MOV    BX,WA0PC
  2308.     MOV    BA0KS[BX],AL
  2309.     INC    WA0PC
  2310.     INC    BA0LL
  2311.     MOV    AL,BA0CC
  2312.     MOV    BA0RC,AL
  2313.     JMP    LOC33
  2314. IF0250:
  2315.     JMP    XA0244
  2316.     RB    0-0
  2317. A0U245:    CMP    AL,BA0NL
  2318.     JZ    $+5
  2319.     JMP    A0U251
  2320.     MOV    AL,BA0LL
  2321.     MOV    BX,WA0PL
  2322.     MOV    BA0KS[BX],AL
  2323.     MOV    BX,WA0PC
  2324.     MOV    WA0PL,BX
  2325.     INC    WA0PC
  2326.     MOV    BA0LL,0
  2327.     JMP    XA0244
  2328.     RB    0-0
  2329. A0U251:    CMP    AL,BA0CD
  2330.     JZ    $+5
  2331.     JMP    A0U252
  2332.     MOV    AL,BA0LL
  2333.     CMP    AL,BA0C0
  2334.     MOV    AL,1
  2335.     JZ    $+4
  2336.     MOV    AL,0
  2337.     MOV    BA0AA,AL
  2338.     MOV    AL,BA0AA
  2339.     TEST    AL,AL
  2340.     JNZ    $+5
  2341.     JMP    IF0253
  2342.     CALL    SA0RL
  2343.     MOV    AL,BA0NL
  2344.     MOV    BA0RC,AL
  2345.     DEC    WA0PC
  2346.     JMP    LOC33
  2347.     JMP    IF0254
  2348. IF0253:
  2349.     JMP    LOC35
  2350. IF0254:
  2351.     JMP    XA0244
  2352.     RB    0-0
  2353. A0U252:    CMP    AL,BA0XG
  2354.     JZ    $+5
  2355.     JMP    A0U255
  2356.     MOV    AL,BA0LL
  2357.     CMP    AL,BA0C0
  2358.     MOV    AL,1
  2359.     JZ    $+4
  2360.     MOV    AL,0
  2361.     MOV    BA0AA,AL
  2362.     MOV    AL,BA0AA
  2363.     TEST    AL,AL
  2364.     JNZ    $+5
  2365.     JMP    IF0256
  2366.     CALL    SA0KG
  2367.     CALL    SA0RA
  2368.     MOV    AL,BA0C0
  2369.     MOV    BL,BA0PO
  2370.     MOV    BH,0
  2371.     MOV    BA0OS[BX],AL
  2372.     CALL    SA0ME
  2373.     MOV    BX,WA0AA
  2374.     SHL    BX,1
  2375.     MOV    AX,WA0MI[BX]
  2376.     MOV    WA0RN,AX
  2377.     MOV    AX,WA000
  2378.     CMP    AX,WA0RN
  2379.     MOV    AL,1
  2380.     JZ    $+4
  2381.     MOV    AL,0
  2382.     MOV    BA0AA,AL
  2383.     MOV    AL,BA0AA
  2384.     TEST    AL,AL
  2385.     JNZ    $+5
  2386.     JMP    IF0257
  2387.     MOV    BX,WA0AA
  2388.     MOV    WA0RN,BX
  2389.     MOV    AL,BA0NL
  2390.     MOV    BX,WA0PC
  2391.     MOV    BA0KS[BX],AL
  2392.     JMP    IF0258
  2393. IF0257:
  2394.     MOV    AL,BA0RC
  2395.     MOV    BX,WA0PC
  2396.     MOV    BA0KS[BX],AL
  2397. IF0258:
  2398.     INC    WA0PC
  2399.     MOV    AX,WA0RN
  2400.     MOV    BA0AA,AH
  2401.     MOV    BA0BB,AL
  2402.     MOV    AL,BA0AA
  2403.     MOV    BX,WA0PC
  2404.     MOV    BA0KS[BX],AL
  2405.     INC    WA0PC
  2406.     MOV    AL,BA0BB
  2407.     MOV    BX,WA0PC
  2408.     MOV    BA0KS[BX],AL
  2409.     INC    WA0PC
  2410.     MOV    AL,BA0C3
  2411.     MOV    BA0LL,AL
  2412.     MOV    AL,BA0NL
  2413.     MOV    BA0RC,AL
  2414.     JMP    LOC33
  2415.     JMP    IF0259
  2416. IF0256:
  2417.     JMP    LOC35
  2418. IF0259:
  2419.     JMP    XA0244
  2420.     RB    0-0
  2421. A0U255:    CMP    AL,BA0EL
  2422.     JZ    $+5
  2423.     JMP    A0U260
  2424.     JMP    XA0244
  2425.     RB    0-0
  2426. A0U260:
  2427. LOC35:
  2428.     MOV    AL,BA0RC
  2429.     MOV    BX,WA0PC
  2430.     MOV    BA0KS[BX],AL
  2431.     INC    WA0PC
  2432.     INC    BA0LL
  2433. XA0244:
  2434.     JMP    TW0241
  2435. BW0241:
  2436.     DEC    WA0PC
  2437.     MOV    AL,BA0C1
  2438.     CMP    AL,BA0ER
  2439.     MOV    AL,1
  2440.     JNZ    $+4
  2441.     MOV    AL,0
  2442.     MOV    BA0AA,AL
  2443.     MOV    AL,BA0AA
  2444.     TEST    AL,AL
  2445.     JNZ    $+5
  2446.     JMP    IF0261
  2447.     CALL    MSG
  2448.     DB    'CANT READ'
  2449.     CALL    MSG
  2450.     DB    ' COMMANDS'
  2451.     CALL    SA0CR
  2452.     MOV    AL,1
  2453.     CALL    STOP
  2454. IF0261:
  2455.     MOV    DX, OFFSET BA0F1
  2456.     CALL    CLOSEIO
  2457.     MOV    WA0BK,2
  2458.     MOV    AL,2
  2459.     MOV    BX, OFFSET WA0BK
  2460.     CALL    ATTACH
  2461.     MOV    DX,OFFSET BA0F1
  2462.     MOV    BX,OFFSET BA0XR
  2463.     MOV    SI,OFFSET WA0BK
  2464.     CALL    OPENIO
  2465.     CALL    SA0CK
  2466.     MOV    WA0AA,0
  2467. TW0262:
  2468.     MOV    AX,WA0AA
  2469.     CMP    AX,WA0PC
  2470.     LAHF
  2471.     ROL    AH,1
  2472.     AND    AH,1
  2473.     MOV    BA0AA,AH
  2474.     MOV    AL,BA0AA
  2475.     TEST    AL,AL
  2476.     JNZ    $+5
  2477.     JMP    BW0262
  2478.     MOV    BX,WA0AA
  2479.     MOV    AL,BA0KS[BX]
  2480.     MOV    BA0LL,AL
  2481.     MOV    AX,WA0AA
  2482.     ADD    AX,WA001
  2483.     MOV    WA0BB,AX
  2484.     MOV    BX,WA0BB
  2485.     MOV    AL,BA0KS[BX]
  2486.     MOV    BA0AA,AL
  2487.     MOV    AL,BA0AA
  2488.     CMP    AL,BA0NL
  2489.     MOV    AL,1
  2490.     JZ    $+4
  2491.     MOV    AL,0
  2492.     MOV    BA0AA,AL
  2493.     MOV    AL,BA0AA
  2494.     TEST    AL,AL
  2495.     JNZ    $+5
  2496.     JMP    IF0263
  2497.     MOV    AL,BA0XG
  2498.     MOV    BX,WA0BB
  2499.     MOV    BA0KS[BX],AL
  2500.     INC    WA0BB
  2501.     MOV    BX,WA0BB
  2502.     MOV    AL,BA0KS[BX]
  2503.     MOV    BA0AA,AL
  2504.     INC    WA0BB
  2505.     MOV    BX,WA0BB
  2506.     MOV    AL,BA0KS[BX]
  2507.     MOV    BA0BB,AL
  2508.     MOV    AL,BA0BB
  2509.     MOV    AH,BA0AA
  2510.     MOV    WA0RN,AX
  2511.     MOV    BX,WA0RN
  2512.     MOV    AL,BA0MC[BX]
  2513.     MOV    BA0BB,AL
  2514.     MOV    AL,BA0C1
  2515.     CMP    AL,BA0BB
  2516.     MOV    AL,1
  2517.     JNZ    $+4
  2518.     MOV    AL,0
  2519.     MOV    BA0AA,AL
  2520.     MOV    AL,BA0AA
  2521.     TEST    AL,AL
  2522.     JNZ    $+5
  2523.     JMP    IF0264
  2524.     MOV    AX,WA0RN
  2525.     SUB    AX,WA010
  2526.     MOV    WA0CC,AX
  2527. TW0265:
  2528.     MOV    AX,WA0CC
  2529.     CMP    AX,WA0RN
  2530.     LAHF
  2531.     ROL    AH,1
  2532.     AND    AH,1
  2533.     MOV    BA0AA,AH
  2534.     MOV    AL,BA0AA
  2535.     TEST    AL,AL
  2536.     JNZ    $+5
  2537.     JMP    BW0265
  2538.     MOV    BX,WA0CC
  2539.     MOV    AL,BA0MC[BX]
  2540.     MOV    BA0BB,AL
  2541.     MOV    AL,BA0BB
  2542.     CALL    WNX
  2543.     INC    WA0CC
  2544.     JMP    TW0265
  2545. BW0265:
  2546.     MOV    AL,BA0CB
  2547.     CALL    WNX
  2548.     CALL    MSG
  2549.     DB    'SUB UNDEF'
  2550.     CALL    SA0CR
  2551. IF0264:
  2552.     MOV    BX,WA0RN
  2553.     SHL    BX,1
  2554.     MOV    AX,WA0MI[BX]
  2555.     MOV    WA0CC,AX
  2556.     MOV    AX,WA0CC
  2557.     MOV    BA0AA,AH
  2558.     MOV    BA0BB,AL
  2559.     MOV    AL,BA0BB
  2560.     MOV    BX,WA0BB
  2561.     MOV    BA0KS[BX],AL
  2562.     DEC    WA0BB
  2563.     MOV    AL,BA0AA
  2564.     MOV    BX,WA0BB
  2565.     MOV    BA0KS[BX],AL
  2566. IF0263:
  2567.     MOV    BH,0
  2568.     MOV    BL,BA0LL
  2569.     MOV    WA0BB,BX
  2570.     MOV    AX,WA0AA
  2571.     ADD    AX,WA0BB
  2572.     MOV    WA0AA,AX
  2573.     MOV    AX,WA0AA
  2574.     ADD    AX,WA001
  2575.     MOV    WA0AA,AX
  2576.     JMP    TW0262
  2577. BW0262:
  2578.     CALL    SA0MP
  2579.     MOV    BX,WA0PC
  2580.     MOV    WA0AA,BX
  2581.     CALL    SA0PN
  2582.     CALL    MSG
  2583.     DB    'CMD BYTS '
  2584.     MOV    BX,WA0NL
  2585.     MOV    WA0AA,BX
  2586.     CALL    SA0PN
  2587.     CALL    MSG
  2588.     DB    'NUM LABS '
  2589.     MOV    BH,0
  2590.     MOV    BL,BA0PN
  2591.     MOV    WA0AA,BX
  2592.     CALL    SA0PN
  2593.     CALL    MSG
  2594.     DB    'SUBROUTIN'
  2595.     CALL    SA0CR
  2596.     RET
  2597. SA0RL:
  2598. TW0266:
  2599.     CALL    SA0KG
  2600.     CALL    SA0ZA
  2601.     MOV    AL,BA0AA
  2602.     TEST    AL,AL
  2603.     JNZ    $+5
  2604.     JMP    IF0267
  2605.     JMP    LOC80
  2606. IF0267:
  2607.     CALL    SA0ZN
  2608.     MOV    AL,BA0AA
  2609.     TEST    AL,AL
  2610.     JNZ    $+5
  2611.     JMP    IF0268
  2612.     JMP    LOC85
  2613. IF0268:
  2614.     MOV    AL,BA0NL
  2615.     CMP    AL,BA0CC
  2616.     MOV    AL,1
  2617.     JNZ    $+4
  2618.     MOV    AL,0
  2619.     MOV    BA0AA,AL
  2620.     MOV    AL,BA0AA
  2621.     TEST    AL,AL
  2622.     JNZ    $+5
  2623.     JMP    BW0266
  2624.     JMP    TW0266
  2625. BW0266:
  2626.     RET
  2627. LOC80:
  2628.     CALL    SA0RA
  2629.     MOV    AL,BA0C0
  2630.     MOV    BL,BA0PO
  2631.     MOV    BH,0
  2632.     MOV    BA0OS[BX],AL
  2633.     CALL    SA0ME
  2634.     MOV    AX,WA0PL
  2635.     MOV    BX,WA0AA
  2636.     SHL    BX,1
  2637.     MOV    WA0MI[BX],AX
  2638.     MOV    AL,BA0C1
  2639.     MOV    BX,WA0AA
  2640.     MOV    BA0MC[BX],AL
  2641.     INC    BA0PN
  2642.     RET
  2643. LOC85:
  2644.     INC    WA0NL
  2645.     CALL    SA0RN
  2646.     MOV    AX,WA0PL
  2647.     MOV    BX,WA0RN
  2648.     SHL    BX,1
  2649.     MOV    WA0LT[BX],AX
  2650.     RET
  2651. SA0RN:
  2652.     MOV    WA0RN,0
  2653. TW0269:
  2654.     MOV    AL,BA0CC
  2655.     SUB    AL,BA0X0
  2656.     MOV    BA0CC,AL
  2657.     MOV    BH,0
  2658.     MOV    BL,BA0CC
  2659.     MOV    WA0AA,BX
  2660.     MOV    AX,WA0RN
  2661.     IMUL    WA010
  2662.     MOV    WA0RN,AX
  2663.     MOV    AX,WA0RN
  2664.     ADD    AX,WA0AA
  2665.     MOV    WA0RN,AX
  2666.     CALL    SA0KG
  2667.     CALL    SA0ZN
  2668.     MOV    AL,BA0AA
  2669.     TEST    AL,AL
  2670.     JNZ    $+5
  2671.     JMP    BW0269
  2672.     JMP    TW0269
  2673. BW0269:
  2674.     RET
  2675. SA0ST:
  2676.     INC    BA0QI
  2677.     MOV    BL,BA0QI
  2678.     MOV    BH,0
  2679.     MOV    AL,BA0RI[BX]
  2680.     MOV    BA0CC,AL
  2681.     MOV    AL,BA0CC
  2682.     JMP    XA0271
  2683.     RB    0-3
  2684. A0U270:    CMP    AL,BA0XY
  2685.     JZ    $+5
  2686.     JMP    A0U272
  2687.     INC    BA0YP
  2688.     MOV    AL,BA0SD
  2689.     CMP    AL,BA0YP
  2690.     MOV    AL,0
  2691.     JNBE    $+4
  2692.     MOV    AL,1
  2693.     MOV    BA0AA,AL
  2694.     MOV    AL,BA0AA
  2695.     TEST    AL,AL
  2696.     JNZ    $+5
  2697.     JMP    IF0273
  2698.     CALL    MSG
  2699.     DB    'Y OVERFLW'
  2700.     CALL    SA0CR
  2701.     MOV    AL,BA0SD
  2702.     MOV    BA0YP,AL
  2703.     MOV    BA0FL,0
  2704. IF0273:
  2705.     MOV    AX,WA0TU
  2706.     MOV    BL,BA0YP
  2707.     MOV    BH,0
  2708.     SHL    BX,1
  2709.     MOV    WA0YS[BX],AX
  2710.     JMP    XA0271
  2711.     RB    0-0
  2712. A0U272:    CMP    AL,BA0XZ
  2713.     JZ    $+5
  2714.     JMP    A0U274
  2715.     INC    BA0ZP
  2716.     MOV    AL,BA0SD
  2717.     CMP    AL,BA0ZP
  2718.     MOV    AL,0
  2719.     JNBE    $+4
  2720.     MOV    AL,1
  2721.     MOV    BA0AA,AL
  2722.     MOV    AL,BA0AA
  2723.     TEST    AL,AL
  2724.     JNZ    $+5
  2725.     JMP    IF0275
  2726.     CALL    MSG
  2727.     DB    'Z OVERFLW'
  2728.     CALL    SA0CR
  2729.     MOV    AL,BA0SD
  2730.     MOV    BA0ZP,AL
  2731.     MOV    BA0FL,0
  2732. IF0275:
  2733.     MOV    AX,WA0TU
  2734.     MOV    BL,BA0ZP
  2735.     MOV    BH,0
  2736.     SHL    BX,1
  2737.     MOV    WA0ZS[BX],AX
  2738.     JMP    XA0271
  2739.     RB    0-0
  2740. A0U274:    CMP    AL,BA0CP
  2741.     JZ    $+5
  2742.     JMP    A0U276
  2743.     MOV    BL,BA0YP
  2744.     MOV    BH,0
  2745.     SHL    BX,1
  2746.     MOV    AX,WA0YS[BX]
  2747.     MOV    WA0AA,AX
  2748.     MOV    AX,WA0AA
  2749.     ADD    AX,WA0TU
  2750.     MOV    WA0AA,AX
  2751.     MOV    AX,WA0AA
  2752.     MOV    BL,BA0YP
  2753.     MOV    BH,0
  2754.     SHL    BX,1
  2755.     MOV    WA0YS[BX],AX
  2756.     JMP    XA0271
  2757.     RB    0-0
  2758. A0U276:    CMP    AL,BA0CM
  2759.     JZ    $+5
  2760.     JMP    A0U277
  2761.     MOV    BL,BA0YP
  2762.     MOV    BH,0
  2763.     SHL    BX,1
  2764.     MOV    AX,WA0YS[BX]
  2765.     MOV    WA0AA,AX
  2766.     MOV    AX,WA0AA
  2767.     SUB    AX,WA0TU
  2768.     MOV    WA0AA,AX
  2769.     MOV    AX,WA0AA
  2770.     MOV    BL,BA0YP
  2771.     MOV    BH,0
  2772.     SHL    BX,1
  2773.     MOV    WA0YS[BX],AX
  2774.     JMP    XA0271
  2775.     RB    0-0
  2776. A0U277:    CMP    AL,BA0CS
  2777.     JZ    $+5
  2778.     JMP    A0U278
  2779.     MOV    BL,BA0YP
  2780.     MOV    BH,0
  2781.     SHL    BX,1
  2782.     MOV    AX,WA0YS[BX]
  2783.     MOV    WA0AA,AX
  2784.     MOV    AX,WA0AA
  2785.     IMUL    WA0TU
  2786.     MOV    WA0AA,AX
  2787.     MOV    AX,WA0AA
  2788.     MOV    BL,BA0YP
  2789.     MOV    BH,0
  2790.     SHL    BX,1
  2791.     MOV    WA0YS[BX],AX
  2792.     JMP    XA0271
  2793.     RB    0-0
  2794. A0U278:    CMP    AL,BA0CG
  2795.     JZ    $+5
  2796.     JMP    A0U279
  2797.     MOV    BL,BA0YP
  2798.     MOV    BH,0
  2799.     SHL    BX,1
  2800.     MOV    AX,WA0YS[BX]
  2801.     MOV    WA0AA,AX
  2802.     MOV    AX,WA0AA
  2803.     CMP    AX,WA0TU
  2804.     LAHF
  2805.     ROL    AH,1
  2806.     AND    AH,1
  2807.     MOV    BA0AA,AH
  2808. LOC12:
  2809.     MOV    AL,BA0AA
  2810.     TEST    AL,AL
  2811.     JNZ    $+5
  2812.     JMP    IF0280
  2813.     MOV    BA0FL,1
  2814.     JMP    IF0281
  2815. IF0280:
  2816.     MOV    BA0FL,0
  2817. IF0281:
  2818.     CALL    SA0PY
  2819.     JMP    XA0271
  2820.     RB    0-0
  2821. A0U279:    CMP    AL,BA0CL
  2822.     JZ    $+5
  2823.     JMP    A0U282
  2824.     MOV    BL,BA0YP
  2825.     MOV    BH,0
  2826.     SHL    BX,1
  2827.     MOV    AX,WA0YS[BX]
  2828.     MOV    WA0AA,AX
  2829.     MOV    AX,WA0TU
  2830.     CMP    AX,WA0AA
  2831.     LAHF
  2832.     ROL    AH,1
  2833.     AND    AH,1
  2834.     MOV    BA0AA,AH
  2835.     JMP    LOC12
  2836.     JMP    XA0271
  2837.     RB    0-0
  2838. A0U282:    CMP    AL,BA0CU
  2839.     JZ    $+5
  2840.     JMP    A0U283
  2841.     MOV    BL,BA0YP
  2842.     MOV    BH,0
  2843.     SHL    BX,1
  2844.     MOV    AX,WA0YS[BX]
  2845.     MOV    WA0AA,AX
  2846.     MOV    AX,WA0AA
  2847.     CMP    AX,WA0TU
  2848.     MOV    AL,1
  2849.     JZ    $+4
  2850.     MOV    AL,0
  2851.     MOV    BA0AA,AL
  2852.     JMP    LOC12
  2853.     JMP    XA0271
  2854.     RB    0-0
  2855. A0U283:    CMP    AL,BA0XI
  2856.     JZ    $+5
  2857.     JMP    A0U284
  2858.     INC    BA0QI
  2859.     MOV    BL,BA0QI
  2860.     MOV    BH,0
  2861.     MOV    AL,BA0RI[BX]
  2862.     MOV    BA0DD,AL
  2863.     MOV    BX,WA0TU
  2864.     MOV    WA0BB,BX
  2865.     INC    BA0QI
  2866.     CALL    SA0FT
  2867.     MOV    AL,BA0DD
  2868.     MOV    BA0CC,AL
  2869.     CALL    SA0ZN
  2870.     MOV    AL,BA0AA
  2871.     TEST    AL,AL
  2872.     JNZ    $+5
  2873.     JMP    IF0285
  2874.     MOV    AL,BA0CC
  2875.     SUB    AL,BA0X0
  2876.     MOV    BA0BB,AL
  2877.     JMP    IF0286
  2878. IF0285:
  2879. LOC13:
  2880.     CALL    MSG
  2881.     DB    'BAD INDIR'
  2882.     CALL    MSG
  2883.     DB    'ECT INDEX'
  2884.     CALL    SA0CR
  2885.     MOV    BA0BB,0
  2886. IF0286:
  2887.     MOV    AL,BA0BB
  2888.     CMP    AL,BA0MK
  2889.     LAHF
  2890.     AND    AH,1
  2891.     MOV    BA0AA,AH
  2892.     MOV    AL,BA0AA
  2893.     TEST    AL,AL
  2894.     JNZ    $+5
  2895.     JMP    IF0287
  2896.     MOV    BH,0
  2897.     MOV    BL,BA0BB
  2898.     MOV    WA0AA,BX
  2899.     MOV    AX,WA0TU
  2900.     ADD    AX,WA0AA
  2901.     MOV    WA0AA,AX
  2902.     MOV    AX,WA0BB
  2903.     MOV    BX,WA0AA
  2904.     SHL    BX,1
  2905.     MOV    WA0MI[BX],AX
  2906.     RET
  2907.     JMP    IF0288
  2908. IF0287:
  2909.     MOV    AL,BA0BB
  2910.     SUB    AL,BA0MK
  2911.     MOV    BA0BB,AL
  2912.     MOV    AL,BA0BB
  2913.     CMP    AL,BA0MK
  2914.     LAHF
  2915.     AND    AH,1
  2916.     MOV    BA0AA,AH
  2917.     MOV    AL,BA0AA
  2918.     TEST    AL,AL
  2919.     JNZ    $+5
  2920.     JMP    IF0289
  2921.     MOV    BH,0
  2922.     MOV    BL,BA0BB
  2923.     MOV    WA0AA,BX
  2924.     MOV    AX,WA0AA
  2925.     ADD    AX,WA0TU
  2926.     MOV    WA0AA,AX
  2927.     MOV    AL,BYTE PTR WA0BB
  2928.     MOV    BA0AA,AL
  2929.     MOV    AL,BA0AA
  2930.     MOV    BX,WA0AA
  2931.     MOV    BA0MC[BX],AL
  2932.     JMP    IF0290
  2933. IF0289:
  2934.     JMP    LOC13
  2935. IF0290:
  2936. IF0288:
  2937.     JMP    XA0271
  2938.     RB    0-0
  2939. A0U284:    CMP    AL,BA0XC
  2940.     JZ    $+5
  2941.     JMP    A0U291
  2942.     MOV    BX,WA0TU
  2943.     MOV    WA0AA,BX
  2944.     CALL    SA0WN
  2945.     JMP    XA0271
  2946.     RB    0-0
  2947. A0U291:    CMP    AL,BA0XL
  2948.     JZ    $+5
  2949.     JMP    A0U292
  2950.     MOV    AL,BYTE PTR WA0TU
  2951.     MOV    BA0AA,AL
  2952.     MOV    AL,BA0AA
  2953.     MOV    BL,BA0PB
  2954.     MOV    BH,0
  2955.     MOV    BA0BO[BX],AL
  2956.     INC    BA0PB
  2957.     JMP    XA0271
  2958.     RB    0-0
  2959. A0U292:    CMP    AL,BA0XA
  2960.     JZ    $+5
  2961.     JMP    A0U293
  2962.     MOV    AL,BYTE PTR WA0TU
  2963.     MOV    BA0AA,AL
  2964.     MOV    AL,BA0AA
  2965.     MOV    BL,BA0PO
  2966.     MOV    BH,0
  2967.     MOV    BA0OS[BX],AL
  2968.     INC    BA0PO
  2969.     MOV    AL,BA0C0
  2970.     MOV    BL,BA0PO
  2971.     MOV    BH,0
  2972.     MOV    BA0OS[BX],AL
  2973.     JMP    XA0271
  2974.     RB    0-0
  2975. A0U293:    CMP    AL,BA0XB
  2976.     JZ    $+5
  2977.     JMP    A0U294
  2978.     MOV    AL,BYTE PTR WA0TU
  2979.     MOV    BA0PO,AL
  2980.     MOV    AL,BA0C0
  2981.     MOV    BL,BA0PO
  2982.     MOV    BH,0
  2983.     MOV    BA0OS[BX],AL
  2984.     JMP    XA0271
  2985.     RB    0-0
  2986. A0U294:    CMP    AL,BA0XG
  2987.     JZ    $+5
  2988.     JMP    A0U295
  2989.     MOV    BX,WA0TU
  2990.     MOV    WA0UU,BX
  2991.     JMP    XA0271
  2992.     RB    0-0
  2993. A0U295:    CMP    AL,BA0XU
  2994.     JZ    $+5
  2995.     JMP    A0U296
  2996.     MOV    BX,WA0PT
  2997.     MOV    WA0AA,BX
  2998. LOC39:
  2999.     INC    WA0AA
  3000.     MOV    AX,WA0TU
  3001.     MOV    BX,WA0AA
  3002.     SHL    BX,1
  3003.     MOV    WA0ST[BX],AX
  3004.     JMP    XA0271
  3005.     RB    0-0
  3006. A0U296:    CMP    AL,BA0XV
  3007.     JZ    $+5
  3008.     JMP    A0U297
  3009.     MOV    BX,WA0PT
  3010.     MOV    WA0AA,BX
  3011.     INC    WA0AA
  3012.     JMP    LOC39
  3013.     JMP    XA0271
  3014.     RB    0-0
  3015. A0U297:    CMP    AL,BA0XD
  3016.     JZ    $+5
  3017.     JMP    A0U298
  3018.     JMP    XA0271
  3019.     RB    0-0
  3020. A0U298:    CMP    AL,BA0XH
  3021.     JZ    $+5
  3022.     JMP    A0U299
  3023.     MOV    AL,BYTE PTR WA0TU
  3024.     MOV    BA0AA,AL
  3025.     MOV    BH,0
  3026.     MOV    BL,BA0AA
  3027.     MOV    WA0TU,BX
  3028.     MOV    AX,WA0TU
  3029.     MOV    CX,WA016
  3030.     CWD
  3031.     JCXZ    $+4
  3032.     IDIV    CX
  3033.     MOV    WA0AA,AX
  3034.     MOV    AX,WA0AA
  3035.     IMUL    WA016
  3036.     MOV    WA0BB,AX
  3037.     MOV    AX,WA0TU
  3038.     SUB    AX,WA0BB
  3039.     MOV    WA0BB,AX
  3040.     MOV    AL,BYTE PTR WA0AA
  3041.     MOV    BA0CC,AL
  3042.     CALL    SA0WH
  3043.     MOV    AL,BYTE PTR WA0BB
  3044.     MOV    BA0CC,AL
  3045.     CALL    SA0WH
  3046.     JMP    XA0271
  3047.     RB    0-0
  3048. A0U299:
  3049.     MOV    BL,BA0QI
  3050.     MOV    BH,0
  3051.     MOV    AL,BA0RI[BX]
  3052.     MOV    BA0CC,AL
  3053.     CALL    SA0ZN
  3054.     MOV    AL,BA0AA
  3055.     TEST    AL,AL
  3056.     JNZ    $+5
  3057.     JMP    IF0300
  3058.     MOV    AL,BA0CC
  3059.     SUB    AL,BA0X0
  3060.     MOV    BA0AA,AL
  3061.     JMP    IF0301
  3062. IF0300:
  3063.     CALL    MSG
  3064.     DB    'ILLEGAL S'
  3065.     CALL    MSG
  3066.     DB    'TORE ATMP'
  3067.     CALL    SA0CR
  3068.     MOV    BA0AA,0
  3069. IF0301:
  3070.     MOV    AX,WA0TU
  3071.     MOV    BL,BA0AA
  3072.     MOV    BH,0
  3073.     SHL    BX,1
  3074.     MOV    WA0PR[BX],AX
  3075. XA0271:
  3076.     RET
  3077. SA0WH:
  3078.     MOV    AL,BA0CC
  3079.     CMP    AL,BA0C9
  3080.     MOV    AL,0
  3081.     JNBE    $+4
  3082.     MOV    AL,1
  3083.     MOV    BA0AA,AL
  3084.     MOV    AL,BA0AA
  3085.     TEST    AL,AL
  3086.     JNZ    $+5
  3087.     JMP    IF0302
  3088.     MOV    AL,BA0X0
  3089.     ADD    AL,BA0CC
  3090.     MOV    BA0CC,AL
  3091.     JMP    IF0303
  3092. IF0302:
  3093.     MOV    AL,BA0XA
  3094.     ADD    AL,BA0CC
  3095.     MOV    BA0CC,AL
  3096.     MOV    AL,BA0CC
  3097.     SUB    AL,BA0C9
  3098.     MOV    BA0CC,AL
  3099.     MOV    AL,BA0CC
  3100.     SUB    AL,BA0C1
  3101.     MOV    BA0CC,AL
  3102. IF0303:
  3103.     MOV    AL,BA0CC
  3104.     MOV    BL,BA0PB
  3105.     MOV    BH,0
  3106.     MOV    BA0BO[BX],AL
  3107.     INC    BA0PB
  3108.     RET
  3109. SA0WN:
  3110.     CALL    SA0DS
  3111. TW0304:
  3112.     MOV    BH,0
  3113.     MOV    BL,BA0ND
  3114.     MOV    WA0BB,BX
  3115.     MOV    AX,WA000
  3116.     CMP    AX,WA0BB
  3117.     LAHF
  3118.     ROL    AH,1
  3119.     AND    AH,1
  3120.     MOV    BA0AA,AH
  3121.     MOV    AL,BA0AA
  3122.     TEST    AL,AL
  3123.     JNZ    $+5
  3124.     JMP    BW0304
  3125.     DEC    BA0ND
  3126.     MOV    BL,BA0ND
  3127.     MOV    BH,0
  3128.     MOV    AL,BA0DS[BX]
  3129.     MOV    BA0AA,AL
  3130.     MOV    AL,BA0AA
  3131.     MOV    BL,BA0PB
  3132.     MOV    BH,0
  3133.     MOV    BA0BO[BX],AL
  3134.     INC    BA0PB
  3135.     JMP    TW0304
  3136. BW0304:
  3137.     RET
  3138. SA0ZA:
  3139.     MOV    AL,BA0CC
  3140.     SUB    AL,BA0XA
  3141.     MOV    BA0AA,AL
  3142.     MOV    AL,BA0XZ
  3143.     SUB    AL,BA0CC
  3144.     MOV    BA0BB,AL
  3145.     MOV    AL,BA0AA
  3146.     CMP    AL,BA0CV
  3147.     MOV    AL,0
  3148.     JNBE    $+4
  3149.     MOV    AL,1
  3150.     MOV    BA0AA,AL
  3151.     MOV    AL,BA0BB
  3152.     CMP    AL,BA0CV
  3153.     MOV    AL,0
  3154.     JNBE    $+4
  3155.     MOV    AL,1
  3156.     MOV    BA0BB,AL
  3157.     MOV    AL,BA0AA
  3158.     AND    AL,BA0BB
  3159.     MOV    BA0AA,AL
  3160.     RET
  3161. SA0ZH:
  3162.     MOV    AL,BA0X0
  3163.     CMP    AL,BA0CC
  3164.     MOV    AL,0
  3165.     JNBE    $+4
  3166.     MOV    AL,1
  3167.     MOV    BA0AA,AL
  3168.     MOV    AL,BA0CC
  3169.     CMP    AL,BA0X9
  3170.     MOV    AL,0
  3171.     JNBE    $+4
  3172.     MOV    AL,1
  3173.     MOV    BA0BB,AL
  3174.     MOV    AL,BA0AA
  3175.     AND    AL,BA0BB
  3176.     MOV    BA0AA,AL
  3177.     MOV    AL,BA0AA
  3178.     TEST    AL,AL
  3179.     JNZ    $+5
  3180.     JMP    IF0305
  3181.     MOV    AL,BA0CC
  3182.     SUB    AL,BA0X0
  3183.     MOV    BA0CC,AL
  3184.     RET
  3185. IF0305:
  3186.     MOV    AL,BA0XA
  3187.     CMP    AL,BA0CC
  3188.     MOV    AL,0
  3189.     JNBE    $+4
  3190.     MOV    AL,1
  3191.     MOV    BA0AA,AL
  3192.     MOV    AL,BA0CC
  3193.     CMP    AL,BA0XF
  3194.     MOV    AL,0
  3195.     JNBE    $+4
  3196.     MOV    AL,1
  3197.     MOV    BA0BB,AL
  3198.     MOV    AL,BA0AA
  3199.     AND    AL,BA0BB
  3200.     MOV    BA0AA,AL
  3201.     MOV    AL,BA0AA
  3202.     TEST    AL,AL
  3203.     JNZ    $+5
  3204.     JMP    IF0306
  3205.     MOV    AL,BA0CC
  3206.     SUB    AL,BA0XA
  3207.     MOV    BA0CC,AL
  3208.     MOV    BA0BB,10
  3209.     MOV    AL,BA0BB
  3210.     ADD    AL,BA0CC
  3211.     MOV    BA0CC,AL
  3212.     RET
  3213. IF0306:
  3214.     RET
  3215. SA0ZN:
  3216.     MOV    AL,BA0CC
  3217.     SUB    AL,BA0X0
  3218.     MOV    BA0AA,AL
  3219.     MOV    AL,BA0X9
  3220.     SUB    AL,BA0CC
  3221.     MOV    BA0BB,AL
  3222.     MOV    AL,BA0AA
  3223.     CMP    AL,BA0C9
  3224.     MOV    AL,0
  3225.     JNBE    $+4
  3226.     MOV    AL,1
  3227.     MOV    BA0AA,AL
  3228.     MOV    AL,BA0BB
  3229.     CMP    AL,BA0C9
  3230.     MOV    AL,0
  3231.     JNBE    $+4
  3232.     MOV    AL,1
  3233.     MOV    BA0BB,AL
  3234.     MOV    AL,BA0AA
  3235.     AND    AL,BA0BB
  3236.     MOV    BA0AA,AL
  3237.     RET
  3238. SA0ZW:
  3239.     MOV    AL,BA0CC
  3240.     CMP    AL,BA0CB
  3241.     MOV    AL,1
  3242.     JZ    $+4
  3243.     MOV    AL,0
  3244.     MOV    BA0AA,AL
  3245.     MOV    AL,BA0CC
  3246.     CMP    AL,BA0CT
  3247.     MOV    AL,1
  3248.     JZ    $+4
  3249.     MOV    AL,0
  3250.     MOV    BA0BB,AL
  3251.     MOV    AL,BA0AA
  3252.     OR    AL,BA0BB
  3253.     MOV    BA0AA,AL
  3254.     MOV    AL,BA0CC
  3255.     CMP    AL,BA0EL
  3256.     MOV    AL,1
  3257.     JZ    $+4
  3258.     MOV    AL,0
  3259.     MOV    BA0BB,AL
  3260.     MOV    AL,BA0AA
  3261.     OR    AL,BA0BB
  3262.     MOV    BA0AA,AL
  3263.     MOV    AL,BA0CC
  3264.     CMP    AL,BA0NL
  3265.     MOV    AL,1
  3266.     JZ    $+4
  3267.     MOV    AL,0
  3268.     MOV    BA0BB,AL
  3269.     MOV    AL,BA0AA
  3270.     OR    AL,BA0BB
  3271.     MOV    BA0AA,AL
  3272.     RET
  3273. SA0KG:
  3274.     MOV    BX, OFFSET BA0CC
  3275.     MOV    DX, OFFSET BA0F1
  3276.     CALL    BREAD
  3277.     MOV    AL,BA0CC
  3278.     CMP    AL,BA0EL
  3279.     MOV    AL,1
  3280.     JZ    $+4
  3281.     MOV    AL,0
  3282.     MOV    BA0KA,AL
  3283.     MOV    AL,BA0KA
  3284.     TEST    AL,AL
  3285.     JNZ    $+5
  3286.     JMP    IF0307
  3287.     MOV    BX, OFFSET BA0CC
  3288.     MOV    DX, OFFSET BA0F1
  3289.     CALL    BREAD
  3290. IF0307:
  3291.     RET
  3292.     END    START
  3293.