home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / sound / midi / mbv.asm < prev    next >
Assembly Source File  |  1988-03-20  |  110KB  |  2,358 lines

  1.     TITLE    Video, etc. Data for Modular Sequencer
  2.     NAME    MBV
  3.     .SALL
  4. ;==============================================================
  5. ; MusicBox Modular Sequencer, Version 2
  6. ; Video screen data
  7. ;--------------------------------------------------------------
  8. ; author: John Dunn
  9. ; date:   03/07/86
  10. ; update: 03/20/88
  11. ;--------------------------------------------------------------
  12. ; COPYRIGHT (C) 1986 John Dunn, All Rights Reserved 
  13. ; Entered into the Public Domain, March 20, 1988
  14. ;
  15. ; Use and copying of this software and preparation of derivative works
  16. ; based upon this software are permitted.  Any distribution of this
  17. ; software or derivative works must comply with all applicable United
  18. ; States export control laws.
  19. ; This software is made available AS IS, and the author makes no warranty 
  20. ; about the software, its performance, or its conformity to any specification.
  21. ; Any person obtaining a copy of this software is requested to send their
  22. ; name and address address to:
  23. ;
  24. ;       John Dunn, Senior Research Fellow
  25. ;       Time Arts Inc.
  26. ;       3436 Mendocino Ave.
  27. ;       Santa Rosa, CA 95401
  28. ;
  29. ;==============================================================
  30.     include    order.asm
  31. ;--------------------------------------------------------------
  32.         include equates.asm
  33. ;--------------------------------------------------------------
  34. _TEXT   SEGMENT
  35.         ASSUME DS:DGROUP, CS:_TEXT
  36.         include extrn.asm
  37.         extrn work:near
  38. _TEXT   ENDS
  39. ;--------------------------------------------------------------
  40. _DATA   SEGMENT
  41.         ASSUME DS:DGROUP, CS:_TEXT
  42. ;--------------------------------------------------------------
  43. ; video data for modules
  44. ; Data format:
  45. ;       word0:  number of lines in the module
  46. ;       word1:  absolute offset of source module on master screen
  47. ;       word2,3,4:  att/char of the 3 characters in the line
  48. ;       word5,6,7:  next line, etc
  49. ;       entire list ends with -1
  50. ;
  51.         even
  52.         public  _modtxt
  53. _modtxt equ     $
  54.         public  $beta          ; real time clock
  55. $beta   dw      (?beta-$beta)/6,        0000
  56.         dw      rde+004h,whi+0e1h,whi+'0' 
  57.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  58.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  59.         dw      yel+0fbh,blu+'0' ,blu+'0'
  60.         dw      yel+0afh,blu+'0' ,blu+'0'
  61.         dw      yel+'&' ,blu+'0' ,blu+'0'
  62. ?beta   equ     $
  63.         public  $secs          ; real time clock
  64. $secs   dw      (?secs-$secs)/6,        0000
  65.         dw      yel+03ah,whi+092h,whi+'0' 
  66.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  67.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  68.         dw      yel+'0' ,yel+'0' ,yel+'0' 
  69.         dw      yel+0fbh,blu+'0' ,blu+'0'
  70.         dw      yel+'m' ,blu+'0' ,blu+'0'
  71. ?secs   equ     $
  72.         public  $lambda        ; real time clock
  73. $lambda dw      (?lambda-$lambda)/6,        0000
  74.         dw      rde+004h,whi+0e2h,whi+'0' 
  75.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  76.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  77.         dw      yel+0fbh,blu+'0' ,blu+'0'
  78.         dw      yel+0afh,blu+'0' ,blu+'0'
  79.         dw      yel+'&' ,blu+'0' ,blu+'0'
  80. ?lambda equ     $
  81.         public  $mclk           ; loop-driven clock
  82. $mclk   dw      (?mclk-$mclk)/6,        0000
  83.         dw      rde+004h,whi+0b3h,whi+'0' 
  84.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  85.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  86.         dw      yel+0fbh,blu+'0' ,blu+'0'
  87.         dw      yel+'o' ,blu+'0' ,blu+'0'
  88. ?mclk   equ     $
  89.         public  $mclock        ; mesure clock
  90. $mclock dw      (?mclock-$mclock)/6,        0000
  91.         dw      rde+004h,whi+0bah,whi+'0' 
  92.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  93.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  94.         dw      yel+0fbh,blu+'0' ,blu+'0'
  95.         dw      yel+09bh,blu+'0' ,blu+'0'
  96. ?mclock equ     $
  97.         public  $muclk        ; real time clock
  98. $muclk  dw      (?muclk-$muclk)/6,        0000
  99.         dw      rde+004h,whi+0e6h,whi+'0' 
  100.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  101.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  102.         dw      yel+0fbh,blu+'0' ,blu+'0'
  103.         dw      yel+09bh,blu+'0' ,blu+'0'
  104. ?muclk equ     $
  105.         public  $gamma        ; real time clock
  106. $gamma  dw      (?gamma-$gamma)/6,        0000
  107.         dw      rde+004h,whi+0e7h,whi+'0' 
  108.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  109.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  110.         dw      yel+0fbh,blu+'0' ,blu+'0'
  111.         dw      yel+09bh,blu+'0' ,blu+'0'
  112.         dw      yel+'o' ,blu+'0' ,blu+'0'
  113. ?gamma equ     $
  114.         public  $clock          ; note clock
  115. $clock  dw      (?clock-$clock)/6,      0000
  116.         dw      rde+004h,whi+00dh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  117.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  118.         dw      yel+0fbh,blu+'0' ,blu+'0'
  119.         dw      yel+015h,blu+'0' ,blu+'1'
  120.         dw      yel+00dh,blu+'0' ,blu+'3'
  121.         dw      yel+'s' ,blu+'0' ,blu+'0'
  122.         dw      yel+'o' ,blu+'0' ,blu+'0'
  123.         dw      yel+'v' ,blu+'0' ,blu+'1'
  124. ?clock  equ     $
  125.         public  $klock          ; note clock
  126. $klock  dw      (?klock-$klock)/6,      0000
  127.         dw      rde+004h,whi+00eh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  128.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  129.         dw      yel+0fbh,blu+'0' ,blu+'0'
  130.         dw      yel+015h,blu+'0' ,blu+'1'
  131.         dw      yel+00dh,blu+'0' ,blu+'3'
  132.         dw      yel+'s' ,blu+'0' ,blu+'0'
  133.         dw      yel+'o' ,blu+'0' ,blu+'0'
  134.         dw      yel+'v' ,blu+'0' ,blu+'1'
  135. ?klock  equ     $
  136.         public  $alpha          ; master control
  137. $alpha  dw      (?alpha-$alpha)/6,      0000
  138.         dw      rde+004h,whi+0e0h,whi+'$'
  139.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  140.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  141.         dw      yel+0fbh,blu+'0' ,blu+'0'
  142.         dw      yel+'@' ,blu+'0' ,blu+'0'
  143.         dw      yel+0e8h,blu+'0' ,blu+'0'
  144.         dw      yel+0eah,blu+'0' ,blu+'1'
  145.         dw      yel+'|' ,blu+'0' ,blu+'4'
  146.         dw      yel+00dh,blu+'0' ,blu+'3'
  147.         dw      yel+004h,blu+'7' ,blu+'8'
  148.         dw      yel+'?' ,blu+'0' ,blu+'0'
  149.         dw      yel+'s' ,blu+'0' ,blu+'0'
  150.         dw      yel+0edh,blu+'0' ,blu+'0'
  151.         dw      yel+0feh,yel+'1' ,yel+'0' 
  152. ?alpha  equ     $
  153.         public  $wseq           ; staged sequencer
  154. $wseq   dw      (?wseq-$wseq)/6,        0000
  155.         dw      yel+03ah,whi+'w' ,whi+'0'
  156.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  157.         dw      yel+01bh,cyn+'0' ,cyn+'0'
  158.         dw      yel+040h,blu+'0' ,blu+'0' 
  159.         dw      0c30h   ,blu+'0' ,blu+'0' ,yel+'1' ,blu+'0' ,blu+'0' 
  160.         dw      yel+'2' ,blu+'0' ,blu+'0' ,yel+'3' ,blu+'0' ,blu+'0' 
  161.         dw      yel+'4' ,blu+'0' ,blu+'0' ,yel+'5' ,blu+'0' ,blu+'0' 
  162.         dw      yel+'6' ,blu+'0' ,blu+'0' ,yel+'7' ,blu+'0' ,blu+'0' 
  163.         dw      yel+'8' ,blu+'0' ,blu+'0' ,yel+'9' ,blu+'0' ,blu+'0' 
  164.         dw      yel+'A' ,blu+'0' ,blu+'0' ,yel+'B' ,blu+'0' ,blu+'0' 
  165.         dw      yel+'C' ,blu+'0' ,blu+'0' ,yel+'D' ,blu+'0' ,blu+'0' 
  166.         dw      yel+'E' ,blu+'0' ,blu+'0' ,yel+'F' ,blu+'0' ,blu+'0' 
  167. ?wseq   equ     $
  168.         public  $xseq           ; staged sequencer
  169. $xseq   dw      (?xseq-$xseq)/6,        0000
  170.         dw      yel+03ah,whi+'x' ,whi+'0'
  171.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  172.         dw      yel+01bh,cyn+'0' ,cyn+'0'
  173.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  174.         dw      0c30h   ,blu+'0' ,blu+'0' ,yel+'1' ,blu+'0' ,blu+'0' 
  175.         dw      yel+'2' ,blu+'0' ,blu+'0' ,yel+'3' ,blu+'0' ,blu+'0' 
  176.         dw      yel+'4' ,blu+'0' ,blu+'0' ,yel+'5' ,blu+'0' ,blu+'0' 
  177.         dw      yel+'6' ,blu+'0' ,blu+'0' ,yel+'7' ,blu+'0' ,blu+'0' 
  178. ?xseq   equ     $
  179.         public  $yseq           ; staged sequencer
  180. $yseq   dw      (?yseq-$yseq)/6,        0000
  181.         dw      yel+03ah,whi+'y' ,whi+'0'
  182.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  183.         dw      yel+01bh,cyn+'0' ,cyn+'0'
  184.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  185.         dw      0c30h   ,blu+'0' ,blu+'0' ,yel+'1' ,blu+'0' ,blu+'0' 
  186.         dw      yel+'2' ,blu+'0' ,blu+'0' ,yel+'3' ,blu+'0' ,blu+'0' 
  187. ?yseq   equ     $
  188.         public  $zseq           ; staged sequencer
  189. $zseq   dw      (?zseq-$zseq)/6,        0000
  190.         dw      yel+03ah,whi+'z' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  191.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+040h,blu+'0' ,blu+'0' 
  192.         dw      0c30h   ,blu+'0' ,blu+'0' ,yel+'1' ,blu+'0' ,blu+'0' 
  193. ?zseq   equ     $
  194.         public  $useq           ; switch seq
  195. $useq   dw      (?useq-$useq)/6,        0000
  196.         dw      yel+03ah,whi+'u' ,whi+'0'
  197.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  198.         dw      yel+01bh,cyn+'0' ,cyn+'0'
  199.         dw      yel+'&' ,blu+'0' ,blu+'0' 
  200.         dw      yel+'&' ,blu+'0' ,blu+'0' 
  201.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  202.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  203. ?useq   equ     $
  204.         public  $vseq           ; switch seq
  205. $vseq   dw      (?vseq-$vseq)/6,        0000
  206.         dw      yel+03ah,whi+'v' ,whi+'0'
  207.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  208.         dw      yel+01bh,cyn+'0' ,cyn+'0'
  209.         dw      yel+'&' ,blu+'0' ,blu+'0' 
  210.         dw      yel+'&' ,blu+'0' ,blu+'0' 
  211.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  212.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  213.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  214. ?vseq   equ     $
  215.         public  $euseq          ; shift sequencer
  216. $euseq  dw      (?euseq-$euseq)/6,      0000
  217.         dw      mag+0f9h,whi+090h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  218.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  219.         dw      yel+003h,blu+'0' ,blu+'0'
  220.         dw      yel+01ah,blu+'0' ,blu+'0' 
  221.         dw      yel+0afh,blu+'0' ,blu+'0' 
  222.         dw      yel+0eah,blu+'0' ,blu+'1'
  223.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  224. ?euseq  equ     $
  225.         public  $puseq          ; address sequencer
  226. $puseq  dw      (?puseq-$puseq)/6,      0000
  227.         dw      yel+03ah,whi+'P' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  228.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  229.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+014h,blu+'0' ,blu+'0' 
  230.         dw      yel+0eah,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  231.         dw      yel+026h,blu+'F' ,blu+'F' 
  232. ?puseq  equ     $
  233.         public  $quseq          ; address sequencer
  234. $quseq  dw      (?quseq-$quseq)/6,      0000
  235.         dw      yel+03ah,whi+'Q' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  236.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  237.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+014h,blu+'0' ,blu+'0' 
  238.         dw      yel+012h,blu+'0' ,blu+'0' 
  239. ?quseq  equ     $
  240.         public  $ruseq          ; address sequencer
  241. $ruseq  dw      (?ruseq-$ruseq)/6,      0000
  242.         dw      yel+03ah,whi+'R' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  243.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  244.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+014h,blu+'0' ,blu+'0' 
  245.         dw      yel+012h,blu+'0' ,blu+'0' 
  246. ?ruseq  equ     $
  247.         public  $suseq          ; address sequencer
  248. $suseq  dw      (?suseq-$suseq)/6,      0000
  249.         dw      yel+03ah,whi+'S' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  250.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  251.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+014h,blu+'0' ,blu+'0' 
  252.         dw      yel+012h,blu+'0' ,blu+'0' 
  253. ?suseq  equ     $
  254.         public  $tuseq          ; address sequencer
  255. $tuseq  dw      (?tuseq-$tuseq)/6,      0000
  256.         dw      yel+03ah,whi+'T' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  257.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  258.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+014h,blu+'0' ,blu+'0' 
  259.         dw      yel+012h,blu+'0' ,blu+'0' 
  260. ?tuseq  equ     $
  261.         public  $pseq          ; step sequencer
  262. $pseq   dw      (?pseq-$pseq)/6,        0000
  263.         dw      mag+0f9h,whi+'p' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  264.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  265.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+0eah,blu+'0' ,blu+'0' 
  266.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+026h,blu+'F' ,blu+'F' 
  267. ?pseq  equ     $
  268.         public  $qseq          ; step sequencer
  269. $qseq   dw      (?qseq-$qseq)/6,        0000
  270.         dw      mag+0f9h,whi+'q' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  271.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  272.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+012h,blu+'0' ,blu+'0' 
  273. ?qseq  equ     $
  274.         public  $rseq          ; step sequencer
  275. $rseq   dw      (?rseq-$rseq)/6,        0000
  276.         dw      mag+0f9h,whi+'r' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  277.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  278.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+012h,blu+'0' ,blu+'0' 
  279. ?rseq   equ     $
  280.         public  $sseq          ; step sequencer
  281. $sseq   dw      (?sseq-$sseq)/6,        0000
  282.         dw      mag+0f9h,whi+'s' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  283.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  284.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+012h,blu+'0' ,blu+'0' 
  285. ?sseq  equ     $
  286.         public  $tseq          ; step sequencer
  287. $tseq   dw      (?tseq-$tseq)/6,        0000
  288.         dw      mag+0f9h,whi+'t' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  289.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  290.         dw      yel+040h,blu+'0' ,blu+'0' ,yel+012h,blu+'0' ,blu+'0' 
  291. ?tseq  equ     $
  292.         public  $domute         ; master control
  293. $domute dw      (?domute-$domute)/6,      0000
  294.         dw      yel+03ah,whi+0e8h,whi+'0'
  295.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  296.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  297.         dw      yel+'0' ,blu+'0' ,blu+'0'
  298.         dw      yel+'8' ,blu+'0' ,blu+'0'
  299.         dw      yel+0afh,blu+'0' ,blu+'0'
  300.         dw      yel+'&' ,blu+'0' ,blu+'0'
  301. ?domute equ     $
  302.         public  $gatel          ; show byte to leds 0-7
  303. $gatel  dw      (?gatel-$gatel)/6,      0000
  304.         dw      yel+03ah,whi+';' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  305.         dw      yel+01ah,blu+'0' ,blu+'0' 
  306.         dw      rde+004h,yel+02dh,yel+'0' ,rde+004h,yel+02dh,yel+'1' 
  307.         dw      rde+004h,yel+02dh,yel+'2' ,rde+004h,yel+02dh,yel+'3' 
  308.         dw      rde+004h,yel+02dh,yel+'4' ,rde+004h,yel+02dh,yel+'5' 
  309.         dw      rde+004h,yel+02dh,yel+'6' ,rde+004h,yel+02dh,yel+'7' 
  310. ?gatel  equ     $
  311.         public  $gout          ; do byte to leds 0-7
  312. $gout   dw      (?gout-$gout)/6,      0000
  313.         dw      yel+03ah,whi+0feh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  314.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  315.         dw      yel+'0' ,blu+'0' ,blu+'0' ,yel+'1' ,blu+'0' ,blu+'0' 
  316.         dw      yel+'2' ,blu+'0' ,blu+'0' ,yel+'3' ,blu+'0' ,blu+'0' 
  317.         dw      yel+'4' ,blu+'0' ,blu+'0' ,yel+'5' ,blu+'0' ,blu+'0' 
  318.         dw      yel+'6' ,blu+'0' ,blu+'0' ,yel+'7' ,blu+'0' ,blu+'0' 
  319. ?gout   equ     $
  320.         public  $iclock          ; interference clock
  321. $iclock dw      (?iclock-$iclock)/6,    0000
  322.         dw      rde+004h,whi+003h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  323.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  324.         dw      yel+0fbh,blu+'0' ,blu+'0' 
  325.         dw      yel+003h,blu+'0' ,blu+'0' 
  326.         dw      yel+003h,blu+'0' ,blu+'0' 
  327.         dw      yel+003h,blu+'0' ,blu+'0' 
  328.         dw      yel+003h,blu+'0' ,blu+'0' 
  329. ?iclock equ     $
  330.         public  $kclock          ; interference clock
  331. $kclock dw      (?kclock-$kclock)/6,    0000
  332.         dw      rde+004h,whi+09bh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  333.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  334.         dw      yel+003h,blu+'0' ,blu+'0' 
  335.         dw      yel+0fbh,blu+'0' ,blu+'0' 
  336.         dw      yel+09bh,blu+'0' ,blu+'0' 
  337.         dw      yel+09bh,blu+'0' ,blu+'0' 
  338.         dw      yel+09bh,blu+'0' ,blu+'0' 
  339.         dw      yel+09bh,blu+'0' ,blu+'0' 
  340. ?kclock equ     $
  341.         public  $icount          ; addresser/counter
  342. $icount dw      (?icount-$icount)/6,    0000
  343.         dw      yel+03ah,whi+'I' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  344.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  345.         dw      yel+003h,blu+'0' ,blu+'0' ,yel+0fbh,blu+'0' ,blu+'0' 
  346.         dw      yel+0f1h,blu+'0' ,blu+'0' 
  347. ?icount equ     $
  348.         public  $ocount          ; addresser/counter
  349. $ocount dw      (?ocount-$ocount)/6,    0000
  350.         dw      yel+03ah,whi+'O' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  351.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  352.         dw      yel+003h,blu+'0' ,blu+'0' ,yel+0fbh,blu+'0' ,blu+'0' 
  353.         dw      yel+'&' ,blu+'0' ,blu+'0' 
  354. ?ocount equ     $
  355.         public  $jcount          ; addresser/counter
  356. $jcount dw      (?jcount-$jcount)/6,    0000
  357.         dw      yel+03ah,whi+'J' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  358.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  359.         dw      yel+003h,blu+'0' ,blu+'0' ,yel+0fbh,blu+'0' ,blu+'0' 
  360.         dw      yel+02bh,blu+'0' ,blu+'0' 
  361. ?jcount equ     $
  362.         public  $kcount          ; addresser/counter
  363. $kcount dw      (?kcount-$kcount)/6,    0000
  364.         dw      yel+03ah,whi+'K' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  365.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  366.         dw      yel+003h,blu+'0' ,blu+'0' ,yel+0fbh,blu+'0' ,blu+'0' 
  367.         dw      yel+02bh,blu+'0' ,blu+'0' 
  368.         dw      yel+0f1h,blu+'0' ,blu+'0' ,yel+023h,blu+'0' ,blu+'0' 
  369. ?kcount equ     $
  370.         public  $lcount          ; addresser/counter
  371. $lcount dw      (?lcount-$lcount)/6,    0000
  372.         dw      yel+03ah,whi+'L' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  373.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  374.         dw      yel+003h,blu+'0' ,blu+'0' ,yel+0fbh,blu+'0' ,blu+'0' 
  375.         dw      yel+02bh,blu+'0' ,blu+'0' 
  376.         dw      yel+0f1h,blu+'0' ,blu+'0' 
  377.         dw      yel+018h,blu+'0' ,blu+'0' ,yel+019h,blu+'0' ,blu+'0' 
  378. ?lcount equ     $
  379.         public  $mcount          ; addresser/counter
  380. $mcount dw      (?mcount-$mcount)/6,    0000
  381.         dw      yel+03ah,whi+'M' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  382.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  383.         dw      yel+003h,blu+'0' ,blu+'0' ,yel+0fbh,blu+'0' ,blu+'0' 
  384.         dw      yel+02bh,blu+'0' ,blu+'0' 
  385.         dw      yel+0f1h,blu+'0' ,blu+'0' 
  386.         dw      yel+018h,blu+'0' ,blu+'0' ,yel+019h,blu+'0' ,blu+'0' 
  387. ?mcount equ     $
  388.         public  $ncount          ; addresser/counter
  389. $ncount dw      (?ncount-$ncount)/6,    0000
  390.         dw      yel+03ah,whi+'N' ,whi+'0'
  391.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  392.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  393.         dw      yel+003h,blu+'0' ,blu+'0'
  394.         dw      yel+0fbh,blu+'0' ,blu+'0' 
  395.         dw      yel+040h,blu+'0' ,blu+'0'
  396.         dw      yel+014h,blu+'0' ,blu+'0' 
  397.         dw      yel+'!' ,blu+'0' ,blu+'0'
  398.         dw      yel+0afh,blu+'0' ,blu+'0' 
  399.         dw      yel+0f1h,blu+'0' ,blu+'0' 
  400. ?ncount equ     $
  401.         public  $randp          ; raw random generator
  402. $randp  dw      (?randp-$randp)/6,      0000
  403.         dw      rde+004h,whi+0adh,whi+'0'
  404.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  405.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  406.         dw      yel+003h,blu+'0' ,blu+'0'
  407. ?randp  equ     $
  408.         public  $nrand          ; raw random generator
  409. $nrand  dw      (?nrand-$nrand)/6,      0000
  410.         dw      rde+004h,whi+0c1h,whi+'0'
  411.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  412.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  413.         dw      yel+0fbh,blu+'0' ,blu+'0'
  414.         dw      yel+09bh,blu+'0' ,blu+'0'
  415.         dw      yel+'o' ,blu+'0' ,blu+'0'
  416.         dw      yel+'%' ,blu+'0' ,blu+'0'
  417. ?nrand  equ     $
  418.          public  $trand          ; rand tone row 0-11
  419. $trand  dw      (?trand-$trand)/6,        0000
  420.         dw      yel+03ah,whi+0ech,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  421.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  422.         dw      yel+'@' ,blu+'0' ,blu+'0' ,yel+'!' ,blu+'0' ,blu+'0' 
  423. ?trand  equ     $
  424.         public  $rand          ; random generator
  425. $rand   dw      (?rand-$rand)/6,        0000
  426.         dw      yel+03ah,whi+03fh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  427.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  428.         dw      yel+003h,blu+'0' ,blu+'0' 
  429.         dw      yel+0fbh,blu+'0' ,blu+'0'
  430.         dw      yel+015h,blu+'0' ,blu+'0' 
  431.         dw      yel+018h,blu+'0' ,blu+'0' 
  432.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  433. ?rand   equ     $
  434.         public  $rrand          ; raw random generator
  435. $rrand  dw      (?rrand-$rrand)/6,      0000
  436.         dw      yel+03ah,whi+0a8h,whi+'0'
  437.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  438.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  439.         dw      yel+003h,blu+'0' ,blu+'0' 
  440.         dw      yel+0fbh,blu+'0' ,blu+'0'
  441.         dw      yel+015h,blu+'0' ,blu+'0' 
  442.         dw      yel+0f1h,blu+'0' ,blu+'0' 
  443.         dw      yel+018h,blu+'0' ,blu+'0' 
  444. ?rrand  equ     $
  445.         public  $variz          ; rand tone row 0-11
  446. $variz  dw      (?variz-$variz)/6,        0000
  447.         dw      yel+03ah,whi+'i' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  448.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  449.         dw      yel+09bh,blu+'0' ,blu+'0'
  450.         dw      yel+018h,blu+'0' ,blu+'0' 
  451. ?variz  equ     $
  452.         public  $variy          ; rand tone row 0-11
  453. $variy  dw      (?variy-$variy)/6,        0000
  454.         dw      yel+03ah,whi+'j' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  455.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  456.         dw      yel+09bh,blu+'0' ,blu+'0'
  457.         dw      yel+018h,blu+'0' ,blu+'0' 
  458. ?variy  equ     $
  459.         public  $variv          ; rand tone row 0-11
  460. $variv  dw      (?variv-$variv)/6,        0000
  461.         dw      yel+03ah,whi+'k' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  462.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  463.         dw      yel+003h,blu+'0' ,blu+'0' 
  464.         dw      yel+0fbh,blu+'0' ,blu+'0'
  465.         dw      yel+018h,blu+'0' ,blu+'0' 
  466.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  467. ?variv  equ     $
  468.         public  $varix          ; rand tone row 0-11
  469. $varix  dw      (?varix-$varix)/6,        0000
  470.         dw      yel+03ah,whi+'l' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  471.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  472.         dw      yel+003h,blu+'0' ,blu+'0' 
  473.         dw      yel+0fbh,blu+'0' ,blu+'0'
  474.         dw      yel+0f1h,blu+'0' ,blu+'0' 
  475.         dw      yel+018h,blu+'0' ,blu+'0' 
  476.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  477. ?varix  equ     $
  478.         public  $sandh          ; saple and hold
  479. $sandh  dw      (?sandh-$sandh)/6,      0000
  480.         dw      yel+03ah,whi+015h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  481.         dw      yel+01bh,cyn+'0' ,cyn+'0'
  482.         dw      yel+'=' ,blu+'0' ,blu+'0' 
  483.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  484.         dw      yel+01ah,blu+'0' ,blu+'0' 
  485.         dw      yel+02bh,blu+'0' ,blu+'0' 
  486. ?sandh  equ     $
  487.         public  $andl           ; and logic
  488. $andl   dw      (?andl-$andl)/6,        0000
  489.         dw      yel+03ah,whi+'&' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  490.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+'&' ,blu+'0' ,blu+'0' 
  491.         dw      yel+'&' ,blu+'0' ,blu+'0' ,yel+'x' ,blu+'0' ,blu+'0' 
  492. ?andl   equ     $
  493.         public  $orl            ; or logic
  494. $orl    dw      (?orl-$orl)/6,          0000
  495.         dw      yel+03ah,whi+'|' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  496.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  497.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  498. ?orl    equ     $
  499.         public  $notl           ; not logic
  500. $notl   dw      (?notl-$notl)/6,        0000
  501.         dw      yel+03ah,whi+0edh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  502.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+0edh,blu+'0' ,blu+'0' 
  503.         dw      yel+'&' ,blu+'0' ,blu+'0' 
  504.  ?notl   equ     $
  505.         public  $delay          ; delay
  506. $delay  dw      (?delay-$delay)/6,      0000
  507.         dw      yel+03ah,whi+0D0h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  508.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  509.         dw      yel+09bh,blu+'0' ,blu+'0' ,yel+'+' ,blu+'0' ,blu+'0'
  510. ?delay  equ     $
  511.         public  $slope          ; slope detector
  512. $slope  dw      (?slope-$slope)/6,      0000
  513.         dw      rde+004h,whi+05ch,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  514.         dw      yel+03dh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  515. ?slope  equ     $
  516.         public  $twopwr          ; twopwr/offset
  517. $twopwr dw      (?twopwr-$twopwr)/6,    0000
  518.         dw      yel+03ah,whi+05eh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  519.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+05eh,blu+'0' ,blu+'0' 
  520. ?twopwr  equ     $
  521.         public  $scale          ; scale/offset
  522. $scale  dw      (?scale-$scale)/6,      0000
  523.         dw      yel+03ah,whi+025h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  524.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  525.         dw      yel+025h,blu+'0' ,blu+'0' ,yel+02bh,blu+'0' ,blu+'0' 
  526. ?scale  equ     $
  527.         public  $sumit          ; scaled sum of 4 inputs 
  528. $sumit  dw      (?sumit-$sumit)/6,      0000
  529.         dw      yel+03ah,whi+0e4h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  530.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  531.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  532.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  533.         dw      yel+025h,blu+'0' ,blu+'0' ,yel+02bh,blu+'0' ,blu+'0' 
  534. ?sumit  equ     $
  535.         public  $mixit          ; scaled sum of 4 inputs 
  536. $mixit  dw      (?mixit-$mixit)/6,      0000
  537.         dw      yel+03ah,whi+0eeh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  538.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  539.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+025h,blu+'0' ,blu+'0' 
  540.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+025h,blu+'0' ,blu+'0' 
  541.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+025h,blu+'0' ,blu+'0' 
  542.         dw      yel+02bh,blu+'0' ,blu+'0' 
  543. ?mixit  equ     $
  544.         public  $limit          ; limiter
  545. $limit  dw      (?limit-$limit)/6,      0000
  546.         dw      yel+03ah,whi+017h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  547.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  548.         dw      yel+018h,blu+'0' ,blu+'0' ,yel+019h,blu+'0' ,blu+'0' 
  549. ?limit  equ     $
  550.         public  $apprx          ; rand + scale + offsets
  551. $apprx  dw      (?apprx-$apprx)/6,      0000
  552.         dw      yel+03ah,whi+0F7h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  553.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  554.         dw      yel+018h,blu+'0' ,blu+'0' ,yel+019h,blu+'0' ,blu+'0' 
  555. ?apprx  equ     $
  556.         public  $delta          ; size of change
  557. $delta  dw      (?delta-$delta)/6,      0000
  558.         dw      yel+03ah,whi+07Fh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  559.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  560.         dw      yel+01ah,blu+'0' ,blu+'0'
  561. ?delta  equ     $
  562.         public  $cmak             ; chord generator
  563. $cmak   dw      (?cmak-$cmak)/6,         0000
  564.         dw      yel+03ah,whi+013h,whi+'0' 
  565.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  566.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  567.         dw      yel+014h,blu+'0' ,blu+'0' 
  568.         dw      yel+01ah,blu+'0' ,blu+'0' 
  569.         dw      yel+01ah,blu+'0' ,blu+'0' 
  570.         dw      yel+01ah,blu+'0' ,blu+'0' 
  571.         dw      yel+01ah,blu+'0' ,blu+'0' 
  572.         dw      yel+0a2h,blu+'0' ,blu+'0' 
  573.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  574.         dw      yel+01dh,blu+'0' ,blu+'0' 
  575.         dw      yel+09fh,blu+'0' ,blu+'0' 
  576.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  577. ?cmak   equ     $
  578.         public  $cgen             ; chord generator
  579. $cgen   dw      (?cgen-$cgen)/6,         0000
  580.         dw      yel+03ah,whi+'!' ,whi+'0' 
  581.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  582.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  583.         dw      yel+014h,blu+'0' ,blu+'0' 
  584.         dw      yel+01ah,blu+'0' ,blu+'0' 
  585.         dw      yel+0afh,blu+'0' ,blu+'0' 
  586.         dw      yel+0afh,blu+'0' ,blu+'0' 
  587.         dw      yel+0afh,blu+'0' ,blu+'0' 
  588.         dw      yel+0a2h,blu+'0' ,blu+'0' 
  589.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  590.         dw      yel+01dh,blu+'0' ,blu+'0' 
  591.         dw      yel+09fh,blu+'0' ,blu+'0' 
  592.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  593. ?cgen   equ     $
  594.         public  $cplay            ; chord play
  595. $cplay  dw      (?cplay-$cplay)/6,       0000
  596.         dw      yel+03ah,whi+080h,whi+'0' 
  597.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  598.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  599.         dw      yel+003h,blu+'0' ,blu+'0' 
  600.         dw      yel+014h,blu+'0' ,blu+'0' 
  601.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  602.         dw      yel+01dh,blu+'0' ,blu+'0' 
  603.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  604. ?cplay  equ     $
  605.         public  $cplai            ; chord play
  606. $cplai  dw      (?cplai-$cplai)/6,       0000
  607.         dw      yel+03ah,whi+087h,whi+'0' 
  608.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  609.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  610.         dw      yel+003h,blu+'0' ,blu+'0' 
  611.         dw      yel+014h,blu+'0' ,blu+'0' 
  612.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  613.         dw      yel+01dh,blu+'0' ,blu+'0' 
  614.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  615. ?cplai  equ     $
  616.         public  $cstor            ; chord store
  617. $cstor  dw      (?cstor-$cstor)/6,       0000
  618.         dw      yel+03ah,whi+'@' ,whi+'0' 
  619.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  620.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  621.         dw      yel+014h,blu+'0' ,blu+'0' 
  622.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  623.         dw      yel+01ah,blu+'0' ,blu+'0' 
  624.         dw      yel+0a2h,blu+'0' ,blu+'0' 
  625.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  626.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  627. ?cstor  equ     $
  628.         public  $sort             ; sort
  629. $sort   dw      (?sort-$sort)/6,         0000
  630.         dw      yel+03ah,whi+01dh,whi+'0' 
  631.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  632.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  633.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  634.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  635.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  636.         dw      yel+'c' ,blu+'0' ,blu+'0' 
  637.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  638. ?sort   equ     $
  639.         public  $bassd            ; dithered bass
  640. $bassd  dw      (?bassd-$bassd)/6,         0000
  641.         dw      yel+03ah,whi+':' ,whi+'0' 
  642.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  643.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  644.         dw      yel+003h,blu+'0' ,blu+'0' 
  645.         dw      yel+0fbh,blu+'0' ,blu+'0' 
  646.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  647.         dw      yel+01ah,blu+'0' ,blu+'0' 
  648.         dw      yel+'#' ,blu+'0' ,blu+'0' 
  649.         dw      yel+0f1h,blu+'0' ,blu+'0' 
  650.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  651.         dw      yel+'-' ,blu+'0' ,blu+'0' 
  652. ?bassd  equ     $
  653.         public  $deltat            ; delta test
  654. $deltat dw      (?deltat-$deltat)/6,       0000
  655.         dw      rde+004h,whi+0a6h,whi+'0' 
  656.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  657.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  658.         dw      yel+0fbh,blu+'0' ,blu+'0' 
  659.         dw      yel+07fh,blu+'0' ,blu+'0' 
  660.         dw      yel+093h,blu+'0' ,blu+'0' 
  661.         dw      yel+01ah,blu+'0' ,blu+'0' 
  662. ?deltat equ     $
  663.         public  $mul12            ; * 12
  664. $mul12  dw      (?mul12-$mul12)/6,       0000
  665.         dw      yel+03ah,whi+0f8h,whi+'0' 
  666.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  667.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  668.         dw      yel+01ah,blu+'0' ,blu+'0' 
  669.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  670. ?mul12  equ     $
  671.         public  $div12            ; div 12
  672. $div12  dw      (?div12-$div12)/6,       0000
  673.         dw      yel+03ah,whi+0f6h,whi+'0' 
  674.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  675.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  676.         dw      yel+01ah,blu+'0' ,blu+'0' 
  677. ?div12  equ     $
  678.         public  $mod12            ; mod 12
  679. $mod12  dw      (?mod12-$mod12)/6,       0000
  680.         dw      yel+03ah,whi+0a2h,whi+'0' 
  681.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  682.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  683.         dw      yel+01ah,blu+'0' ,blu+'0' 
  684.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  685. ?mod12  equ     $
  686.         public  $fold            ; fold octave
  687. $fold   dw      (?fold-$fold)/6,       0000
  688.         dw      yel+03ah,whi+0f4h,whi+'0' 
  689.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  690.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  691.         dw      yel+01ah,blu+'0' ,blu+'0' 
  692.         dw      yel+093h,blu+'0' ,blu+'0' 
  693.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  694. ?fold   equ     $
  695.         public  $dither           ; dither
  696. $dither dw      (?dither-$dither)/6,        0000
  697.         dw      yel+03ah,whi+006h,whi+'0' 
  698.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  699.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  700.         dw      yel+003h,blu+'0' ,blu+'0' 
  701.         dw      yel+'%' ,blu+'0' ,blu+'0' 
  702.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  703.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  704.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  705. ?dither equ     $
  706.         public  $dithzr           ; dithzr
  707. $dithzr dw      (?dithzr-$dithzr)/6,        0000
  708.         dw      yel+03ah,whi+005h,whi+'0' 
  709.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  710.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  711.         dw      yel+003h,blu+'0' ,blu+'0' 
  712.         dw      yel+'%' ,blu+'0' ,blu+'0' 
  713.         dw      yel+01ah,blu+'0' ,blu+'0' 
  714.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  715. ?dithzr equ     $
  716.         public  $ddithr           ; dither
  717. $ddithr dw      (?ddithr-$ddithr)/6,        0000
  718.         dw      rde+004h,whi+004h,whi+'0' 
  719.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  720.         dw      yel+'=' ,cyn+'0' ,cyn+'0' 
  721.         dw      yel+003h,blu+'0' ,blu+'0' 
  722.         dw      yel+'%' ,blu+'0' ,blu+'0' 
  723. ?ddithr equ     $
  724.         public  $odds           ; dither
  725. $odds   dw      (?odds-$odds)/6,        0000
  726.         dw      yel+03ah,whi+0ach,whi+'0' 
  727.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  728.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  729.         dw      yel+003h,blu+'0' ,blu+'0' 
  730.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  731.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  732.         dw      yel+'c' ,blu+'0' ,blu+'0' 
  733.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  734.         dw      yel+02bh,blu+'0' ,blu+'0' 
  735. ?odds equ     $
  736.         public  $oddz           ; dither
  737. $oddz   dw      (?oddz-$oddz)/6,        0000
  738.         dw      yel+03ah,whi+084h,whi+'0' 
  739.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  740.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  741.         dw      yel+003h,blu+'0' ,blu+'0' 
  742. ?oddz equ     $
  743.         public  $ratio          ; dither
  744. $ratio  dw      (?ratio-$ratio)/6,    0000
  745.         dw      yel+03ah,whi+08fh,whi+'0' 
  746.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  747.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  748.         dw      yel+003h,blu+'0' ,blu+'0' 
  749.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  750.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  751.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  752.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  753. ?ratio equ     $
  754.         public  $ratiz          ; dither
  755. $ratiz  dw      (?ratiz-$ratiz)/6,    0000
  756.         dw      yel+03ah,whi+08eh,whi+'0' 
  757.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  758.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  759.         dw      yel+003h,blu+'0' ,blu+'0' 
  760.         dw      yel+'%' ,blu+'0' ,blu+'0' 
  761.         dw      yel+'%' ,blu+'0' ,blu+'0' 
  762.         dw      yel+'%' ,blu+'0' ,blu+'0' 
  763.         dw      yel+'%' ,blu+'0' ,blu+'0' 
  764. ?ratiz equ     $
  765.         public  $filter         ; size of change
  766. $filter dw      (?filter-$filter)/6,    0000
  767.         dw      yel+03ah,whi+09Fh,whi+'0' 
  768.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  769.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  770.         dw      yel+003h,blu+'0' ,blu+'0' 
  771.         dw      yel+01ah,blu+'0' ,blu+'0' 
  772.         dw      yel+09fh,blu+'0' ,blu+'0' 
  773.         dw      yel+02bh,blu+'0' ,blu+'0' 
  774. ?filter equ     $
  775.         public  $fflop          ; flip flop
  776. $fflop  dw      (?fflop-$fflop)/6,      0000
  777.         dw      rde+004h,whi+0e9h,whi+'0' 
  778.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  779.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  780.         dw      yel+073h,blu+'0' ,blu+'0' 
  781.         dw      yel+072h,blu+'0' ,blu+'0' 
  782. ?fflop equ     $
  783.         public  $union          ; time union
  784. $union  dw      (?union-$union)/6,      0000
  785.         dw      rde+004h,whi+0efh,whi+'0' 
  786.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  787.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  788.         dw      yel+'t' ,blu+'0' ,blu+'0' 
  789.         dw      yel+'s' ,blu+'0' ,blu+'0' 
  790. ?union equ     $
  791.         public  $passt          ; pass thru
  792. $passt  dw      (?passt-$passt)/6,      0000
  793.         dw      yel+03ah,whi+0d6h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  794.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  795.         dw      yel+0abh,blu+'0' ,blu+'0' 
  796.         dw      yel+'1' ,blu+'0' ,blu+'0' 
  797.         dw      yel+'2' ,blu+'0' ,blu+'0' 
  798. ?passt equ     $
  799.         public  $passq          ; pass thru
  800. $passq  dw      (?passq-$passq)/6,      0000
  801.         dw      yel+03ah,whi+0b7h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  802.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  803.         dw      yel+0abh,blu+'0' ,blu+'0' 
  804.         dw      yel+'1' ,blu+'0' ,blu+'0' 
  805.         dw      yel+'2' ,blu+'0' ,blu+'0' 
  806.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  807. ?passq equ     $
  808.         public  $rangep         ; bounds check
  809. $rangep dw      (?rangep-$rangep)/6,    0000
  810.         dw      rde+004h,whi+0cah,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  811.         dw      yel+03dh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  812.         dw      yel+018h,blu+'0' ,blu+'0' ,yel+019h,blu+'0' ,blu+'0' 
  813. ?rangep equ     $
  814.         public  $quant          ; quantize
  815. $quant  dw      (?quant-$quant)/6,        0000
  816.         dw      yel+03ah,whi+0fch,whi+'0' 
  817.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  818.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  819.         dw      yel+01ah,blu+'0' ,blu+'0' 
  820.         dw      yel+0f6h,blu+'0' ,blu+'0' 
  821.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  822.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  823.         dw      yel+'c' ,blu+'0' ,blu+'0' 
  824.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  825.         dw      yel+'e' ,blu+'0' ,blu+'0' 
  826.         dw      yel+'f' ,blu+'0' ,blu+'0' 
  827.         dw      yel+'g' ,blu+'0' ,blu+'0' 
  828.         dw      yel+'h' ,blu+'0' ,blu+'0' 
  829. ?quant  equ     $
  830.         public  $lastv         ; last change
  831. $lastv dw      (?lastv-$lastv)/6,        0000
  832.         dw      yel+03ah,whi+00ch,whi+'0' 
  833.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  834.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  835.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  836.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  837.         dw      yel+'c' ,blu+'0' ,blu+'0' 
  838.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  839.         dw      yel+'e' ,blu+'0' ,blu+'0' 
  840.         dw      yel+'f' ,blu+'0' ,blu+'0' 
  841.         dw      yel+'g' ,blu+'0' ,blu+'0' 
  842.         dw      yel+'h' ,blu+'0' ,blu+'0' 
  843. ?lastv equ     $
  844.         public  $xcall          ; external call
  845. $xcall  dw      (?xcall-$xcall)/6,        0000
  846.         dw      yel+03ah,whi+08ah,whi+'0' 
  847.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  848.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  849.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  850.         dw      yel+08aH,blu+'0' ,blu+'0' 
  851.         dw      yel+'A' ,blu+'0' ,blu+'0' 
  852.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  853.         dw      yel+'B' ,blu+'0' ,blu+'0' 
  854.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  855.         dw      yel+'C' ,blu+'0' ,blu+'0' 
  856.         dw      yel+'c' ,blu+'0' ,blu+'0' 
  857.         dw      yel+'D' ,blu+'0' ,blu+'0' 
  858.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  859. ?xcall  equ     $
  860.         public  $rcall          ; get registers
  861. $rcall  dw      (?rcall-$rcall)/6,        0000
  862.         dw      yel+03ah,whi+088h,whi+'0' 
  863.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  864.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  865.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  866.         dw      yel+'r' ,blu+'0' ,blu+'0' 
  867. ?rcall  equ     $
  868.         public  $tstmob           ; test midi out buffer
  869. $tstmob dw      (?tstmob-$tstmob)/6,        0000
  870.         dw      rde+004h,whi+0f9h,whi+'$' 
  871.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  872.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  873. ?tstmob equ     $
  874.         public  $xmidii           ; get midi input
  875. $xmidii dw      (?xmidii-$xmidii)/6,        0000
  876.         dw      yel+03ah,whi+01ah,whi+'$' 
  877.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  878.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  879.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  880.         dw      yel+0eah,blu+'0' ,blu+'0' 
  881. ?xmidii equ     $
  882.         public  $mpuins           ; mpu input status
  883. $mpuins dw      (?mpuins-$mpuins)/6,        0000
  884.         dw      rde+004h,whi+0abh,whi+'$' 
  885.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  886.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  887.         dw      yel+0fbh,blu+'0' ,blu+'0'
  888.         dw      yel+'&' ,blu+'0' ,blu+'3'
  889. ?mpuins equ     $
  890.         public  $xkbd           ; get keyboard input
  891. $xkbd   dw      (?xkbd-$xkbd)/6,        0000
  892.         dw      yel+03ah,whi+0fbh,whi+'$' 
  893.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  894.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  895.         dw      yel+0fbh,blu+'0' ,blu+'0' 
  896. ?xkbd   equ     $
  897.          public  $poke          ; byte write
  898. $poke   dw      (?poke-$poke)/6,        0000
  899.         dw      yel+03ah,whi+07bh,whi+'0' 
  900.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  901.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  902.         dw      yel+01ah,blu+'0' ,blu+'0' 
  903.         dw      yel+'$' ,blu+'0' ,blu+'0' 
  904.         dw      yel+014h,blu+'0' ,blu+'0' 
  905.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  906. ?poke   equ     $
  907.         public  $peek          ; byte read
  908. $peek   dw      (?peek-$peek)/6,        0000
  909.         dw      yel+03ah,whi+07dh,whi+'0' 
  910.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  911.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  912.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  913.         dw      yel+'$' ,blu+'0' ,blu+'0' 
  914.         dw      yel+014h,blu+'0' ,blu+'0' 
  915.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  916. ?peek   equ     $
  917.         public  $outpb          ; byte output  
  918. $outpb  dw      (?outpb-$outpb)/6,        0000
  919.         dw      yel+03ah,whi+095h,whi+'0' 
  920.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  921.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  922.         dw      yel+01ah,blu+'0' ,blu+'0' 
  923.         dw      yel+'P' ,blu+'0' ,blu+'0' 
  924.         dw      yel+'p' ,blu+'0' ,blu+'0' 
  925. ?outpb  equ     $
  926.         public  $inptb          ; byte input  
  927. $inptb  dw      (?inptb-$inptb)/6,        0000
  928.         dw      yel+03ah,whi+08dh,whi+'0' 
  929.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  930.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  931.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  932.         dw      yel+'P' ,blu+'0' ,blu+'0' 
  933.         dw      yel+'p' ,blu+'0' ,blu+'0' 
  934. ?inptb  equ     $
  935.         public  $emeter         ; indicator meter
  936. $emeter dw      (?emeter-$emeter)/6,        0000
  937.         dw      yel+03ah,whi+096h,whi+'0' 
  938.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  939.         dw      yel+'l' ,blu+'0' ,blu+'0' 
  940.         dw      yel+'r' ,blu+'0' ,blu+'0' 
  941.         dw      yel+'*' ,blu+'0' ,blu+'0' 
  942.         dw      yel+0f9h,rde+'8' ,rde+'8'
  943.         dw      yel+0f9h,yel+'7' ,yel+'7'
  944.         dw      yel+0f9h,yel+'6' ,yel+'6'
  945.         dw      yel+0f9h,yel+'5' ,yel+'5'
  946.         dw      yel+0f9h,yel+'4' ,yel+'4'
  947.         dw      yel+0f9h,yel+'3' ,yel+'3'
  948.         dw      yel+0f9h,yel+'2' ,yel+'2'
  949.         dw      yel+0f9h,yel+'1' ,yel+'1'
  950. ?emeter equ     $
  951.         public  $imeter         ; indicator meter
  952. $imeter dw      (?imeter-$imeter)/6,        0000
  953.         dw      yel+03ah,whi+097h,whi+'0' 
  954.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  955.         dw      yel+'l' ,blu+'0' ,blu+'0' 
  956.         dw      yel+'r' ,blu+'0' ,blu+'0' 
  957.         dw      yel+'%' ,blu+'0' ,blu+'0' 
  958.         dw      yel+0f9h,rde+'8' ,rde+'8'
  959.         dw      yel+0f9h,yel+'7' ,yel+'7'
  960.         dw      yel+0f9h,yel+'6' ,yel+'6'
  961.         dw      yel+0f9h,yel+'5' ,yel+'5'
  962.         dw      yel+0f9h,yel+'4' ,yel+'4'
  963.         dw      yel+0f9h,yel+'3' ,yel+'3'
  964.         dw      yel+0f9h,yel+'2' ,yel+'2'
  965.         dw      yel+0f9h,yel+'1' ,yel+'1'
  966. ?imeter equ     $
  967.         public  $higher         ; latch highest input
  968. $higher dw      (?higher-$higher)/6,    0000
  969.         dw      yel+03ah,whi+01eh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  970.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  971.         dw      yel+0fbh,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  972. ?higher equ     $
  973.         public  $lower          ; latch lowest input
  974. $lower  dw      (?lower-$lower)/6,      0000
  975.         dw      yel+03ah,whi+01fh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  976.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  977.         dw      yel+0fbh,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  978. ?lower  equ     $
  979.         public  $maxf           ; latch highest input
  980. $maxf   dw      (?maxf-$maxf)/6,        0000
  981.         dw      yel+03ah,whi+018h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  982.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  983.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  984. ?maxf   equ     $
  985.         public  $minf           ; latch lowest input
  986. $minf   dw      (?minf-$minf)/6,        0000
  987.         dw      yel+03ah,whi+019h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  988.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  989.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  990. ?minf   equ     $
  991.         public  $rshift         ; right shift
  992. $rshift dw      (?rshift-$rshift)/6,    0000
  993.         dw      yel+03ah,whi+0AFh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  994.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  995.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+0AFh,blu+'0' ,blu+'0' 
  996.         dw      yel+'&' ,blu+'0' ,blu+'0'
  997. ?rshift equ     $
  998.         public  $lshift         ; left shift
  999. $lshift dw      (?lshift-$lshift)/6,    0000
  1000.         dw      yel+03ah,whi+0AEh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1001.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1002.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+0AEh,blu+'0' ,blu+'0' 
  1003.         dw      yel+'&' ,blu+'0' ,blu+'0'
  1004. ?lshift equ     $
  1005.         public  $times          ; multiply & divide
  1006. $times  dw      (?times-$times)/6,      0000
  1007.         dw      yel+03ah,whi+'*' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1008.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1009.         dw      yel+'*' ,blu+'0' ,blu+'0' 
  1010.         dw      yel+'*' ,blu+'0' ,blu+'0' 
  1011.         dw      yel+0f6h,blu+'0' ,blu+'0' 
  1012. ?times  equ     $
  1013.         public  $stopo          ; sync interface
  1014. $stopo  dw      (?stopo-$stopo)/6,      0000
  1015.         dw      rde+004h,whi+09dh,whi+'$'
  1016.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1017.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1018.         dw      yel+'S' ,blu+'0' ,blu+'0'
  1019.         dw      yel+'G' ,blu+'0' ,blu+'0'
  1020.         dw      yel+'C' ,blu+'0' ,blu+'0'
  1021.         dw      yel+'R' ,blu+'0' ,blu+'0'
  1022.         dw      yel+'T' ,blu+'0' ,blu+'0'
  1023.         dw      yel+'!' ,blu+'0' ,blu+'0'
  1024. ?stopo  equ     $
  1025.         public  $modulo          ; divide
  1026. $modulo dw      (?modulo-$modulo)/6,      0000
  1027.         dw      yel+03ah,whi+'/' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1028.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1029.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1030.         dw      yel+'/' ,blu+'0' ,blu+'0' 
  1031. ?modulo equ     $
  1032.         public  $plus           ; add
  1033. $plus   dw      (?plus-$plus)/6,        0000
  1034.         dw      yel+03ah,whi+'+' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1035.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1036.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  1037.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  1038.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  1039. ?plus   equ     $
  1040.         public  $plusm           ; add, subtract
  1041. $plusm  dw      (?plusm-$plusm)/6,      0000
  1042.         dw      yel+03ah,whi+0f1h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1043.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1044.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  1045.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  1046.         dw      yel+'-' ,blu+'0' ,blu+'0' 
  1047. ?plusm  equ     $
  1048.         public  $plusn           ; add, subtract
  1049. $plusn  dw      (?plusn-$plusn)/6,      0000
  1050.         dw      yel+03ah,whi+'-' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1051.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1052.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  1053.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  1054.         dw      yel+'-' ,blu+'0' ,blu+'0' 
  1055. ?plusn  equ     $
  1056.         public  $change          ; true if change
  1057. $change dw      (?change-$change)/6,    0000
  1058.         dw      rde+004h,whi+00bh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1059.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1060.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1061. ?change equ     $
  1062.         public  $equal          ; true if equal
  1063. $equal  dw      (?equal-$equal)/6,      0000
  1064.         dw      rde+004h,whi+03dh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1065.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1066.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  1067. ?equal  equ     $
  1068.         public  $nequal          ; true if nequal
  1069. $nequal dw      (?nequal-$nequal)/6,    0000
  1070.         dw      rde+004h,whi+0A7h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1071.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1072.         dw      yel+01ah,blu+'0' ,blu+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  1073. ?nequal  equ     $
  1074.         public  $great          ; true if greater
  1075. $great  dw      (?great-$great)/6,      0000
  1076.         dw      rde+004h,whi+03eh,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1077.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1078.         dw      yel+061h,blu+'0' ,blu+'0' ,yel+062h,blu+'0' ,blu+'0' 
  1079. ?great  equ     $
  1080.         public  $lessp          ; true if less
  1081. $lessp  dw      (?lessp-$lessp)/6,      0000
  1082.         dw      rde+004h,whi+03ch,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1083.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1084.         dw      yel+061h,blu+'0' ,blu+'0' ,yel+062h,blu+'0' ,blu+'0' 
  1085. ?lessp  equ     $
  1086.         public  $bitsp          ; true if mask bit nz
  1087. $bitsp  dw      (?bitsp-$bitsp)/6,      0000
  1088.         dw      rde+004h,whi+0c2h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1089.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1090.         dw      yel+01dh,blu+'0' ,blu+'0' 
  1091.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1092. ?bitsp  equ     $
  1093.         public  $bitsq          ; true if mask bit nz
  1094. $bitsq  dw      (?bitsq-$bitsq)/6,      0000
  1095.         dw      rde+004h,whi+0d1h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1096.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1097.         dw      yel+'&' ,blu+'0' ,blu+'0' ,yel+'&' ,blu+'0' ,blu+'0' 
  1098.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1099. ?bitsq  equ     $
  1100.         public  $maskl          ; AND mask
  1101. $maskl  dw      (?maskl-$maskl)/6,        0000
  1102.         dw      yel+03ah,whi+0a9h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1103.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1104.         dw      yel+'&' ,blu+'0' ,blu+'0' ,yel+'&' ,blu+'0' ,blu+'0' 
  1105.         dw      yel+0AEh,blu+'0' ,blu+'0' 
  1106. ?maskl  equ     $
  1107.         public  $maskr          ; AND mask
  1108. $maskr  dw      (?maskr-$maskr)/6,        0000
  1109.         dw      yel+03ah,whi+0aah,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1110.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1111.         dw      yel+'&' ,blu+'0' ,blu+'0' ,yel+'&' ,blu+'0' ,blu+'0' 
  1112.         dw      yel+0AFh,blu+'0' ,blu+'0' 
  1113. ?maskr  equ     $
  1114.         public  $mask           ; AND mask
  1115. $mask   dw      (?mask-$mask)/6,        0000
  1116.         dw      yel+03ah,whi+091h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1117.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1118.         dw      yel+'&' ,blu+'0' ,blu+'0' ,yel+'&' ,blu+'0' ,blu+'0' 
  1119.         dw      yel+'+' ,blu+'0' ,blu+'0' 
  1120. ?mask   equ     $
  1121.         public  $truep          ; true if zero
  1122. $truep  dw      (?truep-$truep)/6,      0000
  1123.         dw      rde+004h,whi+022h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1124.         dw      yel+03dh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  1125. ?truep  equ     $
  1126.         public  $zerop          ; true if zero
  1127. $zerop  dw      (?zerop-$zerop)/6,      0000
  1128.         dw      rde+004h,whi+007h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1129.         dw      yel+03dh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  1130. ?zerop  equ     $
  1131.          public  $minusp          ; true if minus
  1132. $minusp dw      (?minusp-$minusp)/6,    0000
  1133.         dw      rde+004h,whi+0a4h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1134.         dw      yel+03dh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  1135. ?minusp  equ     $
  1136.         public  $asciz          ; asciz readout
  1137. $asciz  dw      (?asciz-$asciz)/6,    0000
  1138.         dw      yel+03ah,whi+086h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1139.         dw      yel+' ' ,yel+' ' ,yel+' ' 
  1140.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  1141.         dw      yel+014h,blu+'0' ,blu+'0' 
  1142.         dw      yel+012h,blu+'0' ,blu+'0' 
  1143. ?asciz equ     $
  1144.         public  $ascis          ; ascis readout
  1145. $ascis  dw      (?ascis-$ascis)/6,    0000
  1146.         dw      yel+03ah,whi+083h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1147.         dw      yel+' ' ,yel+' ' ,yel+' ' 
  1148.         dw      yel+'@' ,blu+'0' ,blu+'0' 
  1149.         dw      yel+014h,blu+'0' ,blu+'0' 
  1150.         dw      yel+012h,blu+'0' ,blu+'0' 
  1151. ?ascis equ     $
  1152.         public  $ascii          ; ascii readout
  1153. $ascii  dw      (?ascii-$ascii)/6,    0000
  1154.         dw      yel+03ah,whi+0a0h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1155.         dw      yel+' ' ,yel+' ' ,yel+' ' 
  1156.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1157.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1158.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1159. ?ascii equ     $
  1160.         public  $decin          ; deciaml readout
  1161. $decin  dw      (?decin-$decin)/6,    0000
  1162.         dw      yel+03ah,whi+001h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1163.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1164.         dw      yel+'0' ,yel+'0' ,yel+'0' 
  1165.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1166. ?decin equ     $
  1167.         public  $decim          ; deciaml readout
  1168. $decim  dw      (?decim-$decim)/6,    0000
  1169.         dw      yel+03ah,whi+'.' ,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1170.         dw      yel+'0' ,yel+'0' ,yel+'0' 
  1171.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1172. ?decim equ     $
  1173.         public  $noter          ; deciaml readout
  1174. $noter  dw      (?noter-$noter)/6,    0000
  1175.         dw      yel+03ah,whi+0d5h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1176.         dw      yel+'0' ,yel+'0' ,yel+'0' 
  1177.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1178. ?noter equ     $
  1179.         public  $negate           ; negate
  1180. $negate dw      (?negate-$negate)/6,    0000
  1181.         dw      yel+03ah,whi+0A5h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1182.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  1183. ?negate  equ     $
  1184.         public  $value          ; numerical value
  1185. $value  dw      (?value-$value)/6,      0000
  1186.         dw      yel+03ah,whi+023h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1187.         dw      yel+01bh,cyn+'0' ,cyn+'0' ,yel+01ah,blu+'0' ,blu+'0' 
  1188. ?value  equ     $
  1189.         public  $pusha          ; on/off pushbutton
  1190. $pusha  dw      (?pusha-$pusha)/6,      0000
  1191.         dw      rde+004h,whi+0e3h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1192.         dw      yel+03dh,cyn+'0' ,cyn+'0' ,yel+009h,mag+0b0h,mag+0b0h
  1193. ?pusha  equ     $
  1194.         public  $pushb          ; oneshot pushbutton
  1195. $pushb  dw      (?pushb-$pushb)/6,      0000
  1196.         dw      rde+004h,whi+009h,whi+'0' ,yel+0f9h,gry+'0' ,gry+'0' 
  1197.         dw      yel+03dh,cyn+'0' ,cyn+'0' ,yel+009h,mag+0b0h,mag+0b0h
  1198. ?pushb  equ     $
  1199.         public  $pushc          ; inc/dec pushbutton
  1200. $pushc  dw      (?pushc-$pushc)/6,      0000
  1201.         dw      yel+03ah,whi+012h,whi+'0' 
  1202.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1203.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1204.         dw      yel+'#' ,mag+'0' ,mag+'0' 
  1205.         dw      yel+009h,mag+01eh,mag+01fh
  1206. ?pushc  equ     $
  1207.         public  $ltimer          ; loop timer
  1208. $ltimer dw      (?ltimer-$ltimer)/6,    0000
  1209.         dw      rde+004h,whi+0d9h,whi+'0'
  1210.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1211.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1212.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1213.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  1214.         dw      yel+'h' ,blu+'0' ,blu+'0' 
  1215. ?ltimer equ     $
  1216.         public  $ctimer          ; clock timer
  1217. $ctimer dw      (?ctimer-$ctimer)/6,    0000
  1218.         dw      rde+004h,whi+0beh,whi+'0'
  1219.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1220.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1221.         dw      yel+003h,blu+'0' ,blu+'0' 
  1222.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1223.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  1224.         dw      yel+'h' ,blu+'0' ,blu+'0' 
  1225. ?ctimer equ     $
  1226.         public  $atimer          ; abs timer
  1227. $atimer dw      (?atimer-$atimer)/6,    0000
  1228.         dw      rde+004h,whi+0bch,whi+'0'
  1229.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1230.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1231.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1232.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  1233.         dw      yel+'h' ,blu+'0' ,blu+'0' 
  1234.         dw      yel+0afh,blu+'0' ,blu+'0' 
  1235. ?atimer equ     $
  1236.         public  $stimer          ; sec timer
  1237. $stimer dw      (?stimer-$stimer)/6,    0000
  1238.         dw      rde+004h,whi+0bdh,whi+'0'
  1239.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1240.         dw      yel+03dh,cyn+'0' ,cyn+'0' 
  1241.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1242.         dw      yel+'d' ,blu+'0' ,blu+'0' 
  1243.         dw      yel+'h' ,blu+'0' ,blu+'0' 
  1244.         dw      yel+0afh,blu+'0' ,blu+'0' 
  1245. ?stimer equ     $
  1246.         public  $slew           ; slew value over time
  1247. $slew   dw      (?slew-$slew )/6,       0000
  1248.         dw      yel+03ah,whi+0e5h,whi+'0' 
  1249.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1250.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1251.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  1252.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  1253.         dw      yel+'r' ,blu+'0' ,blu+'0' 
  1254. ?slew   equ     $
  1255.         public  $xslew          ; xslew value over time
  1256. $xslew  dw      (?xslew-$xslew )/6,       0000
  1257.         dw      yel+03ah,whi+0ebh,whi+'0' 
  1258.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1259.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1260.         dw      yel+'a' ,blu+'0' ,blu+'0' 
  1261.         dw      yel+'b' ,blu+'0' ,blu+'0' 
  1262.         dw      yel+'t' ,blu+'0' ,blu+'0' 
  1263. ?xslew  equ     $
  1264.         public  $mapo          ; midi control mapping
  1265. $mapo   dw      (?mapo-$mapo)/6,      0000
  1266.         dw      yel+03ah,whi+094h,whi+'$' 
  1267.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1268.         dw      yel+'V' ,mag+'0' ,mag+'0' 
  1269.         dw      yel+'M' ,mag+'0' ,mag+'0' 
  1270.         dw      yel+'A' ,mag+'0' ,mag+'0' 
  1271.         dw      yel+'B' ,mag+'0' ,mag+'0' 
  1272.         dw      yel+'C' ,mag+'0' ,mag+'0' 
  1273.         dw      yel+'D' ,mag+'0' ,mag+'0' 
  1274.         dw      yel+'1' ,mag+'0' ,mag+'0' 
  1275.         dw      yel+'2' ,mag+'0' ,mag+'0' 
  1276. ?mapo   equ     $
  1277.         public  $mapp          ; midi control mapping
  1278. $mapp   dw      (?mapp-$mapp)/6,      0000
  1279.         dw      yel+03ah,whi+081h,whi+'$' 
  1280.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1281.         dw      yel+'V' ,mag+'0' ,mag+'0' 
  1282.         dw      yel+'M' ,mag+'0' ,mag+'0' 
  1283.         dw      yel+'A' ,mag+'0' ,mag+'0' 
  1284.         dw      yel+'B' ,mag+'0' ,mag+'0' 
  1285.         dw      yel+'C' ,mag+'0' ,mag+'0' 
  1286.         dw      yel+'D' ,mag+'0' ,mag+'0' 
  1287.         dw      yel+'1' ,mag+'0' ,mag+'0' 
  1288.         dw      yel+'2' ,mag+'0' ,mag+'0' 
  1289. ?mapp   equ     $
  1290.         public  $sxget          ; midi sys excl get
  1291. $sxget  dw      (?sxget-$sxget)/6,      0000
  1292.         dw      yel+03ah,whi+010h,whi+'0' 
  1293.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1294.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1295.         dw      yel+'@' ,blu+'0' ,blu+'0'
  1296.         dw      yel+014h,blu+'0' ,blu+'0' 
  1297.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1298.         dw      yel+0afh,blu+'0' ,blu+'0' 
  1299. ?sxget  equ     $
  1300.         public  $sxput          ; midi sys excl send
  1301. $sxput  dw      (?sxput-$sxput)/6,      0000
  1302.         dw      yel+03ah,whi+011h,whi+'0' 
  1303.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1304.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1305.         dw      yel+'@' ,blu+'0' ,blu+'0'
  1306.         dw      yel+014h,blu+'0' ,blu+'0' 
  1307.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1308.         dw      yel+0afh,blu+'0' ,blu+'0' 
  1309. ?sxput  equ     $
  1310.         public  $addswa         ; prog switch out
  1311. $addswa dw      (?addswa-$addswa)/6,    0000
  1312.         dw      yel+03ah,whi+0f0h,whi+'0' 
  1313.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1314.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1315.         dw      yel+0f0h,blu+'0' ,blu+'0'
  1316.         dw      yel+'0' ,blu+'0' ,blu+'0'
  1317.         dw      yel+'1' ,blu+'0' ,blu+'0'
  1318.         dw      yel+'2' ,blu+'0' ,blu+'0'
  1319.         dw      yel+'3' ,blu+'0' ,blu+'0'
  1320.         dw      yel+'4' ,blu+'0' ,blu+'0'
  1321.         dw      yel+'5' ,blu+'0' ,blu+'0'
  1322.         dw      yel+'6' ,blu+'0' ,blu+'0'
  1323.         dw      yel+'7' ,blu+'0' ,blu+'0'
  1324. ?addswa equ     $
  1325.         public  $psouta         ; prog switch out
  1326. $psouta dw      (?psouta-$psouta)/6,    0000
  1327.         dw      yel+03ah,whi+'a' ,whi+'0' 
  1328.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1329.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1330.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1331.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1332.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1333.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1334.         dw      yel+0a9h,blu+'0' ,blu+'0'
  1335. ?psouta equ     $
  1336.         public  $psoutb         ; prog switch out
  1337. $psoutb dw      (?psoutb-$psoutb)/6,    0000
  1338.         dw      yel+03ah,whi+'b' ,whi+'0' 
  1339.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1340.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1341.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1342.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1343.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1344.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1345.         dw      yel+0aah,blu+'0' ,blu+'0'
  1346. ?psoutb equ     $
  1347.         public  $psoutc         ; prog switch out
  1348. $psoutc dw      (?psoutc-$psoutc)/6,    0000
  1349.         dw      yel+03ah,whi+'c' ,whi+'0' 
  1350.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1351.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1352.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1353.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1354.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1355.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1356.         dw      yel+0a9h,blu+'0' ,blu+'0'
  1357. ?psoutc equ     $
  1358.         public  $psoutd         ; prog switch out
  1359. $psoutd dw      (?psoutd-$psoutd)/6,    0000
  1360.         dw      yel+03ah,whi+'d' ,whi+'0' 
  1361.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1362.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1363.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1364.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1365.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1366.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1367.         dw      yel+0aah,blu+'0' ,blu+'0'
  1368. ?psoutd equ     $
  1369.         public  $psoute         ; prog switch out
  1370. $psoute dw      (?psoute-$psoute)/6,    0000
  1371.         dw      yel+03ah,whi+'e' ,whi+'0' 
  1372.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1373.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1374.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1375.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1376.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1377.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1378.         dw      yel+0a9h,blu+'0' ,blu+'0'
  1379.         dw      yel+0afh,blu+'0' ,blu+'0'
  1380. ?psoute equ     $
  1381.         public  $psoutf         ; prog switch out
  1382. $psoutf dw      (?psoutf-$psoutf)/6,    0000
  1383.         dw      yel+03ah,whi+'f' ,whi+'0' 
  1384.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1385.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1386.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1387.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1388.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1389.         dw      yel+'+' ,blu+'0' ,blu+'0'
  1390.         dw      yel+0a9h,blu+'0' ,blu+'0'
  1391.         dw      yel+0afh,blu+'0' ,blu+'0'
  1392. ?psoutf equ     $
  1393.         public  $pcouta         ; prog control out
  1394. $pcouta dw      (?pcouta-$pcouta)/6,    0000
  1395.         dw      mag+0f9h,whi+'A' ,whi+'0' 
  1396.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1397.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1398. ?pcouta equ     $
  1399.         public  $pcoutb         ; prog control out
  1400. $pcoutb dw      (?pcoutb-$pcoutb)/6,    0000
  1401.         dw      mag+0f9h,whi+'B' ,whi+'0' 
  1402.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1403.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1404. ?pcoutb equ     $
  1405.         public  $pcoutc         ; prog control out
  1406. $pcoutc dw      (?pcoutc-$pcoutc)/6,    0000
  1407.         dw      mag+0f9h,whi+'C' ,whi+'0' 
  1408.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1409.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1410. ?pcoutc equ     $
  1411.         public  $pcoutd         ; prog control out
  1412. $pcoutd dw      (?pcoutd-$pcoutd)/6,    0000
  1413.         dw      mag+0f9h,whi+'D' ,whi+'0' 
  1414.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1415.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1416. ?pcoutd equ     $
  1417.         public  $pcoute         ; prog control out
  1418. $pcoute dw      (?pcoute-$pcoute)/6,    0000
  1419.         dw      mag+0f9h,whi+'E' ,whi+'0' 
  1420.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1421.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1422. ?pcoute equ     $
  1423.         public  $pcoutf         ; prog control out
  1424. $pcoutf dw      (?pcoutf-$pcoutf)/6,    0000
  1425.         dw      mag+0f9h,whi+'F' ,whi+'0' 
  1426.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1427.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1428. ?pcoutf equ     $
  1429.         public  $pcoutg         ; prog control out
  1430. $pcoutg dw      (?pcoutg-$pcoutg)/6,    0000
  1431.         dw      mag+0f9h,whi+'G' ,whi+'0' 
  1432.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1433.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1434. ?pcoutg equ     $
  1435.         public  $pcouth         ; prog control out
  1436. $pcouth dw      (?pcouth-$pcouth)/6,    0000
  1437.         dw      mag+0f9h,whi+'H' ,whi+'0' 
  1438.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1439.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1440. ?pcouth equ     $
  1441.         public  $pcoutx         ; prog control out
  1442. $pcoutx dw      (?pcoutx-$pcoutx)/6,    0000
  1443.         dw      mag+0f9h,whi+'X' ,whi+'0' 
  1444.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1445.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1446. ?pcoutx equ     $
  1447.         public  $pcouty         ; prog control out
  1448. $pcouty dw      (?pcouty-$pcouty)/6,    0000
  1449.         dw      mag+0f9h,whi+'Y' ,whi+'0' 
  1450.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1451.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1452. ?pcouty equ     $
  1453.         public  $pcoutz         ; prog control out
  1454. $pcoutz dw      (?pcoutz-$pcoutz)/6,    0000
  1455.         dw      mag+0f9h,whi+'Z' ,whi+'0' 
  1456.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1457.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1458. ?pcoutz equ     $
  1459.         public  $progo          ; midi program change
  1460. $progo  dw      (?progo-$progo)/6,      0000
  1461.         dw      yel+03ah,whi+0eah,whi+'0' 
  1462.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1463.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1464.         dw      yel+'@' ,mag+'0' ,mag+'0' 
  1465.         dw      yel+088h,mag+'0' ,mag+'0' 
  1466.         dw      yel+'U' ,mag+'#' ,mag+'#'
  1467.         dw      yel+013h,mag+'#' ,mag+'#'
  1468.         dw      yel+'R' ,mag+'#' ,mag+'#'
  1469.         dw      yel+'S' ,mag+'#' ,mag+'#'
  1470.         dw      yel+'|' ,mag+'0' ,mag+'0' 
  1471.         dw      yel+'X' ,mag+'0' ,mag+'0' 
  1472.         dw      yel+'Y' ,mag+'0' ,mag+'0' 
  1473.         dw      yel+'Z' ,mag+'0' ,mag+'0' 
  1474.         dw      yel+'A' ,mag+'0' ,mag+'0' 
  1475.         dw      yel+'B' ,mag+'0' ,mag+'0' 
  1476.         dw      yel+'C' ,mag+'0' ,mag+'0' 
  1477.         dw      yel+'D' ,mag+'0' ,mag+'0' 
  1478.         dw      yel+'E' ,mag+'0' ,mag+'0' 
  1479.         dw      yel+'e' ,mag+'0' ,mag+'0' 
  1480.         dw      yel+'F' ,mag+'0' ,mag+'0' 
  1481.         dw      yel+'f' ,mag+'0' ,mag+'0' 
  1482.         dw      yel+'G' ,mag+'0' ,mag+'0' 
  1483.         dw      yel+'g' ,mag+'0' ,mag+'0' 
  1484.         dw      yel+'H' ,mag+'0' ,mag+'0' 
  1485.         dw      yel+'h' ,mag+'0' ,mag+'0' 
  1486. ?progo  equ     $
  1487.         public  $noteo          ; midi note output
  1488. $noteo  dw      (?noteo-$noteo)/6,      0000
  1489.         dw      rde+007h,whi+'1' ,whi+'0' 
  1490.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1491.         dw      yel+'c', blu+'0' ,blu+'0' 
  1492.         dw      yel+0e8h,blu+'0' ,blu+'0' 
  1493.         dw      yel+'&', blu+'F' ,blu+'F' 
  1494.         dw      yel+'t', blu+'0' ,blu+'0' 
  1495.         dw      yel+'t', blu+'0' ,blu+'0' 
  1496.         dw      yel+'v', blu+'0' ,blu+'0' 
  1497.         dw      yel+'r', blu+'0' ,blu+'0' 
  1498.         dw      yel+'A', blu+'0' ,blu+'0' ,yel+'a', blu+'0' ,blu+'0' 
  1499.         dw      yel+'B', blu+'0' ,blu+'0' ,yel+'b', blu+'0' ,blu+'0' 
  1500.         dw      yel+'C', blu+'0' ,blu+'0' ,yel+'c', blu+'0' ,blu+'0' 
  1501.         dw      yel+'D', blu+'0' ,blu+'0' ,yel+'d', blu+'0' ,blu+'0' 
  1502. ?noteo  equ     $
  1503.         public  $noteo1          ; midi note output
  1504. $noteo1 dw      (?noteo1-$noteo1)/6,      0000
  1505.         dw      rde+007h,whi+'2' ,whi+'0' 
  1506.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1507.         dw      yel+'c', blu+'0' ,blu+'0' 
  1508.         dw      yel+0e8h,blu+'0' ,blu+'0' 
  1509.         dw      yel+'&', blu+'F' ,blu+'F' 
  1510.         dw      yel+'t', blu+'0' ,blu+'0' 
  1511.         dw      yel+'t', blu+'0' ,blu+'0' 
  1512.         dw      yel+'v', blu+'0' ,blu+'0' 
  1513.         dw      yel+'r', blu+'0' ,blu+'0' 
  1514.         dw      yel+'A', blu+'0' ,blu+'0' ,yel+'a', blu+'0' ,blu+'0' 
  1515.         dw      yel+'B', blu+'0' ,blu+'0' ,yel+'b', blu+'0' ,blu+'0' 
  1516.         dw      yel+'C', blu+'0' ,blu+'0' ,yel+'c', blu+'0' ,blu+'0' 
  1517.         dw      yel+'D', blu+'0' ,blu+'0' ,yel+'d', blu+'0' ,blu+'0' 
  1518. ?noteo1 equ     $
  1519.         public  $noteo2          ; midi note output
  1520. $noteo2 dw      (?noteo2-$noteo2)/6,      0000
  1521.         dw      rde+007h,whi+'3' ,whi+'0' 
  1522.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1523.         dw      yel+'c', blu+'0' ,blu+'0' 
  1524.         dw      yel+0e8h,blu+'0' ,blu+'0' 
  1525.         dw      yel+'&', blu+'F' ,blu+'F' 
  1526.         dw      yel+'t', blu+'0' ,blu+'0' 
  1527.         dw      yel+'t', blu+'0' ,blu+'0' 
  1528.         dw      yel+'v', blu+'0' ,blu+'0' 
  1529.         dw      yel+'r', blu+'0' ,blu+'0' 
  1530.         dw      yel+'A', blu+'0' ,blu+'0' ,yel+'a', blu+'0' ,blu+'0' 
  1531.         dw      yel+'B', blu+'0' ,blu+'0' ,yel+'b', blu+'0' ,blu+'0' 
  1532.         dw      yel+'C', blu+'0' ,blu+'0' ,yel+'c', blu+'0' ,blu+'0' 
  1533.         dw      yel+'D', blu+'0' ,blu+'0' ,yel+'d', blu+'0' ,blu+'0' 
  1534. ?noteo2 equ     $
  1535.         public  $noteo3          ; midi note output
  1536. $noteo3 dw      (?noteo3-$noteo3)/6,      0000
  1537.         dw      rde+007h,whi+'4' ,whi+'0' 
  1538.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1539.         dw      yel+'c', blu+'0' ,blu+'0' 
  1540.         dw      yel+0e8h,blu+'0' ,blu+'0' 
  1541.         dw      yel+'&', blu+'F' ,blu+'F' 
  1542.         dw      yel+'t', blu+'0' ,blu+'0' 
  1543.         dw      yel+'t', blu+'0' ,blu+'0' 
  1544.         dw      yel+'v', blu+'0' ,blu+'0' 
  1545.         dw      yel+'r', blu+'0' ,blu+'0' 
  1546.         dw      yel+'A', blu+'0' ,blu+'0' ,yel+'a', blu+'0' ,blu+'0' 
  1547.         dw      yel+'B', blu+'0' ,blu+'0' ,yel+'b', blu+'0' ,blu+'0' 
  1548.         dw      yel+'C', blu+'0' ,blu+'0' ,yel+'c', blu+'0' ,blu+'0' 
  1549.         dw      yel+'D', blu+'0' ,blu+'0' ,yel+'d', blu+'0' ,blu+'0' 
  1550. ?noteo3 equ     $
  1551.         public  $chano          ; midi channel output
  1552. $chano  dw      (?chano-$chano)/6,      0000
  1553.         dw      rde+007h,whi+09ah,whi+'0' 
  1554.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1555.         dw      yel+'c', blu+'0' ,blu+'0' 
  1556.         dw      yel+0fbh,blu+'0' ,blu+'1' 
  1557.         dw      yel+09eh,blu+'0' ,blu+'0' 
  1558.         dw      yel+'a', blu+'0' ,blu+'0' 
  1559.         dw      yel+'b', blu+'8' ,blu+'0' 
  1560.         dw      yel+'V', blu+'7' ,blu+'F' 
  1561.         dw      yel+'M', blu+'0' ,blu+'0' 
  1562.         dw      yel+'A', blu+'0' ,blu+'0' 
  1563.         dw      yel+'B', blu+'0' ,blu+'0' 
  1564.         dw      yel+'C', blu+'0' ,blu+'0' 
  1565.         dw      yel+'D', blu+'0' ,blu+'0' 
  1566.         dw      yel+'1', blu+'0' ,blu+'0' 
  1567.         dw      yel+'2', blu+'0' ,blu+'0' 
  1568. ?chano  equ     $
  1569.         public  $chanl          ; midi channel output
  1570. $chanl  dw      (?chanl-$chanl)/6,      0000
  1571.         dw      rde+007h,whi+099h,whi+'0' 
  1572.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1573.         dw      yel+'c', blu+'0' ,blu+'0' 
  1574.         dw      yel+0fbh,blu+'0' ,blu+'1' 
  1575.         dw      yel+09eh,blu+'0' ,blu+'0' 
  1576.         dw      yel+'a', blu+'0' ,blu+'0' 
  1577.         dw      yel+'b', blu+'8' ,blu+'0' 
  1578.         dw      yel+'V', blu+'7' ,blu+'F' 
  1579.         dw      yel+'M', blu+'0' ,blu+'0' 
  1580.         dw      yel+'A', blu+'0' ,blu+'0' 
  1581.         dw      yel+'B', blu+'0' ,blu+'0' 
  1582.         dw      yel+'C', blu+'0' ,blu+'0' 
  1583.         dw      yel+'D', blu+'0' ,blu+'0' 
  1584.         dw      yel+'1', blu+'0' ,blu+'0' 
  1585.         dw      yel+'2', blu+'0' ,blu+'0' 
  1586. ?chanl  equ     $
  1587.         public  $sysxo          ; midi sysex output
  1588. $sysxo  dw      (?sysxo-$sysxo)/6,      0000
  1589.         dw      yel+03ah,whi+014h,whi+'0' 
  1590.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1591.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1592.         dw      yel+'1' ,blu+'0' ,blu+'0' 
  1593.         dw      yel+'2' ,blu+'0' ,blu+'0' 
  1594.         dw      yel+'3' ,blu+'0' ,blu+'0' 
  1595.         dw      yel+'4' ,blu+'0' ,blu+'0' 
  1596.         dw      yel+'5' ,blu+'0' ,blu+'0' 
  1597.         dw      yel+'6' ,blu+'0' ,blu+'0' 
  1598.         dw      yel+'7' ,blu+'0' ,blu+'0' 
  1599.         dw      yel+'8' ,blu+'0' ,blu+'0' 
  1600. ?sysxo  equ     $
  1601.         public  $ctrlo          ; midi ctrl output
  1602. $ctrlo  dw      (?ctrlo-$ctrlo)/6,      0000
  1603.         dw      yel+03ah,whi+098h,whi+'0' 
  1604.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1605.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1606.         dw      yel+'c' ,blu+'0' ,blu+'0' 
  1607.         dw      yel+'#' ,blu+'0' ,blu+'0' 
  1608.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1609. ?ctrlo  equ     $
  1610.         public  $patcho         ; midi program change
  1611. $patcho dw      (?patcho-$patcho)/6,      0000
  1612.         dw      yel+03ah,whi+09eh,whi+'0' 
  1613.         dw      yel+0f9h,gry+'0' ,gry+'0' 
  1614.         dw      yel+01bh,cyn+'0' ,cyn+'0' 
  1615.         dw      yel+'c' ,blu+'0' ,blu+'0' 
  1616.         dw      yel+0aah,blu+'0' ,blu+'0' 
  1617.         dw      yel+'!' ,blu+'0' ,blu+'0' 
  1618.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1619. ?patcho equ    $
  1620.         public  $bopo          ; pc timer note output
  1621. $bopo   dw      (?bopo-$bopo)/6,        0000
  1622.         dw      yel+':' ,whi+00fh,whi+'$' ,yel+0f9h,gry+'0' ,gry+'0' 
  1623.         dw      yel+003h,blu+'0' ,blu+'0' 
  1624.         dw      yel+01ah,blu+'0' ,blu+'0' 
  1625. ?bopo   equ     $
  1626.         public  ?modtxt
  1627. ;--------------------------------------------------------------
  1628. ; end of module text
  1629.         dw      -1
  1630. ?modtxt equ     $
  1631. ;--------------------------------------------------------------
  1632. ; this last+1 module text is a buffer used to move a copy
  1633. ; of an existing module.  It must be 25 lines to accommodate
  1634. ; the maximum size module.
  1635. ;
  1636.         public  $dummy          ; 25 line dummy for module text buffer
  1637. $dummy  dw      (?dummy-$dummy)/6,8
  1638.         dw      75 dup(?)
  1639. ?dummy  equ     $
  1640. ;--------------------------------------------------------------
  1641. ; this last+2 is the menu text -- it only looks like a module
  1642. ;
  1643.         public  $menu           ; page #'s and menu
  1644. $menu   dw      (?menu-$menu)/6,0H
  1645.         dw      blu+010h,yel+020h,yel+'0' 
  1646.         dw      blu+010h,yel+020h,yel+'1' 
  1647.         dw      blu+010h,yel+020h,yel+'2' 
  1648.         dw      blu+010h,yel+020h,yel+'3' 
  1649.         dw      blu+010h,yel+020h,yel+034h
  1650.         dw      blu+010h,yel+020h,yel+035h
  1651.         dw      blu+010h,yel+020h,yel+036h
  1652.         dw      blu+010h,yel+020h,yel+037h
  1653.         dw      grn+'E',grn+'S',grn+'C' ; ESC
  1654.         dw      rde+'D',rde+'E',rde+'L' ; DEL
  1655.         dw      yel+'S',yel+'E',yel+'T' ; SET
  1656.         dw      cyn+'H',cyn+'L',cyn+'T' ; HLT
  1657.         dw      grn+'O',grn+'F',grn+'F' ; OFF
  1658.         dw      gry+'0',gry+'0',gry+'0' ; 000
  1659.         dw      gry+'0',gry+'0',gry+'0' ; 000
  1660.         dw      blu+'0',blu+'0',blu+'0' ; 000
  1661.         dw      blu+'0',blu+'0',blu+'0' ; 000
  1662.         dw      yel+'0',blu+':',yel+'1' ; 0:1
  1663.         dw      yel+'2',blu+':',yel+'3' ; 2:3
  1664.         dw      yel+'4',blu+':',yel+'5' ; 4:5
  1665.         dw      yel+'6',blu+':',yel+'7' ; 6:7
  1666.         dw      yel+'8',blu+':',yel+'9' ; 8:9
  1667.         dw      yel+'A',blu+':',yel+'B' ; A:B
  1668.         dw      yel+'C',blu+':',yel+'D' ; C:D
  1669.         dw      yel+'E',blu+':',yel+'F' ; E:F
  1670. ?menu   equ     $
  1671. ;--------------------------------------------------------------
  1672. ; The following table includes an entery for each defined
  1673. ; module.  The format is:
  1674. ;       word0:  module execution address
  1675. ;       word1:  module text address
  1676. ;       word2:  variables space (words) for each active module 
  1677. ;       word3:  address of variable list for module 0
  1678. ;        |
  1679. ;       word18: address of variable list for module 15
  1680. ;               -- set to -1 if it's a system module
  1681. ;       word19: bits set if a module has been deleted, used to reincarnate
  1682. ;       word20: execution address for magenta user input (optional)
  1683. ;
  1684.         even
  1685.         public  _modsrc
  1686. _modsrc  equ     $
  1687.         public @dummy
  1688. @dummy  equ     $
  1689. @beta   dw      offset _text:_beta,     offset dgroup:$beta
  1690.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1691. @secs   dw      offset _text:_secs,     offset dgroup:$secs
  1692.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1693. @lambda dw      offset _text:_lambda,   offset dgroup:$lambda
  1694.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1695. @muclk  dw      offset _text:_muclk,    offset dgroup:$muclk
  1696.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1697. @gamma  dw      offset _text:_gamma,    offset dgroup:$gamma
  1698.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1699. @mclock dw      offset _text:_mclock,   offset dgroup:$mclock
  1700.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1701. @mclk   dw      offset _text:_mclk,     offset dgroup:$mclk
  1702.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1703. @clock  dw      offset _text:_clock,    offset dgroup:$clock
  1704.         dw      08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1705. @klock  dw      offset _text:_klock,    offset dgroup:$klock
  1706.         dw      08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1707. @alpha  dw      offset _text:_alpha,    offset dgroup:$alpha
  1708.         dw      12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0
  1709. @xkbd   dw      offset _text:_xkbd ,    offset dgroup:$xkbd 
  1710.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0
  1711. @tstmob dw      offset _text:_tstmob,   offset dgroup:$tstmob
  1712.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0
  1713. @mpuins dw      offset _text:_mpuins,   offset dgroup:$mpuins
  1714.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0
  1715. @xmidii dw      offset _text:_xmidii,   offset dgroup:$xmidii
  1716.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1717. @domute dw      offset _text:_domute,   offset dgroup:$domute
  1718.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1719. @ltimer dw      offset _text:_ltimer,   offset dgroup:$ltimer
  1720.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1721. @ctimer dw      offset _text:_ctimer,   offset dgroup:$ctimer
  1722.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1723. @atimer dw      offset _text:_atimer,   offset dgroup:$atimer
  1724.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1725. @stimer dw      offset _text:_stimer,   offset dgroup:$stimer
  1726.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1727. @wseq   dw      offset _text:_wseq,     offset dgroup:$wseq
  1728.         dw      17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1729. @xseq   dw      offset _text:_xseq,     offset dgroup:$xseq
  1730.         dw      09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1731. @yseq   dw      offset _text:_yseq,     offset dgroup:$yseq
  1732.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1733. @zseq   dw      offset _text:_zseq,     offset dgroup:$zseq
  1734.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1735. @useq   dw      offset _text:_useq,     offset dgroup:$useq
  1736.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1737. @vseq   dw      offset _text:_vseq,     offset dgroup:$vseq
  1738.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1739. @euseq  dw      offset _text:_euseq,   offset dgroup:$euseq
  1740.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1741.         dw      offset _text:ueuseq
  1742. @puseq  dw      offset _text:_puseq,    offset dgroup:$puseq
  1743.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1744. @quseq  dw      offset _text:_quseq,    offset dgroup:$quseq
  1745.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1746. @ruseq  dw      offset _text:_ruseq,    offset dgroup:$ruseq
  1747.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1748. @suseq  dw      offset _text:_suseq,    offset dgroup:$suseq
  1749.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1750. @tuseq  dw      offset _text:_tuseq,    offset dgroup:$tuseq
  1751.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1752. @pseq   dw      offset _text:_pseq,     offset dgroup:$pseq
  1753.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1754.         dw      offset _text:upseq
  1755. @qseq   dw      offset _text:_qseq,     offset dgroup:$qseq
  1756.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1757.         dw      offset _text:uqseq
  1758. @rseq   dw      offset _text:_rseq,     offset dgroup:$rseq
  1759.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1760.         dw      offset _text:uqseq
  1761. @sseq   dw      offset _text:_sseq,     offset dgroup:$sseq
  1762.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1763.         dw      offset _text:uqseq
  1764. @tseq   dw      offset _text:_tseq,     offset dgroup:$tseq
  1765.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0      
  1766.         dw      offset _text:uqseq
  1767. @gatel  dw      offset _text:_gatel,    offset dgroup:$gatel
  1768.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1769. @gout   dw      offset _text:_gout,     offset dgroup:$gout 
  1770.         dw      09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1771. @iclock dw      offset _text:_iclock,   offset dgroup:$iclock
  1772.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1773. @kclock dw      offset _text:_kclock,   offset dgroup:$kclock
  1774.         dw      10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1775. @ocount dw      offset _text:_ocount,   offset dgroup:$ocount
  1776.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1777. @icount dw      offset _text:_icount,   offset dgroup:$icount
  1778.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1779. @jcount dw      offset _text:_jcount,   offset dgroup:$jcount
  1780.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1781. @kcount dw      offset _text:_kcount,   offset dgroup:$kcount
  1782.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1783. @lcount dw      offset _text:_lcount,   offset dgroup:$lcount
  1784.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1785. @mcount dw      offset _text:_mcount,   offset dgroup:$mcount
  1786.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1787. @ncount dw      offset _text:_ncount,   offset dgroup:$ncount
  1788.         dw      08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1789. @variy  dw      offset _text:_variy,    offset dgroup:$variy
  1790.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1791. @variz  dw      offset _text:_variz,    offset dgroup:$variz
  1792.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1793. @variv  dw      offset _text:_variv,    offset dgroup:$variv
  1794.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1795. @varix  dw      offset _text:_varix,    offset dgroup:$varix
  1796.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1797. @trand  dw      offset _text:_trand,    offset dgroup:$trand
  1798.         dw      09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1799. @nrand  dw      offset _text:_nrand,    offset dgroup:$nrand
  1800.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1801. @randp  dw      offset _text:_randp,    offset dgroup:$randp
  1802.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1803. @rrand  dw      offset _text:_rrand,    offset dgroup:$rrand
  1804.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1805. @twopwr dw      offset _text:_twopwr,   offset dgroup:$twopwr
  1806.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1807. @rand   dw      offset _text:_rand,     offset dgroup:$rand
  1808.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1809. @andl   dw      offset _text:_andl,     offset dgroup:$andl
  1810.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1811. @orl    dw      offset _text:_orl,      offset dgroup:$orl
  1812.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1813. @notl   dw      offset _text:_notl,     offset dgroup:$notl
  1814.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1815. @delay  dw      offset _text:_delay,    offset dgroup:$delay
  1816.         dw      131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1817. @slope  dw      offset _text:_slope,    offset dgroup:$slope
  1818.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1819. @sandh  dw      offset _text:_sandh,    offset dgroup:$sandh
  1820.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1821. @value  dw      offset _text:_value,    offset dgroup:$value
  1822.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1823. @scale  dw      offset _text:_scale,    offset dgroup:$scale
  1824.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1825. @sumit  dw      offset _text:_sumit,    offset dgroup:$sumit
  1826.         dw      07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1827. @mixit  dw      offset _text:_mixit,    offset dgroup:$mixit
  1828.         dw      07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1829. @limit  dw      offset _text:_limit,    offset dgroup:$limit
  1830.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1831. @apprx  dw      offset _text:_apprx,    offset dgroup:$apprx
  1832.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1833. @delta  dw      offset _text:_delta,    offset dgroup:$delta
  1834.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1835. @cmak   dw      offset _text:_cmak,     offset dgroup:$cmak 
  1836.         dw      10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1837. @cgen   dw      offset _text:_cgen,     offset dgroup:$cgen 
  1838.         dw      10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1839. @cplay  dw      offset _text:_cplay,    offset dgroup:$cplay
  1840.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1841. @cplai  dw      offset _text:_cplai,    offset dgroup:$cplai
  1842.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1843. @cstor  dw      offset _text:_cstor,    offset dgroup:$cstor
  1844.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1845. @sort   dw      offset _text:_sort,     offset dgroup:$sort 
  1846.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1847. @bassd  dw      offset _text:_bassd,    offset dgroup:$bassd
  1848.         dw      08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1849. @deltat dw      offset _text:_deltat,   offset dgroup:$deltat
  1850.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1851. @mul12  dw      offset _text:_mul12,    offset dgroup:$mul12
  1852.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1853. @div12  dw      offset _text:_div12,    offset dgroup:$div12
  1854.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1855. @mod12  dw      offset _text:_mod12,    offset dgroup:$mod12
  1856.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1857. @fold   dw      offset _text:_fold,     offset dgroup:$fold
  1858.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1859. @dither dw      offset _text:_dither,   offset dgroup:$dither
  1860.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1861. @dithzr dw      offset _text:_dithzr,   offset dgroup:$dithzr
  1862.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1863. @ddithr dw      offset _text:_ddithr,   offset dgroup:$ddithr
  1864.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1865. @odds   dw      offset _text:_odds,     offset dgroup:$odds
  1866.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1867. @oddz   dw      offset _text:_oddz,     offset dgroup:$oddz
  1868.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1869. @ratio  dw      offset _text:_ratio,    offset dgroup:$ratio
  1870.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1871. @ratiz  dw      offset _text:_ratiz,    offset dgroup:$ratiz
  1872.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1873. @filter dw      offset _text:_filter,   offset dgroup:$filter
  1874.         dw      12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1875. @fflop  dw      offset _text:_fflop,    offset dgroup:$fflop
  1876.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1877. @union  dw      offset _text:_union,    offset dgroup:$union
  1878.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1879. @rangep dw      offset _text:_rangep,   offset dgroup:$rangep
  1880.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1881. @quant  dw      offset _text:_quant,    offset dgroup:$quant
  1882.         dw      10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1883. @lastv  dw      offset _text:_lastv,   offset dgroup:$lastv
  1884.         dw      11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1885. @xcall  dw      offset _text:_xcall,    offset dgroup:$xcall
  1886.         dw      11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1887. @rcall  dw      offset _text:_rcall,    offset dgroup:$rcall
  1888.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1889. @poke   dw      offset _text:_poke,     offset dgroup:$poke
  1890.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1891. @peek   dw      offset _text:_peek,     offset dgroup:$peek
  1892.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1893. @outpb  dw      offset _text:_outpb,    offset dgroup:$outpb
  1894.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1895. @inptb  dw      offset _text:_inptb,    offset dgroup:$inptb
  1896.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1897. @imeter dw      offset _text:_imeter,   offset dgroup:$imeter
  1898.         dw      3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1899. @emeter dw      offset _text:_emeter,   offset dgroup:$emeter
  1900.         dw      3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1901. @higher dw      offset _text:_higher,   offset dgroup:$higher
  1902.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1903. @lower  dw      offset _text:_lower,    offset dgroup:$lower
  1904.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1905. @rshift dw      offset _text:_rshift,   offset dgroup:$rshift
  1906.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1907. @lshift dw      offset _text:_lshift,   offset dgroup:$lshift
  1908.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1909. @modulo dw      offset _text:_modulo,   offset dgroup:$modulo
  1910.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1911. @times  dw      offset _text:_times,    offset dgroup:$times
  1912.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1913. @plus   dw      offset _text:_plus,     offset dgroup:$plus
  1914.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1915. @plusm  dw      offset _text:_plusm,    offset dgroup:$plusm
  1916.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1917. @plusn  dw      offset _text:_plusn,    offset dgroup:$plusn
  1918.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1919. @maxf   dw      offset _text:_maxf,     offset dgroup:$maxf
  1920.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1921. @minf   dw      offset _text:_minf,     offset dgroup:$minf
  1922.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1923. @passt  dw      offset _text:_passt,    offset dgroup:$passt
  1924.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1925. @passq  dw      offset _text:_passq,    offset dgroup:$passq
  1926.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1927. @equal  dw      offset _text:_equal,    offset dgroup:$equal
  1928.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1929. @nequal dw      offset _text:_nequal,   offset dgroup:$nequal
  1930.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1931. @great  dw      offset _text:_great,    offset dgroup:$great
  1932.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1933. @lessp  dw      offset _text:_lessp,    offset dgroup:$lessp
  1934.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1935. @bitsp  dw      offset _text:_bitsp,    offset dgroup:$bitsp
  1936.         dw      02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1937. @bitsq  dw      offset _text:_bitsq,    offset dgroup:$bitsq
  1938.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1939. @maskl  dw      offset _text:_maskl,    offset dgroup:$maskl
  1940.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1941. @maskr  dw      offset _text:_maskr,    offset dgroup:$maskr
  1942.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1943. @mask   dw      offset _text:_mask,     offset dgroup:$mask
  1944.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1945. @truep  dw      offset _text:_truep,    offset dgroup:$truep
  1946.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1947. @zerop  dw      offset _text:_zerop,    offset dgroup:$zerop
  1948.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1949. @minusp dw      offset _text:_minusp,   offset dgroup:$minusp
  1950.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1951. @negate dw      offset _text:_negate,   offset dgroup:$negate
  1952.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1953. @change dw      offset _text:_change,   offset dgroup:$change
  1954.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1955. @ascii  dw      offset _text:_ascii,    offset dgroup:$ascii
  1956.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1957. @asciz  dw      offset _text:_asciz,    offset dgroup:$asciz
  1958.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1959. @ascis  dw      offset _text:_ascis,    offset dgroup:$ascis
  1960.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1961. @decin  dw      offset _text:_decin,    offset dgroup:$decin
  1962.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1963. @decim  dw      offset _text:_decim,    offset dgroup:$decim
  1964.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1965. @noter  dw      offset _text:_noter,    offset dgroup:$noter
  1966.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1967. @sxput  dw      offset _text:_sxput,     offset dgroup:$sxput
  1968.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1969. @sxget  dw      offset _text:_sxget,     offset dgroup:$sxget
  1970.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1971. @slew   dw      offset _text:_slew,      offset dgroup:$slew
  1972.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1973. @xslew  dw      offset _text:_xslew,     offset dgroup:$xslew
  1974.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1975. @stopo  dw      offset _text:_stopo,     offset dgroup:$stopo
  1976.         dw      08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0
  1977. @mapo   dw      offset _text:_mapo,   offset dgroup:$mapo
  1978.         dw      08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0
  1979.         dw      offset _text:umapo
  1980. @mapp   dw      offset _text:_mapp,   offset dgroup:$mapp
  1981.         dw      08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0
  1982.         dw      offset _text:umapp
  1983. @noteo  dw      offset _text:_noteo,  offset dgroup:$noteo
  1984.         dw      18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1985. @noteo1 dw      offset _text:_noteo1,  offset dgroup:$noteo1
  1986.         dw      18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1987. @noteo2 dw      offset _text:_noteo2,  offset dgroup:$noteo2
  1988.         dw      18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1989. @noteo3 dw      offset _text:_noteo3,  offset dgroup:$noteo3
  1990.         dw      18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1991. @chano  dw      offset _text:_chano,  offset dgroup:$chano
  1992.         dw      18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1993. @chanl  dw      offset _text:_chanl,  offset dgroup:$chanl
  1994.         dw      18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1995. @progo  dw      offset _text:_progo,  offset dgroup:$progo
  1996.         dw      52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1997.         dw      offset _text:uprogo
  1998. @sysxo  dw      offset _text:_sysxo,  offset dgroup:$sysxo
  1999.         dw      09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2000. @ctrlo  dw      offset _text:_ctrlo,  offset dgroup:$ctrlo
  2001.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2002. @patcho dw      offset _text:_patcho,  offset dgroup:$patcho
  2003.         dw      04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2004. @bopo   dw      offset _text:_bopo,   offset dgroup:$bopo
  2005.         dw      03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0       
  2006. @pusha  dw      offset _text:_pusha,  offset dgroup:$pusha
  2007.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2008.         dw      offset _text:upusha
  2009. @pushb  dw      offset _text:_pushb,  offset dgroup:$pushb
  2010.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2011.         dw      offset _text:upushb
  2012. @pushc  dw      offset _text:_pushc,  offset dgroup:$pushc
  2013.         dw      01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2014.         dw      offset _text:upushc
  2015. @addswa dw      offset _text:_addswa, offset dgroup:$addswa
  2016.         dw      09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2017. @psouta dw      offset _text:_psouta, offset dgroup:$psouta
  2018.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2019. @psoutb dw      offset _text:_psoutb, offset dgroup:$psoutb
  2020.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2021. @psoutc dw      offset _text:_psoutc, offset dgroup:$psoutc
  2022.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2023. @psoutd dw      offset _text:_psoutd, offset dgroup:$psoutd
  2024.         dw      05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2025. @psoute dw      offset _text:_psoute, offset dgroup:$psoute
  2026.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2027. @psoutf dw      offset _text:_psoutf, offset dgroup:$psoutf
  2028.         dw      06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2029. @pcouta dw      offset _text:_pcouta, offset dgroup:$pcouta
  2030.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2031.         dw      offset _text:upcout
  2032. @pcoutb dw      offset _text:_pcoutb, offset dgroup:$pcoutb
  2033.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2034.         dw      offset _text:upcout
  2035. @pcoutc dw      offset _text:_pcoutc, offset dgroup:$pcoutc
  2036.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2037.         dw      offset _text:upcout
  2038. @pcoutd dw      offset _text:_pcoutd, offset dgroup:$pcoutd
  2039.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2040.         dw      offset _text:upcout
  2041. @pcoute dw      offset _text:_pcoute, offset dgroup:$pcoute
  2042.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2043.         dw      offset _text:upcout
  2044. @pcoutf dw      offset _text:_pcoutf, offset dgroup:$pcoutf
  2045.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2046.         dw      offset _text:upcout
  2047. @pcoutg dw      offset _text:_pcoutg, offset dgroup:$pcoutg
  2048.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2049.         dw      offset _text:upcout
  2050. @pcouth dw      offset _text:_pcouth, offset dgroup:$pcouth
  2051.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2052.         dw      offset _text:upcout
  2053. @pcoutx dw      offset _text:_pcoutx, offset dgroup:$pcoutx
  2054.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2055.         dw      offset _text:upcout
  2056. @pcouty dw      offset _text:_pcouty, offset dgroup:$pcouty
  2057.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2058.         dw      offset _text:upcout
  2059. @pcoutz dw      offset _text:_pcoutz, offset dgroup:$pcoutz
  2060.         dw      00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2061.         dw      offset _text:upcout
  2062. ;--------------------------------------------------------------
  2063. ; the following is a 256 word address table, one address,
  2064. ; in order, for each character in the ibm-pc character set
  2065. ; these addresses point to the MODSRC table, which includes
  2066. ; an entery for each module, plus a dummy for all the unused
  2067. ; characters.  The purpose of this table is to allow identification
  2068. ; of the module code and data, given only the module name character.
  2069. ;
  2070.         even
  2071.         public  _chrtbl
  2072. _chrtbl equ     $
  2073.         dw      offset dgroup:@dummy,  offset dgroup:@decin
  2074.         dw      offset dgroup:@dummy,  offset dgroup:@iclock   ; 00 - 03
  2075.  
  2076.         dw      offset dgroup:@ddithr, offset dgroup:@dithzr
  2077.         dw      offset dgroup:@dither, offset dgroup:@zerop    ; 04 - 07
  2078.  
  2079.         dw      offset dgroup:@dummy,  offset dgroup:@pushb
  2080.         dw      offset dgroup:@dummy,  offset dgroup:@change   ; 08 - 0B
  2081.  
  2082.         dw      offset dgroup:@lastv,  offset dgroup:@clock
  2083.         dw      offset dgroup:@klock,  offset dgroup:@bopo     ; 0C - 0F
  2084.  
  2085.         dw      offset dgroup:@sxget,  offset dgroup:@sxput
  2086.         dw      offset dgroup:@pushc,  offset dgroup:@cmak     ; 10 - 13
  2087.  
  2088.         dw      offset dgroup:@sysxo,  offset dgroup:@sandh
  2089.         dw      offset dgroup:@dummy,  offset dgroup:@limit    ; 14 - 17
  2090.  
  2091.         dw      offset dgroup:@maxf,   offset dgroup:@minf 
  2092.         dw      offset dgroup:@xmidii, offset dgroup:@dummy    ; 18 - 1B
  2093.  
  2094.         dw      offset dgroup:@dummy,  offset dgroup:@sort
  2095.         dw      offset dgroup:@higher, offset dgroup:@lower    ; 1C - 1F
  2096.  
  2097.         dw      offset dgroup:@dummy,  offset dgroup:@cgen
  2098.         dw      offset dgroup:@truep,  offset dgroup:@value    ; 20 - 23
  2099.  
  2100.         dw      offset dgroup:@dummy,  offset dgroup:@scale
  2101.         dw      offset dgroup:@andl,   offset dgroup:@dummy    ; 24 - 27
  2102.  
  2103.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2104.         dw      offset dgroup:@times,  offset dgroup:@plus     ; 28 - 2B
  2105.  
  2106.         dw      offset dgroup:@dummy,  offset dgroup:@plusn
  2107.         dw      offset dgroup:@decim,  offset dgroup:@modulo   ; 2C - 2F
  2108.  
  2109.         dw      offset dgroup:@dummy,  offset dgroup:@noteo
  2110.         dw      offset dgroup:@noteo1, offset dgroup:@noteo2   ; 30 - 33
  2111.  
  2112.         dw      offset dgroup:@noteo3, offset dgroup:@dummy
  2113.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; 34 - 37
  2114.  
  2115.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2116.         dw      offset dgroup:@bassd,  offset dgroup:@gatel    ; 38 - 3B
  2117.  
  2118.         dw      offset dgroup:@lessp,  offset dgroup:@equal
  2119.         dw      offset dgroup:@great,  offset dgroup:@rand     ; 3C - 3F
  2120.  
  2121.         dw      offset dgroup:@cstor,  offset dgroup:@pcouta
  2122.         dw      offset dgroup:@pcoutb, offset dgroup:@pcoutc   ; 40 - 43
  2123.  
  2124.         dw      offset dgroup:@pcoutd, offset dgroup:@pcoute
  2125.         dw      offset dgroup:@pcoutf, offset dgroup:@pcoutg   ; 44 - 47
  2126.  
  2127.         dw      offset dgroup:@pcouth, offset dgroup:@icount
  2128.         dw      offset dgroup:@jcount, offset dgroup:@kcount   ; 48 - 4B
  2129.  
  2130.         dw      offset dgroup:@lcount, offset dgroup:@mcount
  2131.         dw      offset dgroup:@ncount, offset dgroup:@ocount   ; 4C - 4F
  2132.  
  2133.         dw      offset dgroup:@puseq,  offset dgroup:@quseq
  2134.         dw      offset dgroup:@ruseq,  offset dgroup:@suseq    ; 50 - 53
  2135.  
  2136.         dw      offset dgroup:@tuseq,  offset dgroup:@dummy
  2137.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; 54 - 57
  2138.  
  2139.         dw      offset dgroup:@pcoutx, offset dgroup:@pcouty
  2140.         dw      offset dgroup:@pcoutz, offset dgroup:@dummy    ; 58 - 5B
  2141.  
  2142.         dw      offset dgroup:@slope,  offset dgroup:@dummy
  2143.         dw      offset dgroup:@twopwr, offset dgroup:@dummy    ; 5C - 5F
  2144.  
  2145.         dw      offset dgroup:@dummy,  offset dgroup:@psouta 
  2146.         dw      offset dgroup:@psoutb, offset dgroup:@psoutc   ; 60 - 63
  2147.  
  2148.         dw      offset dgroup:@psoutd, offset dgroup:@psoute
  2149.         dw      offset dgroup:@psoutf, offset dgroup:@dummy    ; 64 - 67
  2150.  
  2151.         dw      offset dgroup:@dummy,  offset dgroup:@variz 
  2152.         dw      offset dgroup:@variy,  offset dgroup:@variv    ; 68 - 6B
  2153.  
  2154.         dw      offset dgroup:@varix,  offset dgroup:@dummy
  2155.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; 6C - 6F
  2156.  
  2157.         dw      offset dgroup:@pseq,   offset dgroup:@qseq 
  2158.         dw      offset dgroup:@rseq,   offset dgroup:@sseq     ; 70 - 73
  2159.  
  2160.         dw      offset dgroup:@tseq,   offset dgroup:@useq  
  2161.         dw      offset dgroup:@vseq,   offset dgroup:@wseq     ; 74 - 77
  2162.  
  2163.         dw      offset dgroup:@xseq,   offset dgroup:@yseq 
  2164.         dw      offset dgroup:@zseq,   offset dgroup:@poke     ; 78 - 7B
  2165.  
  2166.         dw      offset dgroup:@orl,    offset dgroup:@peek
  2167.         dw      offset dgroup:@dummy,  offset dgroup:@delta    ; 7C - 7F
  2168.  
  2169.         dw      offset dgroup:@cplay,  offset dgroup:@mapp
  2170.         dw      offset dgroup:@dummy,  offset dgroup:@ascis    ; 80 - 83
  2171.  
  2172.         dw      offset dgroup:@oddz,   offset dgroup:@dummy
  2173.         dw      offset dgroup:@asciz,  offset dgroup:@cplai    ; 84 - 87
  2174.  
  2175.         dw      offset dgroup:@rcall,  offset dgroup:@dummy
  2176.         dw      offset dgroup:@xcall,  offset dgroup:@dummy    ; 88 - 8B
  2177.  
  2178.         dw      offset dgroup:@dummy,  offset dgroup:@inptb
  2179.         dw      offset dgroup:@ratiz,  offset dgroup:@ratio    ; 8C - 8F
  2180.  
  2181.         dw      offset dgroup:@euseq,  offset dgroup:@mask
  2182.         dw      offset dgroup:@secs,   offset dgroup:@dummy    ; 90 - 93
  2183.  
  2184.         dw      offset dgroup:@mapo,   offset dgroup:@outpb
  2185.         dw      offset dgroup:@emeter, offset dgroup:@imeter   ; 94 - 97
  2186.  
  2187.         dw      offset dgroup:@ctrlo,  offset dgroup:@chanl
  2188.         dw      offset dgroup:@chano,  offset dgroup:@kclock   ; 98 - 9B
  2189.  
  2190.         dw      offset dgroup:@dummy,  offset dgroup:@stopo
  2191.         dw      offset dgroup:@patcho, offset dgroup:@filter   ; 9C - 9F
  2192.  
  2193.         dw      offset dgroup:@ascii,  offset dgroup:@dummy
  2194.         dw      offset dgroup:@mod12,  offset dgroup:@dummy    ; A0 - A3
  2195.  
  2196.         dw      offset dgroup:@minusp, offset dgroup:@negate
  2197.         dw      offset dgroup:@deltat, offset dgroup:@nequal   ; A4 - A7
  2198.  
  2199.         dw      offset dgroup:@rrand,  offset dgroup:@maskl
  2200.         dw      offset dgroup:@maskr,  offset dgroup:@mpuins   ; A8 - AB
  2201.  
  2202.         dw      offset dgroup:@odds,   offset dgroup:@randp
  2203.         dw      offset dgroup:@lshift, offset dgroup:@rshift   ; AC - AF
  2204.  
  2205.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2206.         dw      offset dgroup:@dummy,  offset dgroup:@mclk     ; B0 - B3
  2207.  
  2208.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2209.         dw      offset dgroup:@dummy,  offset dgroup:@passq    ; B4 - B7
  2210.  
  2211.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2212.         dw      offset dgroup:@mclock, offset dgroup:@dummy    ; B8 - BB
  2213.  
  2214.         dw      offset dgroup:@atimer, offset dgroup:@stimer
  2215.         dw      offset dgroup:@ctimer, offset dgroup:@dummy    ; BC - BF
  2216.  
  2217.         dw      offset dgroup:@dummy,  offset dgroup:@nrand
  2218.         dw      offset dgroup:@bitsp,  offset dgroup:@dummy    ; C0 - C3
  2219.  
  2220.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2221.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; C4 - C7
  2222.  
  2223.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2224.         dw      offset dgroup:@rangep, offset dgroup:@dummy    ; C8 - CB
  2225.  
  2226.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2227.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; CC - CF
  2228.  
  2229.         dw      offset dgroup:@delay,  offset dgroup:@bitsq
  2230.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; D0 - D3
  2231.  
  2232.         dw      offset dgroup:@dummy,  offset dgroup:@noter
  2233.         dw      offset dgroup:@passt,  offset dgroup:@dummy    ; D4 - D7
  2234.  
  2235.         dw      offset dgroup:@dummy,  offset dgroup:@ltimer
  2236.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; D8 - DB
  2237.  
  2238.         dw      offset dgroup:@dummy,  offset dgroup:@dummy
  2239.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; DC - DF
  2240.  
  2241.         dw      offset dgroup:@alpha,  offset dgroup:@beta  
  2242.         dw      offset dgroup:@lambda, offset dgroup:@pusha    ; E0 - E3
  2243.  
  2244.         dw      offset dgroup:@sumit,  offset dgroup:@slew
  2245.         dw      offset dgroup:@muclk,  offset dgroup:@gamma    ; E4 - E7
  2246.  
  2247.         dw      offset dgroup:@domute, offset dgroup:@fflop
  2248.         dw      offset dgroup:@progo,  offset dgroup:@xslew    ; E8 - EB
  2249.  
  2250.         dw      offset dgroup:@trand,  offset dgroup:@notl
  2251.         dw      offset dgroup:@mixit,  offset dgroup:@union    ; EC - EF
  2252.  
  2253.         dw      offset dgroup:@addswa, offset dgroup:@plusm 
  2254.         dw      offset dgroup:@dummy,  offset dgroup:@dummy    ; F0 - F3
  2255.  
  2256.         dw      offset dgroup:@fold,   offset dgroup:@dummy
  2257.         dw      offset dgroup:@div12,  offset dgroup:@apprx    ; F4 - F7
  2258.  
  2259.         dw      offset dgroup:@mul12,  offset dgroup:@tstmob
  2260.         dw      offset dgroup:@dummy,  offset dgroup:@xkbd     ; F8 - FB
  2261.  
  2262.         dw      offset dgroup:@quant,  offset dgroup:@dummy
  2263.         dw      offset dgroup:@gout,   offset dgroup:@dummy    ; FC - FF
  2264. ;--------------------------------------------------------------
  2265. ; Module Execution Table
  2266. ; The following table has space for 1024 modules.  As modules
  2267. ; are made active, they are appended to the end of the table,
  2268. ; and the address of WORK is appended to the end+1.
  2269. ; Data format:
  2270. ;       word0:  execution address of module
  2271. ;       word1:  address of module's variables
  2272. ;         |
  2273. ;       wordn:  execution address of last module in list
  2274. ;       wordn+1 address of last module's variables
  2275. ;       wordn+2 execution address of work
  2276. ;
  2277.         even
  2278.         public  _exetbl
  2279. _exetbl dw      work,0
  2280.         dw      2048 dup(?)
  2281.         dw      work
  2282. ;--------------------------------------------------------------
  2283. ; The following table is 256 words, the first=0, the 2nd =1, etc.
  2284. ; Its purpos in life is to allow variables to be numeric constants.
  2285. ; That is, variable pointers can point to the address of the number
  2286. ; to be set to a number, rather than to a module output variable.
  2287. ;
  2288.         public  @zero
  2289. @zero   dw      000h,001h,002h,003h,004h,005h,006h,007h
  2290.         dw      008h,009h,00ah,00bh,00ch,00dh,00eh,00fh
  2291.         dw      010h,011h,012h,013h,014h,015h,016h,017h
  2292.         dw      018h,019h,01ah,01bh,01ch,01dh,01eh,01fh
  2293.         dw      020h,021h,022h,023h,024h,025h,026h,027h
  2294.         dw      028h,029h,02ah,02bh,02ch,02dh,02eh,02fh
  2295.         dw      030h,031h,032h,033h,034h,035h,036h,037h
  2296.         dw      038h,039h,03ah,03bh,03ch,03dh,03eh,03fh
  2297.         dw      040h,041h,042h,043h,044h,045h,046h,047h
  2298.         dw      048h,049h,04ah,04bh,04ch,04dh,04eh,04fh
  2299.         dw      050h,051h,052h,053h,054h,055h,056h,057h
  2300.         dw      058h,059h,05ah,05bh,05ch,05dh,05eh,05fh
  2301.         dw      060h,061h,062h,063h,064h,065h,066h,067h
  2302.         dw      068h,069h,06ah,06bh,06ch,06dh,06eh,06fh
  2303.         dw      070h,071h,072h,073h,074h,075h,076h,077h
  2304.         dw      078h,079h,07ah,07bh,07ch,07dh,07eh,07fh
  2305.         dw      080h,081h,082h,083h,084h,085h,086h,087h
  2306.         dw      088h,089h,08ah,08bh,08ch,08dh,08eh,08fh
  2307.         dw      090h,091h,092h,093h,094h,095h,096h,097h
  2308.         dw      098h,099h,09ah,09bh,09ch,09dh,09eh,09fh
  2309.         dw      0a0h,0a1h,0a2h,0a3h,0a4h,0a5h,0a6h,0a7h
  2310.         dw      0a8h,0a9h,0aah,0abh,0ach,0adh,0aeh,0afh
  2311.         dw      0b0h,0b1h,0b2h,0b3h,0b4h,0b5h,0b6h,0b7h
  2312.         dw      0b8h,0b9h,0bah,0bbh,0bch,0bdh,0beh,0bfh
  2313.         dw      0c0h,0c1h,0c2h,0c3h,0c4h,0c5h,0c6h,0c7h
  2314.         dw      0c8h,0c9h,0cah,0cbh,0cch,0cdh,0ceh,0cfh
  2315.         dw      0d0h,0d1h,0d2h,0d3h,0d4h,0d5h,0d6h,0d7h
  2316.         dw      0d8h,0d9h,0dah,0dbh,0dch,0ddh,0deh,0dfh
  2317.         dw      0e0h,0e1h,0e2h,0e3h,0e4h,0e5h,0e6h,0e7h
  2318.         dw      0e8h,0e9h,0eah,0ebh,0ech,0edh,0eeh,0efh
  2319.         dw      0f0h,0f1h,0f2h,0f3h,0f4h,0f5h,0f6h,0f7h
  2320.         dw      0f8h,0f9h,0fah,0fbh,0fch,0fdh,0feh,0ffh
  2321. ;--------------------------------------------------------------
  2322. ; Module Variable Table 
  2323. ; The following table has space for approximately 512 modules.
  2324. ; As modules are made active, they are appended to the end of the table.
  2325. ; Data format:
  2326. ;       word0:  modsrc addr
  2327. ;       word1:  priority
  2328. ;       word2:  vpage seg
  2329. ;       word3:  vpage addr
  2330. ;       word4:  output value
  2331. ;       word5:  input #1 pointer (to other output values)
  2332. ;       word6:  input #2 pointer
  2333. ;       word7:  etc.  - one entery for each input
  2334. ;
  2335.         even
  2336.         public  vartbl
  2337. vartbl  db      varsiz dup(0)
  2338. ;--------------------------------------------------------------
  2339. ; place to put screen 0 data
  2340. ; must use debug for this, or compile with debug = false to ignore
  2341. ; to do it, ren mb.exe to mb.foo, then debug mb.foo
  2342. ; find the data area with: S0 C000 "screen" 
  2343. ; load in the screen: NMB.SCR then L(address)
  2344. ; write out the file: RCX (give file bytes in original CX)
  2345. ;                     NMB.FOO then W
  2346. ; exit debug and rename MB.FOO to MB.EXE
  2347. ;
  2348.         public  modscr
  2349.         even
  2350. modscr  db      "screen"
  2351.         dw      2048  dup(0103h)
  2352. ;--------------------------------------------------------------
  2353. _DATA   ENDS
  2354.         END
  2355.  
  2356.