home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_200 / 221_01 / cc3.asm < prev    next >
Assembly Source File  |  1979-12-31  |  19KB  |  1,675 lines

  1. ;small-c V2.3
  2.  EXT ccdiv,ccmult
  3.  EXT fopen,fclose,getc,putc,putchar,getchar,rewind,gets
  4.  EXT exit
  5.  EXT CCSWITCH
  6.  EXT CCPOLL
  7.  EXT isalpha,isupper,islower,isdigit,isspace
  8.  EXT toupper,tolower
  9.  EXT strlen,reverse,left,strcmp,strcpy
  10.  EXT abs,itoa,atoi,printf
  11.  EXT astreq
  12.  EXT blanks
  13.  EXT call
  14.  EXT callstk
  15.  EXT cnl
  16.  EXT comment
  17.  EXT cout
  18.  EXT errrpt
  19.  EXT expressi
  20.  EXT findmac
  21.  EXT immed
  22.  EXT match
  23.  EXT modstk
  24.  EXT nl
  25.  EXT outdec
  26.  EXT outstr
  27.  EXT preproce
  28.  EXT push
  29.  EXT sout
  30.  EXT streq
  31.  EXT swapstk
  32.  EXT cmode
  33.  EXT ctext
  34.  EXT eof
  35.  EXT iflevel
  36.  EXT input
  37.  EXT input2
  38.  EXT lptr
  39.  EXT nxtlab
  40.  EXT output
  41.  EXT skipleve
  42.  EXT stkp
  43.  EXT wq
  44.  EXT wqptr
  45.  EXT cptr
  46.  EXT endsearc
  47.  EXT glbptr
  48.  EXT line
  49.  EXT locptr
  50.  EXT startcom
  51.  EXT statptr
  52.  EXT stattab
  53.  EXT symtab
  54.  NAME callfunc
  55.  GLOBAL callfunc
  56. callfunc
  57.  LEAS -2,S
  58.  LDD  #0
  59.  STD  0,S
  60.  JSR blanks
  61.  LDD  4,S
  62.  PSHS D
  63.  LDD  #0
  64.  CMPD ,S++
  65.  LBNE cc2
  66.  JSR push
  67. cc2
  68. cc3
  69.  LDD  #line
  70.  ADDD lptr
  71.  PSHS D
  72.  LDD  #cc1+0
  73.  PSHS D
  74.  JSR streq
  75.  LEAS 4,S
  76.  PSHS D
  77.  LDD  #0
  78.  CMPD ,S++
  79.  LBNE cc4
  80.  JSR endst
  81.  CMPD #0
  82.  LBEQ cc5
  83.  JMP cc4
  84. cc5
  85.  JSR expressi
  86.  LDD  4,S
  87.  PSHS D
  88.  LDD  #0
  89.  CMPD ,S++
  90.  LBNE cc6
  91.  JSR swapstk
  92. cc6
  93.  JSR push
  94.  LEAY 0,S
  95.  TFR  Y,D
  96.  PSHS D
  97.  LDD  2,S
  98.  ADDD #2
  99.  STD  [,S++]
  100.  LDD  #cc1+2
  101.  PSHS D
  102.  JSR match
  103.  LEAS 2,S
  104.  PSHS D
  105.  LDD  #0
  106.  CMPD ,S++
  107.  LBNE cc7
  108.  JMP cc4
  109. cc7
  110.  JMP cc3
  111. cc4
  112.  LDD  #cc1+4
  113.  PSHS D
  114.  JSR needbrac
  115.  LEAS 2,S
  116.  LDD  4,S
  117.  PSHS D
  118.  LDD  #cc1+6
  119.  PSHS D
  120.  JSR streq
  121.  LEAS 4,S
  122.  CMPD #0
  123.  LBEQ cc8
  124.  JSR immed
  125.  LDD  0,S
  126.  PSHS D
  127.  LDD  #1
  128.  DECB
  129.  BLT  *+8
  130.  LSR  ,S
  131.  ROR  1,S
  132.  BRA  *-7
  133.  PULS D
  134.  PSHS D
  135.  JSR outdec
  136.  LEAS 2,S
  137.  JSR nl
  138. cc8
  139.  LDD  4,S
  140.  CMPD #0
  141.  LBEQ cc9
  142.  LDD  4,S
  143.  PSHS D
  144.  JSR call
  145.  LEAS 2,S
  146.  JMP cc10
  147. cc9
  148.  JSR callstk
  149. cc10
  150.  LDD  stkp
  151.  PSHS D
  152.  LDD  2,S
  153.  ADDD ,S++
  154.  PSHS D
  155.  JSR modstk
  156.  LEAS 2,S
  157.  STD  stkp
  158.  LEAS 2,S
  159.  RTS
  160. cc1 FCB 41,0,44,0,41,0,112,114,105,110
  161.  FCB 116,102,0
  162.  GLOBAL junk
  163. junk
  164.  JSR inbyte
  165.  PSHS D
  166.  JSR an
  167.  LEAS 2,S
  168.  CMPD #0
  169.  LBEQ cc12
  170. cc13
  171.  JSR ch
  172.  PSHS D
  173.  JSR an
  174.  LEAS 2,S
  175.  CMPD #0
  176.  LBEQ cc14
  177.  JSR gch
  178.  JMP cc13
  179. cc14
  180.  JMP cc15
  181. cc12
  182. cc16
  183.  JSR ch
  184.  PSHS D
  185.  JSR an
  186.  LEAS 2,S
  187.  PSHS D
  188.  LDD  #0
  189.  CMPD ,S++
  190.  LBNE cc17
  191.  JSR ch
  192.  PSHS D
  193.  LDD  #0
  194.  CMPD ,S++
  195.  LBNE cc18
  196.  JMP cc17
  197. cc18
  198.  JSR gch
  199.  JMP cc16
  200. cc17
  201. cc15
  202.  JSR blanks
  203.  RTS
  204.  GLOBAL endst
  205. endst
  206.  JSR blanks
  207.  LDD  #line
  208.  ADDD lptr
  209.  PSHS D
  210.  LDD  #cc11+0
  211.  PSHS D
  212.  JSR streq
  213.  LEAS 4,S
  214.  PSHS D
  215.  JSR ch
  216.  PSHS D
  217.  LDD  #0
  218.  CMPD ,S++
  219.  BEQ  *+7
  220.  LDD  #0
  221.  BRA  *+5
  222.  LDD  #1
  223.  ORA  ,S+
  224.  ORB  ,S+
  225.  RTS
  226. cc11 FCB 59,0
  227.  GLOBAL illname
  228. illname
  229.  LDD  #cc19+0
  230.  PSHS D
  231.  JSR errrpt
  232.  LEAS 2,S
  233.  JSR junk
  234.  RTS
  235. cc19 FCB 105,108,108,101,103,97,108,32,115,121
  236.  FCB 109,98,111,108,32,110,97,109,101,0
  237.  GLOBAL multidef
  238. multidef
  239.  LDD  #cc20+0
  240.  PSHS D
  241.  JSR errrpt
  242.  LEAS 2,S
  243.  JSR comment
  244.  LDD  2,S
  245.  PSHS D
  246.  JSR outstr
  247.  LEAS 2,S
  248.  JSR nl
  249.  RTS
  250. cc20 FCB 97,108,114,101,97,100,121,32,100,101
  251.  FCB 102,105,110,101,100,0
  252.  GLOBAL needbrac
  253. needbrac
  254.  LDD  2,S
  255.  PSHS D
  256.  JSR match
  257.  LEAS 2,S
  258.  PSHS D
  259.  LDD  #0
  260.  CMPD ,S++
  261.  LBNE cc22
  262.  LDD  #cc21+0
  263.  PSHS D
  264.  JSR errrpt
  265.  LEAS 2,S
  266.  JSR comment
  267.  LDD  2,S
  268.  PSHS D
  269.  JSR outstr
  270.  LEAS 2,S
  271.  JSR nl
  272. cc22
  273.  RTS
  274. cc21 FCB 109,105,115,115,105,110,103,32,116,111
  275.  FCB 107,101,110,0
  276.  GLOBAL needlval
  277. needlval
  278.  LDD  #cc23+0
  279.  PSHS D
  280.  JSR errrpt
  281.  LEAS 2,S
  282.  RTS
  283. cc23 FCB 109,117,115,116,32,98,101,32,108,118
  284.  FCB 97,108,117,101,0
  285.  GLOBAL hash
  286. hash
  287.  LEAS -4,S
  288.  LEAY 2,S
  289.  TFR  Y,D
  290.  PSHS D
  291.  LDD  8,S
  292.  PSHS D
  293.  LDB  [,S++]
  294.  SEX
  295.  STD  [,S++]
  296. cc25
  297.  LEAY 0,S
  298.  TFR  Y,D
  299.  PSHS D
  300.  LDD  8,S
  301.  ADDD #1
  302.  STD  8,S
  303.  PSHS D
  304.  LDB  [,S++]
  305.  SEX
  306.  STD  [,S++]
  307.  CMPD #0
  308.  LBEQ cc26
  309.  LEAY 2,S
  310.  TFR  Y,D
  311.  PSHS D
  312.  LDD  4,S
  313.  PSHS D
  314.  LDD  #1
  315.  DECB
  316.  BLT  *+8
  317.  ASL  1,S
  318.  ROL  ,S
  319.  BRA  *-7
  320.  PULS D
  321.  PSHS D
  322.  LDD  4,S
  323.  ADDD ,S++
  324.  STD  [,S++]
  325.  JMP cc25
  326. cc26
  327.  LDD  2,S
  328.  LEAS 4,S
  329.  RTS
  330.  GLOBAL findstat
  331. findstat
  332.  LEAS -2,S
  333.  LEAY 0,S
  334.  TFR  Y,D
  335.  PSHS D
  336.  LDD  statptr
  337.  STD  [,S++]
  338. cc27
  339.  LDD  0,S
  340.  PSHS D
  341.  LDD  #stattab
  342.  CMPD ,S++
  343.  LBHI cc28
  344.  LEAY 0,S
  345.  TFR  Y,D
  346.  PSHS D
  347.  LDD  2,S
  348.  PSHS D
  349.  LDD  #23
  350.  PULS X
  351.  PSHS D
  352.  TFR  X,D
  353.  SUBD ,S++
  354.  STD  [,S++]
  355.  LDD  4,S
  356.  PSHS D
  357.  LDD  2,S
  358.  PSHS D
  359.  LDD  #8
  360.  PSHS D
  361.  JSR astreq
  362.  LEAS 6,S
  363.  CMPD #0
  364.  LBEQ cc29
  365.  LDD  0,S
  366.  LEAS 2,S
  367.  RTS
  368. cc29
  369.  JMP cc27
  370. cc28
  371.  LDD  #0
  372.  LEAS 2,S
  373.  RTS
  374.  GLOBAL findglb
  375. findglb
  376.  LEAS -2,S
  377.  LEAY 0,S
  378.  TFR  Y,D
  379.  PSHS D
  380.  LDD  6,S
  381.  PSHS D
  382.  JSR hash
  383.  LEAS 2,S
  384.  PSHS D
  385.  LDD  #511
  386.  ANDA ,S+
  387.  ANDB ,S+
  388.  STD  [,S++]
  389.  LDD  #symtab
  390.  PSHS D
  391.  LDD  2,S
  392.  PSHS D
  393.  LDD  #14
  394.  PULS X
  395.  JSR ccmult
  396.  ADDD ,S++
  397.  STD  cptr
  398. cc30
  399.  LDD  4,S
  400.  PSHS D
  401.  LDD  cptr
  402.  PSHS D
  403.  LDD  #8
  404.  PSHS D
  405.  JSR astreq
  406.  LEAS 6,S
  407.  PSHS D
  408.  LDD  #0
  409.  CMPD ,S++
  410.  LBNE cc31
  411.  LDD  cptr
  412.  PSHS D
  413.  LDB  [,S++]
  414.  SEX
  415.  PSHS D
  416.  LDD  #0
  417.  CMPD ,S++
  418.  LBNE cc32
  419.  LDD  #0
  420.  LEAS 2,S
  421.  RTS
  422. cc32
  423.  LDD  cptr
  424.  ADDD #14
  425.  STD  cptr
  426.  LDD  cptr
  427.  PSHS D
  428.  LDD  #symtab
  429.  PSHS D
  430.  LDD  #512
  431.  PSHS D
  432.  LDD  #14
  433.  PULS X
  434.  JSR ccmult
  435.  ADDD ,S++
  436.  CMPD ,S++
  437.  LBHI cc33
  438.  LDD  #symtab
  439.  STD  cptr
  440. cc33
  441.  JMP cc30
  442. cc31
  443.  LDD  cptr
  444.  LEAS 2,S
  445.  RTS
  446.  GLOBAL findloc
  447. findloc
  448.  LEAS -2,S
  449.  LEAY 0,S
  450.  TFR  Y,D
  451.  PSHS D
  452.  LDD  locptr
  453.  STD  [,S++]
  454. cc34
  455.  LDD  0,S
  456.  PSHS D
  457.  LDD  endsearc
  458.  CMPD ,S++
  459.  LBHS cc35
  460.  LEAY 0,S
  461.  TFR  Y,D
  462.  PSHS D
  463.  LDD  2,S
  464.  PSHS D
  465.  LDD  #14
  466.  PULS X
  467.  PSHS D
  468.  TFR  X,D
  469.  SUBD ,S++
  470.  STD  [,S++]
  471.  LDD  4,S
  472.  PSHS D
  473.  LDD  2,S
  474.  PSHS D
  475.  LDD  #8
  476.  PSHS D
  477.  JSR astreq
  478.  LEAS 6,S
  479.  CMPD #0
  480.  LBEQ cc36
  481.  LDD  0,S
  482.  LEAS 2,S
  483.  RTS
  484. cc36
  485.  JMP cc34
  486. cc35
  487.  LDD  #0
  488.  LEAS 2,S
  489.  RTS
  490.  GLOBAL addstati
  491. addstati
  492.  LEAS -2,S
  493.  LDD  startcom
  494.  STD  endsearc
  495.  LDD  12,S
  496.  PSHS D
  497.  JSR findloc
  498.  LEAS 2,S
  499.  CMPD #0
  500.  LBEQ cc37
  501.  LDD  statptr
  502.  LEAS 2,S
  503.  RTS
  504. cc37
  505.  LDD  #symtab
  506.  PSHS D
  507.  LDD  #512
  508.  PSHS D
  509.  LDD  #14
  510.  PULS X
  511.  JSR ccmult
  512.  ADDD ,S++
  513.  ADDD #14
  514.  STD  endsearc
  515.  LDD  statptr
  516.  PSHS D
  517.  LDD  #stattab
  518.  ADDD #690
  519.  CMPD ,S++
  520.  LBHI cc38
  521.  LDD  #cc24+0
  522.  PSHS D
  523.  JSR errrpt
  524.  LEAS 2,S
  525.  LDD  #0
  526.  LEAS 2,S
  527.  RTS
  528. cc38
  529.  LEAY 0,S
  530.  TFR  Y,D
  531.  PSHS D
  532.  LDD  statptr
  533.  STD  [,S++]
  534. cc39
  535.  LDD  0,S
  536.  ADDD #1
  537.  STD  0,S
  538.  SUBD #1
  539.  PSHS D
  540.  LDD  14,S
  541.  ADDD #1
  542.  STD  14,S
  543.  SUBD #1
  544.  PSHS D
  545.  LDB  [,S++]
  546.  SEX
  547.  STB  [,S++]
  548.  PSHS D
  549.  JSR an
  550.  LEAS 2,S
  551.  CMPD #0
  552.  LBEQ cc40
  553.  JMP cc39
  554. cc40
  555.  LEAY 0,S
  556.  TFR  Y,D
  557.  PSHS D
  558.  LDD  statptr
  559.  ADDD #14
  560.  STD  [,S++]
  561. cc41
  562.  LDD  0,S
  563.  ADDD #1
  564.  STD  0,S
  565.  SUBD #1
  566.  PSHS D
  567.  LDD  12,S
  568.  ADDD #1
  569.  STD  12,S
  570.  SUBD #1
  571.  PSHS D
  572.  LDB  [,S++]
  573.  SEX
  574.  STB  [,S++]
  575.  PSHS D
  576.  JSR an
  577.  LEAS 2,S
  578.  CMPD #0
  579.  LBEQ cc42
  580.  JMP cc41
  581. cc42
  582.  LDD  statptr
  583.  ADDD #9
  584.  PSHS D
  585.  LDB  11,S
  586.  SEX
  587.  STB  [,S++]
  588.  LDD  statptr
  589.  ADDD #10
  590.  PSHS D
  591.  LDB  9,S
  592.  SEX
  593.  STB  [,S++]
  594.  LDD  statptr
  595.  ADDD #11
  596.  PSHS D
  597.  LDD  #1
  598.  STB  [,S++]
  599.  LDD  4,S
  600.  PSHS D
  601.  LDD  statptr
  602.  ADDD #12
  603.  PSHS D
  604.  LDD  #2
  605.  PSHS D
  606.  JSR putint
  607.  LEAS 6,S
  608.  LDD  statptr
  609.  ADDD #23
  610.  STD  statptr
  611.  LDD  statptr
  612.  LEAS 2,S
  613.  RTS
  614. cc24 FCB 115,116,97,116,105,99,32,115,121,109
  615.  FCB 98,111,108,32,116,97,98,108,101,32
  616.  FCB 111,118,101,114,102,108,111,119,0
  617.  GLOBAL addglb
  618. addglb
  619.  LEAS -2,S
  620.  LDD  12,S
  621.  PSHS D
  622.  JSR findglb
  623.  LEAS 2,S
  624.  CMPD #0
  625.  LBEQ cc44
  626.  LDD  cptr
  627.  LEAS 2,S
  628.  RTS
  629. cc44
  630.  LDD  glbptr
  631.  PSHS D
  632.  LDD  #symtab
  633.  PSHS D
  634.  LDD  #512
  635.  PSHS D
  636.  LDD  #14
  637.  PULS X
  638.  JSR ccmult
  639.  ADDD ,S++
  640.  CMPD ,S++
  641.  LBHI cc45
  642.  LDD  #cc43+0
  643.  PSHS D
  644.  JSR errrpt
  645.  LEAS 2,S
  646.  LDD  #0
  647.  LEAS 2,S
  648.  RTS
  649. cc45
  650.  LEAY 0,S
  651.  TFR  Y,D
  652.  PSHS D
  653.  LDD  cptr
  654.  STD  [,S++]
  655. cc46
  656.  LDD  0,S
  657.  ADDD #1
  658.  STD  0,S
  659.  SUBD #1
  660.  PSHS D
  661.  LDD  14,S
  662.  ADDD #1
  663.  STD  14,S
  664.  SUBD #1
  665.  PSHS D
  666.  LDB  [,S++]
  667.  SEX
  668.  STB  [,S++]
  669.  PSHS D
  670.  JSR an
  671.  LEAS 2,S
  672.  CMPD #0
  673.  LBEQ cc47
  674.  JMP cc46
  675. cc47
  676.  LDD  cptr
  677.  ADDD #9
  678.  PSHS D
  679.  LDB  13,S
  680.  SEX
  681.  STB  [,S++]
  682.  LDD  cptr
  683.  ADDD #10
  684.  PSHS D
  685.  LDB  11,S
  686.  SEX
  687.  STB  [,S++]
  688.  LDD  cptr
  689.  ADDD #11
  690.  PSHS D
  691.  LDD  6,S
  692.  STB  [,S++]
  693.  LDD  6,S
  694.  PSHS D
  695.  LDD  cptr
  696.  ADDD #12
  697.  PSHS D
  698.  LDD  #2
  699.  PSHS D
  700.  JSR putint
  701.  LEAS 6,S
  702.  LDD  glbptr
  703.  ADDD #14
  704.  STD  glbptr
  705.  LDD  cptr
  706.  LEAS 2,S
  707.  RTS
  708. cc43 FCB 103,108,111,98,97,108,32,115,121,109
  709.  FCB 98,111,108,32,116,97,98,108,101,32
  710.  FCB 111,118,101,114,102,108,111,119,0
  711.  GLOBAL addloc
  712. addloc
  713.  LEAS -2,S
  714.  LDD  startcom
  715.  STD  endsearc
  716.  LDD  10,S
  717.  PSHS D
  718.  JSR findloc
  719.  LEAS 2,S
  720.  CMPD #0
  721.  LBEQ cc49
  722.  LDD  statptr
  723.  LEAS 2,S
  724.  RTS
  725. cc49
  726.  LDD  #symtab
  727.  PSHS D
  728.  LDD  #512
  729.  PSHS D
  730.  LDD  #14
  731.  PULS X
  732.  JSR ccmult
  733.  ADDD ,S++
  734.  ADDD #14
  735.  STD  endsearc
  736.  LDD  locptr
  737.  PSHS D
  738.  LDD  #symtab
  739.  ADDD #8008
  740.  PSHS D
  741.  LDD  #14
  742.  PULS X
  743.  PSHS D
  744.  TFR  X,D
  745.  SUBD ,S++
  746.  CMPD ,S++
  747.  LBHI cc50
  748.  LDD  #cc48+0
  749.  PSHS D
  750.  JSR errrpt
  751.  LEAS 2,S
  752.  LDD  #0
  753.  LEAS 2,S
  754.  RTS
  755. cc50
  756.  LEAY 0,S
  757.  TFR  Y,D
  758.  PSHS D
  759.  LDD  locptr
  760.  STD  [,S++]
  761.  STD  cptr
  762. cc51
  763.  LDD  0,S
  764.  ADDD #1
  765.  STD  0,S
  766.  SUBD #1
  767.  PSHS D
  768.  LDD  12,S
  769.  ADDD #1
  770.  STD  12,S
  771.  SUBD #1
  772.  PSHS D
  773.  LDB  [,S++]
  774.  SEX
  775.  STB  [,S++]
  776.  PSHS D
  777.  JSR an
  778.  LEAS 2,S
  779.  CMPD #0
  780.  LBEQ cc52
  781.  JMP cc51
  782. cc52
  783.  LDB  9,S
  784.  SEX
  785.  PSHS D
  786.  LDD  #1
  787.  CMPD ,S++
  788.  BEQ  *+8
  789.  LDD  #0
  790.  JMP cc54 _
  791.  LDD  #1
  792.  LDB  7,S
  793.  SEX
  794.  PSHS D
  795.  LDD  #1
  796.  PSHS D
  797.  LDD  #2
  798.  DECB
  799.  BLT  *+8
  800.  ASL  1,S
  801.  ROL  ,S
  802.  BRA  *-7
  803.  PULS D
  804.  CMPD ,S++
  805.  BEQ  *+8
  806.  LDD  #0
  807.  JMP cc54 _
  808.  LDD  #1
  809.  LDD  #1
  810. cc54
  811.  CMPD #0
  812.  LBEQ cc53
  813.  LDD  4,S
  814.  SUBD #1
  815.  STD  4,S
  816. cc53
  817.  LDD  cptr
  818.  ADDD #9
  819.  PSHS D
  820.  LDB  11,S
  821.  SEX
  822.  STB  [,S++]
  823.  LDD  cptr
  824.  ADDD #10
  825.  PSHS D
  826.  LDB  9,S
  827.  SEX
  828.  STB  [,S++]
  829.  LDD  cptr
  830.  ADDD #11
  831.  PSHS D
  832.  LDD  #2
  833.  STB  [,S++]
  834.  LDD  4,S
  835.  PSHS D
  836.  LDD  cptr
  837.  ADDD #12
  838.  PSHS D
  839.  LDD  #2
  840.  PSHS D
  841.  JSR putint
  842.  LEAS 6,S
  843.  LDD  locptr
  844.  ADDD #14
  845.  STD  locptr
  846.  LDD  cptr
  847.  LEAS 2,S
  848.  RTS
  849. cc48 FCB 108,111,99,97,108,32,115,121,109,98
  850.  FCB 111,108,32,116,97,98,108,101,32,111
  851.  FCB 118,101,114,102,108,111,119,0
  852.  GLOBAL getint
  853. getint
  854.  LEAS -2,S
  855.  LEAY 0,S
  856.  TFR  Y,D
  857.  PSHS D
  858.  LDD  8,S
  859.  PSHS D
  860.  LDD  8,S
  861.  SUBD #1
  862.  STD  8,S
  863.  ADDD ,S++
  864.  PSHS D
  865.  LDB  [,S++]
  866.  SEX
  867.  STD  [,S++]
  868. cc56
  869.  LDD  4,S
  870.  SUBD #1
  871.  STD  4,S
  872.  ADDD #1
  873.  CMPD #0
  874.  LBEQ cc57
  875.  LEAY 0,S
  876.  TFR  Y,D
  877.  PSHS D
  878.  LDD  2,S
  879.  PSHS D
  880.  LDD  #8
  881.  DECB
  882.  BLT  *+8
  883.  ASL  1,S
  884.  ROL  ,S
  885.  BRA  *-7
  886.  PULS D
  887.  PSHS D
  888.  LDD  10,S
  889.  PSHS D
  890.  LDD  10,S
  891.  ADDD ,S++
  892.  PSHS D
  893.  LDB  [,S++]
  894.  SEX
  895.  PSHS D
  896.  LDD  #255
  897.  ANDA ,S+
  898.  ANDB ,S+
  899.  ORA  ,S+
  900.  ORB  ,S+
  901.  STD  [,S++]
  902.  JMP cc56
  903. cc57
  904.  LDD  0,S
  905.  LEAS 2,S
  906.  RTS
  907.  GLOBAL putint
  908. putint
  909. cc58
  910.  LDD  2,S
  911.  SUBD #1
  912.  STD  2,S
  913.  ADDD #1
  914.  CMPD #0
  915.  LBEQ cc59
  916.  LDD  4,S
  917.  ADDD #1
  918.  STD  4,S
  919.  SUBD #1
  920.  PSHS D
  921.  LDD  8,S
  922.  STB  [,S++]
  923.  LEAY 6,S
  924.  TFR  Y,D
  925.  PSHS D
  926.  LDD  8,S
  927.  PSHS D
  928.  LDD  #8
  929.  DECB
  930.  BLT  *+8
  931.  LSR  ,S
  932.  ROR  1,S
  933.  BRA  *-7
  934.  PULS D
  935.  STD  [,S++]
  936.  JMP cc58
  937. cc59
  938.  RTS
  939.  GLOBAL symname
  940. symname
  941.  JSR blanks
  942.  JSR ch
  943.  PSHS D
  944.  JSR alpha
  945.  LEAS 2,S
  946.  PSHS D
  947.  LDD  #0
  948.  CMPD ,S++
  949.  LBNE cc60
  950.  LDD  #0
  951.  RTS
  952. cc60
  953. cc61
  954.  JSR ch
  955.  PSHS D
  956.  JSR an
  957.  LEAS 2,S
  958.  CMPD #0
  959.  LBEQ cc62
  960.  LDD  2,S
  961.  ADDD #1
  962.  STD  2,S
  963.  SUBD #1
  964.  PSHS D
  965.  JSR gch
  966.  STB  [,S++]
  967.  JMP cc61
  968. cc62
  969.  LDD  2,S
  970.  PSHS D
  971.  LDD  #0
  972.  STB  [,S++]
  973.  LDD  #1
  974.  RTS
  975.  GLOBAL getlabel
  976. getlabel
  977.  LDD  nxtlab
  978.  ADDD #1
  979.  STD  nxtlab
  980.  RTS
  981.  GLOBAL postlabe
  982. postlabe
  983.  LDD  2,S
  984.  PSHS D
  985.  JSR printlab
  986.  LEAS 2,S
  987.  JSR nl
  988.  RTS
  989.  GLOBAL printlab
  990. printlab
  991.  LDD  #cc55+0
  992.  PSHS D
  993.  JSR outstr
  994.  LEAS 2,S
  995.  LDD  2,S
  996.  PSHS D
  997.  JSR outdec
  998.  LEAS 2,S
  999.  RTS
  1000. cc55 FCB 99,99,0
  1001.  GLOBAL alpha
  1002. alpha
  1003.  LEAY 3,S
  1004.  TFR  Y,D
  1005.  PSHS D
  1006.  LDB  5,S
  1007.  SEX
  1008.  PSHS D
  1009.  LDD  #127
  1010.  ANDA ,S+
  1011.  ANDB ,S+
  1012.  STB  [,S++]
  1013.  LDB  3,S
  1014.  SEX
  1015.  PSHS D
  1016.  LDD  #97
  1017.  CMPD ,S++
  1018.  LBGT cc64
  1019.  LDB  3,S
  1020.  SEX
  1021.  PSHS D
  1022.  LDD  #122
  1023.  CMPD ,S++
  1024.  BGE  *+7
  1025.  LDD  #0
  1026.  BRA  *+5
  1027.  LDD  #1
  1028.  RTS
  1029. cc64
  1030.  LDB  3,S
  1031.  SEX
  1032.  PSHS D
  1033.  LDD  #90
  1034.  CMPD ,S++
  1035.  LBLT cc65
  1036.  LDB  3,S
  1037.  SEX
  1038.  PSHS D
  1039.  LDD  #65
  1040.  CMPD ,S++
  1041.  BLE  *+7
  1042.  LDD  #0
  1043.  BRA  *+5
  1044.  LDD  #1
  1045.  RTS
  1046. cc65
  1047.  LDB  3,S
  1048.  SEX
  1049.  PSHS D
  1050.  LDD  #95
  1051.  CMPD ,S++
  1052.  BEQ  *+7
  1053.  LDD  #0
  1054.  BRA  *+5
  1055.  LDD  #1
  1056.  RTS
  1057.  GLOBAL numeric
  1058. numeric
  1059.  LEAY 3,S
  1060.  TFR  Y,D
  1061.  PSHS D
  1062.  LDB  5,S
  1063.  SEX
  1064.  PSHS D
  1065.  LDD  #127
  1066.  ANDA ,S+
  1067.  ANDB ,S+
  1068.  STB  [,S++]
  1069.  LDB  3,S
  1070.  SEX
  1071.  PSHS D
  1072.  LDD  #48
  1073.  CMPD ,S++
  1074.  LBGT cc66
  1075.  LDB  3,S
  1076.  SEX
  1077.  PSHS D
  1078.  LDD  #57
  1079.  CMPD ,S++
  1080.  BGE  *+7
  1081.  LDD  #0
  1082.  BRA  *+5
  1083.  LDD  #1
  1084.  RTS
  1085. cc66
  1086.  LDD  #0
  1087.  RTS
  1088.  GLOBAL an
  1089. an
  1090.  LDB  3,S
  1091.  SEX
  1092.  PSHS D
  1093.  JSR alpha
  1094.  LEAS 2,S
  1095.  CMPD #0
  1096.  LBEQ cc67
  1097.  LDD  #1
  1098.  RTS
  1099. cc67
  1100.  LDB  3,S
  1101.  SEX
  1102.  PSHS D
  1103.  JSR numeric
  1104.  LEAS 2,S
  1105.  RTS
  1106.  GLOBAL pl
  1107. pl
  1108.  JSR cnl
  1109. cc68
  1110.  LDD  2,S
  1111.  PSHS D
  1112.  LDB  [,S++]
  1113.  SEX
  1114.  CMPD #0
  1115.  LBEQ cc69
  1116.  LDD  2,S
  1117.  ADDD #1
  1118.  STD  2,S
  1119.  SUBD #1
  1120.  PSHS D
  1121.  LDB  [,S++]
  1122.  SEX
  1123.  PSHS D
  1124.  JSR putchar
  1125.  LEAS 2,S
  1126.  JMP cc68
  1127. cc69
  1128.  RTS
  1129.  GLOBAL addwhile
  1130. addwhile
  1131.  LEAS -2,S
  1132.  LDD  4,S
  1133.  PSHS D
  1134.  LDD  #1
  1135.  PSHS D
  1136.  ADDD ,S++
  1137.  ADDD ,S++
  1138.  PSHS D
  1139.  LDD  stkp
  1140.  STD  [,S++]
  1141.  LDD  4,S
  1142.  PSHS D
  1143.  LDD  #2
  1144.  PSHS D
  1145.  ADDD ,S++
  1146.  ADDD ,S++
  1147.  PSHS D
  1148.  JSR getlabel
  1149.  STD  [,S++]
  1150.  LDD  4,S
  1151.  PSHS D
  1152.  LDD  #3
  1153.  PSHS D
  1154.  ADDD ,S++
  1155.  ADDD ,S++
  1156.  PSHS D
  1157.  JSR getlabel
  1158.  STD  [,S++]
  1159.  LDD  wqptr
  1160.  PSHS D
  1161.  LDD  #wq
  1162.  ADDD #100
  1163.  PSHS D
  1164.  LDD  #4
  1165.  PULS X
  1166.  PSHS D
  1167.  TFR  X,D
  1168.  SUBD ,S++
  1169.  CMPD ,S++
  1170.  LBNE cc70
  1171.  LDD  #cc63+0
  1172.  PSHS D
  1173.  JSR errrpt
  1174.  LEAS 2,S
  1175.  LDD  #0
  1176.  PSHS D
  1177.  JSR exit
  1178.  LEAS 2,S
  1179. cc70
  1180.  LDD  #0
  1181.  STD  0,S
  1182. cc71
  1183.  LDD  0,S
  1184.  PSHS D
  1185.  LDD  #4
  1186.  CMPD ,S++
  1187.  LBLE cc72
  1188.  LDD  wqptr
  1189.  ADDD #1
  1190.  ADDD #1
  1191.  STD  wqptr
  1192.  SUBD #1
  1193.  SUBD #1
  1194.  PSHS D
  1195.  LDD  6,S
  1196.  PSHS D
  1197.  LDD  4,S
  1198.  ADDD #1
  1199.  STD  4,S
  1200.  SUBD #1
  1201.  PSHS D
  1202.  ADDD ,S++
  1203.  ADDD ,S++
  1204.  PSHS D
  1205.  LDD  [,S++]
  1206.  STD  [,S++]
  1207.  JMP cc71
  1208. cc72
  1209.  LEAS 2,S
  1210.  RTS
  1211. cc63 FCB 116,111,111,32,109,97,110,121,32,97
  1212.  FCB 99,116,105,118,101,32,119,104,105,108
  1213.  FCB 101,115,0
  1214.  GLOBAL delwhile
  1215. delwhile
  1216.  JSR readwhil
  1217.  CMPD #0
  1218.  LBEQ cc74
  1219.  LDD  wqptr
  1220.  PSHS D
  1221.  LDD  #4
  1222.  PSHS D
  1223.  ADDD ,S++
  1224.  PULS X
  1225.  PSHS D
  1226.  TFR  X,D
  1227.  SUBD ,S++
  1228.  STD  wqptr
  1229. cc74
  1230.  RTS
  1231.  GLOBAL readwhil
  1232. readwhil
  1233.  LDD  wqptr
  1234.  PSHS D
  1235.  LDD  #wq
  1236.  CMPD ,S++
  1237.  LBNE cc75
  1238.  LDD  #cc73+0
  1239.  PSHS D
  1240.  JSR errrpt
  1241.  LEAS 2,S
  1242.  LDD  #0
  1243.  RTS
  1244. cc75
  1245.  LDD  wqptr
  1246.  PSHS D
  1247.  LDD  #4
  1248.  PSHS D
  1249.  ADDD ,S++
  1250.  PULS X
  1251.  PSHS D
  1252.  TFR  X,D
  1253.  SUBD ,S++
  1254.  RTS
  1255. cc76
  1256.  RTS
  1257. cc73 FCB 110,111,32,97,99,116,105,118,101,32
  1258.  FCB 119,104,105,108,101,115,0
  1259.  GLOBAL ch
  1260. ch
  1261.  LDD  #line
  1262.  ADDD lptr
  1263.  PSHS D
  1264.  LDB  [,S++]
  1265.  SEX
  1266.  PSHS D
  1267.  LDD  #127
  1268.  ANDA ,S+
  1269.  ANDB ,S+
  1270.  RTS
  1271.  GLOBAL nch
  1272. nch
  1273.  JSR ch
  1274.  CMPD #0
  1275.  LBEQ cc78
  1276.  LDD  #line
  1277.  PSHS D
  1278.  LDD  lptr
  1279.  ADDD #1
  1280.  ADDD ,S++
  1281.  PSHS D
  1282.  LDB  [,S++]
  1283.  SEX
  1284.  PSHS D
  1285.  LDD  #127
  1286.  ANDA ,S+
  1287.  ANDB ,S+
  1288.  RTS
  1289. cc78
  1290.  LDD  #0
  1291.  RTS
  1292.  GLOBAL gch
  1293. gch
  1294.  JSR ch
  1295.  CMPD #0
  1296.  LBEQ cc79
  1297.  LDD  #line
  1298.  PSHS D
  1299.  LDD  lptr
  1300.  ADDD #1
  1301.  STD  lptr
  1302.  SUBD #1
  1303.  ADDD ,S++
  1304.  PSHS D
  1305.  LDB  [,S++]
  1306.  SEX
  1307.  PSHS D
  1308.  LDD  #127
  1309.  ANDA ,S+
  1310.  ANDB ,S+
  1311.  RTS
  1312. cc79
  1313.  LDD  #0
  1314.  RTS
  1315.  GLOBAL kill
  1316. kill
  1317.  LDD  #0
  1318.  STD  lptr
  1319.  LDD  #line
  1320.  ADDD lptr
  1321.  PSHS D
  1322.  LDD  #0
  1323.  STB  [,S++]
  1324.  RTS
  1325.  GLOBAL inbyte
  1326. inbyte
  1327. cc80
  1328.  JSR ch
  1329.  PSHS D
  1330.  LDD  #0
  1331.  CMPD ,S++
  1332.  LBNE cc81
  1333.  JSR inline
  1334.  LDD  eof
  1335.  CMPD #0
  1336.  LBEQ cc82
  1337.  LDD  #0
  1338.  RTS
  1339. cc82
  1340.  JSR preproce
  1341.  JMP cc80
  1342. cc81
  1343.  JSR gch
  1344.  RTS
  1345.  GLOBAL inchar
  1346. inchar
  1347.  JSR ch
  1348.  PSHS D
  1349.  LDD  #0
  1350.  CMPD ,S++
  1351.  LBNE cc83
  1352.  JSR inline
  1353. cc83
  1354.  LDD  eof
  1355.  CMPD #0
  1356.  LBEQ cc84
  1357.  LDD  #0
  1358.  RTS
  1359. cc84
  1360.  JSR gch
  1361.  RTS
  1362.  GLOBAL inline
  1363. inline
  1364.  LEAS -4,S
  1365. cc85
  1366.  LDD  #1
  1367.  CMPD #0
  1368.  LBEQ cc86
  1369.  LDD  input
  1370.  PSHS D
  1371.  LDD  #0
  1372.  CMPD ,S++
  1373.  LBNE cc87
  1374.  LDD  #1
  1375.  STD  eof
  1376. cc87
  1377.  LDD  eof
  1378.  CMPD #0
  1379.  LBEQ cc88
  1380.  LEAS 4,S
  1381.  RTS
  1382. cc88
  1383.  JSR CCPOLL
  1384.  CMPD #0
  1385.  LBEQ cc89
  1386.  LDD  #2
  1387.  PSHS D
  1388.  JSR getc
  1389.  LEAS 2,S
  1390.  PSHS D
  1391.  LDD  #3
  1392.  CMPD ,S++
  1393.  LBNE cc90
  1394.  LDD  #0
  1395.  PSHS D
  1396.  JSR exit
  1397.  LEAS 2,S
  1398. cc90
  1399. cc89
  1400.  LEAY 0,S
  1401.  TFR  Y,D
  1402.  PSHS D
  1403.  LDD  input2
  1404.  STD  [,S++]
  1405.  PSHS D
  1406.  LDD  #0
  1407.  CMPD ,S++
  1408.  LBNE cc91
  1409.  LEAY 0,S
  1410.  TFR  Y,D
  1411.  PSHS D
  1412.  LDD  input
  1413.  STD  [,S++]
  1414. cc91
  1415.  JSR kill
  1416. cc92
  1417.  LEAY 2,S
  1418.  TFR  Y,D
  1419.  PSHS D
  1420.  LDD  2,S
  1421.  PSHS D
  1422.  JSR getc
  1423.  LEAS 2,S
  1424.  STD  [,S++]
  1425.  PSHS D
  1426.  LDD  #0
  1427.  CMPD ,S++
  1428.  LBGE cc93
  1429.  LDD  2,S
  1430.  PSHS D
  1431.  LDD  #13
  1432.  CMPD ,S++
  1433.  BEQ  *+7
  1434.  LDD  #0
  1435.  BRA  *+5
  1436.  LDD  #1
  1437.  CMPD #1
  1438.  LBEQ cc95
  1439.  LDD  lptr
  1440.  PSHS D
  1441.  LDD  #80
  1442.  PSHS D
  1443.  LDD  #1
  1444.  PULS X
  1445.  PSHS D
  1446.  TFR  X,D
  1447.  SUBD ,S++
  1448.  CMPD ,S++
  1449.  BLE  *+7
  1450.  LDD  #0
  1451.  BRA  *+5
  1452.  LDD  #1
  1453.  CMPD #1
  1454.  LBEQ cc95
  1455.  LDD  #0
  1456.  JMP cc96
  1457. cc95
  1458.  LDD  #1
  1459. cc96
  1460.  CMPD #0
  1461.  LBEQ cc94
  1462.  JMP cc93
  1463. cc94
  1464.  LDD  #line
  1465.  PSHS D
  1466.  LDD  lptr
  1467.  ADDD #1
  1468.  STD  lptr
  1469.  SUBD #1
  1470.  ADDD ,S++
  1471.  PSHS D
  1472.  LDD  4,S
  1473.  STB  [,S++]
  1474.  JMP cc92
  1475. cc93
  1476.  LDD  #line
  1477.  ADDD lptr
  1478.  PSHS D
  1479.  LDD  #0
  1480.  STB  [,S++]
  1481.  LDD  2,S
  1482.  PSHS D
  1483.  LDD  #0
  1484.  CMPD ,S++
  1485.  LBLT cc97
  1486.  LDD  0,S
  1487.  PSHS D
  1488.  JSR fclose
  1489.  LEAS 2,S
  1490.  LDD  input2
  1491.  CMPD #0
  1492.  LBEQ cc98
  1493.  LDD  #0
  1494.  STD  input2
  1495.  JMP cc99
  1496. cc98
  1497.  LDD  #0
  1498.  STD  input
  1499. cc99
  1500. cc97
  1501.  LDD  lptr
  1502.  CMPD #0
  1503.  LBEQ cc100
  1504.  LDD  ctext
  1505.  CMPD #0
  1506.  LBEQ cc102 _
  1507.  LDD  cmode
  1508.  CMPD #0
  1509.  LBEQ cc102 _
  1510.  LDD  #1
  1511. cc102
  1512.  CMPD #0
  1513.  LBEQ cc101
  1514.  LDD  #59
  1515.  PSHS D
  1516.  LDD  output
  1517.  PSHS D
  1518.  JSR cout
  1519.  LEAS 4,S
  1520.  LDD  #line
  1521.  PSHS D
  1522.  LDD  output
  1523.  PSHS D
  1524.  JSR sout
  1525.  LEAS 4,S
  1526.  LDD  #13
  1527.  PSHS D
  1528.  LDD  output
  1529.  PSHS D
  1530.  JSR cout
  1531.  LEAS 4,S
  1532. cc101
  1533.  LDD  #0
  1534.  STD  lptr
  1535.  LDD  #cc77+0
  1536.  PSHS D
  1537.  JSR match
  1538.  LEAS 2,S
  1539.  CMPD #0
  1540.  LBEQ cc103
  1541.  LDD  iflevel
  1542.  ADDD #1
  1543.  STD  iflevel
  1544.  LDD  skipleve
  1545.  CMPD #0
  1546.  LBEQ cc104
  1547.  JMP cc85
  1548. cc104
  1549.  JSR blanks
  1550.  LDD  #line
  1551.  ADDD lptr
  1552.  PSHS D
  1553.  JSR findmac
  1554.  LEAS 2,S
  1555.  PSHS D
  1556.  LDD  #0
  1557.  CMPD ,S++
  1558.  LBNE cc105
  1559.  LDD  iflevel
  1560.  STD  skipleve
  1561. cc105
  1562.  JMP cc85
  1563. cc103
  1564.  LDD  #cc77+7
  1565.  PSHS D
  1566.  JSR match
  1567.  LEAS 2,S
  1568.  CMPD #0
  1569.  LBEQ cc106
  1570.  LDD  iflevel
  1571.  ADDD #1
  1572.  STD  iflevel
  1573.  LDD  skipleve
  1574.  CMPD #0
  1575.  LBEQ cc107
  1576.  JMP cc85
  1577. cc107
  1578.  JSR blanks
  1579.  LDD  #line
  1580.  ADDD lptr
  1581.  PSHS D
  1582.  JSR findmac
  1583.  LEAS 2,S
  1584.  CMPD #0
  1585.  LBEQ cc108
  1586.  LDD  iflevel
  1587.  STD  skipleve
  1588. cc108
  1589.  JMP cc85
  1590. cc106
  1591.  LDD  #cc77+15
  1592.  PSHS D
  1593.  JSR match
  1594.  LEAS 2,S
  1595.  CMPD #0
  1596.  LBEQ cc109
  1597.  LDD  iflevel
  1598.  CMPD #0
  1599.  LBEQ cc110
  1600.  LDD  skipleve
  1601.  PSHS D
  1602.  LDD  iflevel
  1603.  CMPD ,S++
  1604.  LBNE cc111
  1605.  LDD  #0
  1606.  STD  skipleve
  1607.  JMP cc112
  1608. cc111
  1609.  LDD  skipleve
  1610.  PSHS D
  1611.  LDD  #0
  1612.  CMPD ,S++
  1613.  LBNE cc113
  1614.  LDD  iflevel
  1615.  STD  skipleve
  1616. cc113
  1617. cc112
  1618.  JMP cc114
  1619. cc110
  1620.  LDD  #cc77+21
  1621.  PSHS D
  1622.  JSR errrpt
  1623.  LEAS 2,S
  1624. cc114
  1625.  JMP cc85
  1626. cc109
  1627.  LDD  #cc77+40
  1628.  PSHS D
  1629.  JSR match
  1630.  LEAS 2,S
  1631.  CMPD #0
  1632.  LBEQ cc115
  1633.  LDD  iflevel
  1634.  CMPD #0
  1635.  LBEQ cc116
  1636.  LDD  skipleve
  1637.  PSHS D
  1638.  LDD  iflevel
  1639.  CMPD ,S++
  1640.  LBNE cc117
  1641.  LDD  #0
  1642.  STD  skipleve
  1643. cc117
  1644.  LDD  iflevel
  1645.  SUBD #1
  1646.  STD  iflevel
  1647.  JMP cc118
  1648. cc116
  1649.  LDD  #cc77+47
  1650.  PSHS D
  1651.  JSR errrpt
  1652.  LEAS 2,S
  1653. cc118
  1654.  JMP cc85
  1655. cc115
  1656.  LDD  skipleve
  1657.  CMPD #0
  1658.  LBEQ cc119
  1659.  JMP cc85
  1660. cc119
  1661.  JMP cc86
  1662. cc100
  1663.  JMP cc85
  1664. cc86
  1665.  LEAS 4,S
  1666.  RTS
  1667. cc77 FCB 35,105,102,100,101,102,0,35,105,102
  1668.  FCB 110,100,101,102,0,35,101,108,115,101
  1669.  FCB 0,110,111,32,109,97,116,99,104,105
  1670.  FCB 110,103,32,35,105,102,46,46,46,0
  1671.  FCB 35,101,110,100,105,102,0,110,111,32
  1672.  FCB 109,97,116,99,104,105,110,103,32,35
  1673.  FCB 105,102,46,46,46,0
  1674.  END
  1675.