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