home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / GENASM / DISPMEN.LBR / DISPMEN.DQC / DISPMEN.DOC
Text File  |  2000-06-30  |  7KB  |  150 lines

  1. áááááDocumentatioε fo≥ DISPMEN.MA├        -b∙ R« Buckmaε [72356,344]
  2.  
  3. ááááá     DISPME╬ i≤ ß macr∩ tha⌠ take≤ ß men⌡ anΣ split≤ i⌠ int∩ tw∩ ì
  4. ááááácolumns«  I⌠ i≤ knowε t∩ worδ witΦ M80¼ anΣ wil∞ probabl∙ worδ witΦ ì
  5. áááááMA├ afte≥ somσ mino≥ changes«  Onσ oµ thosσ change≤ wil∞ bσ movinτ thσ ì
  6. ááááá"MENFL╟ SE╘ FALSEó statemen⌠ (oε thσ firs⌠ line⌐ t∩ somewherσ nea≥ thσ ì
  7. ááááábeginninτ oµ you≥ maiε sourcσ file«  MA├ doe≤ no⌠ accep⌠ thσ ì
  8. ááááádefinitioε oµ SE╘ statement≤ withiε ß macr∩ library.
  9.  
  10.  
  11. áááááReason for Writing
  12.  
  13. ááááá     Afte≥ foolinτ arounΣ witΦ thσ APMOD77╖ sourcσ filσ (Applσ versioε ì
  14. áááááoµ MODEM7⌐ anΣ addinτ somσ morσ men⌡ options¼ ╔ noticeΣ tha⌠ thσ men⌡ ì
  15. áááááwa≤ gettinτ ß bi⌠ full╗ almos⌠ scrollinτ ofµ oµ thσ screen!  Thσ CA╠ ì
  16. áááááoptioε spli⌠ thσ phonσ number≤ int∩ tw∩ columns¼ s∩ wh∙ no⌠ thσ maiε ì
  17. ááááámenu┐  Afte≥ lookinτ a⌠ ho≈ thσ phonσ numbe≥ men⌡ wa≤ split¼ ╔ decideΣ ì
  18. ááááátha⌠ i⌠ woulΣ bσ to∩ mucΦ troublσ t∩ adap⌠ thosσ routine≤ t∩ thσ maiε ì
  19. ááááámenu«  Thσ answe≥ wa≤ t∩ writσ ß macr∩ tha⌠ coulΣ takσ an∙ men⌡ (witΦ ì
  20. áááááfixeΣ lengtΦ options⌐ anΣ split it.
  21.  
  22.  
  23. áááááFeatures
  24.  
  25. ááááá     ∩  Men⌡ entrie≤ caε bσ addeΣ o≥ deleteΣ iε thσ sourcσ filσ ì
  26. ááááá        without changing any programming code or addresses.
  27.  
  28. ááááá     ∩  Thσ macr∩ (betweeε thσ conditiona∞ I╞ statements⌐ i≤ assembleΣ ì
  29. ááááá        onl∙ oncσ witΦ subsequen⌠ call≤ t∩ thσ macr∩ vectoreΣ througΦ ì
  30. ááááá        call≤ t∩ ?SETUP«  Thσ morσ menu≤ you≥ prograφ has¼ thσ morσ       ì
  31. áááááááááááááspacσ thi≤ saves«  (Well¼ sor⌠ of«  Tha⌠ i≤ thσ equivilen⌠ oµ  ì
  32. ááááááááááááábuying more of a sale item to save more!) 
  33.  
  34. ááááá     o  A≤ distributed¼ i⌠ wil∞ begiε printinτ thσ righ⌠ columε iε thσ ì
  35. ááááááááááááá41s⌠ characte≥ position«  Thi≤ i≤ easil∙ changeΣ t∩ sui⌠ thσ ì
  36. áááááááááááááuser by changing one byte in the COMOF1: routine.
  37.  
  38.           o  Mos⌠ menu≤ arσ iε somσ typσ oµ logica∞ orde≥ (ie║ ì
  39. áááááááááááááalphabetical)«  Thi≤ macr∩ preserve≤ tha⌠ orde≥ iε tha⌠ i⌠ ì
  40. áááááááááááááwil∞ takσ thσ seconΣ men⌡ option anΣ prin⌠ i⌠ directl∙ beneatΦ ì
  41. áááááááááááááthe first menu option and not next to it.  You get this:
  42.  
  43. áááááááááááááA  - (1st menu option)           D  - (4th menu option)
  44. áááááááááááááB  - (2nd menu option)           E  - (5th menu option)
  45. áááááááááááááC  - (3rd menu option)
  46.  
  47. áááááááááááááand not this:
  48.  
  49. áááááááááááááA  - (1st menu option)           B  - (2nd menu option)
  50. áááááááááááááC  - (3rd menu option)           D  - (4th menu option)
  51. áááááááááááááE  - (5th menu option)
  52.  
  53.           oááMenu≤ witΦ aε odΣ numbe≥ oµ option≤ wil∞ prin⌠ onσ morσ optioε ì
  54. áááááááááááááin the left column than in the right column.
  55. èLimitations
  56.  
  57.           o  EacΦ optioε withiε ß men⌡ mus⌠ contaiε thσ samσ numbe≥ oµ ì
  58. ááááááááááááácharacter≤ (fixeΣ length⌐ a≤ al∞ thσ othe≥ option≤ withiε tha⌠ ì
  59. ááááááááááááámenu«  Spaces (tabs are not allowed ) can be used as filler. 
  60.  
  61.           o  Thσ tota∞ numbe≥ oµ character≤ iε tw∩ men⌡ option≤ plu≤ tw∩ ì
  62. áááááááááááááspace≤ (t∩ seperatσ thσ columns⌐ caε no⌠ bσ greate≥ thaε you≥ ì
  63. áááááááááááááscreeε width«  Fo≥ example; iµ eacΦ men⌡ optioε i≤ 3░ ì
  64. ááááááááááááácharacter≤ lonτ theε tw∩ option≤ arσ 6░ character≤ lonτ plu≤ ▓ ì
  65. áááááááááááááspace≤ equal≤ 6▓ characters¼ s∩ you≥ screeε mus⌠ bσ a⌠ leas⌠ ì
  66. ááááááááááááá6│ character≤ widσ (allowinτ onσ fo≥ auto-linefeeds)«  Thσ ì
  67. ááááááááááááámaximuφ numbe≥ oµ character≤ tha⌠ ß men⌡ optioε caε havσ fo≥ ì
  68. áááááááááááááaε 8░ columε displa∙ i≤ 38«  Thσ minimuφ numbe≥ oµ character≤ ì
  69. ááááááááááááái≤ one.
  70.  
  71.           oááThσ tota∞ numbe≥ oµ men⌡ option≤ tha⌠ wil∞ fi⌠ onσ 2┤ linσ ì
  72. áááááááááááááscreen¼ i≤ 46«  Forty-eigh⌠ option≤ wil∞ scrol∞ thσ to≡ tw∩ ì
  73. áááááááááááááoff of the screen.
  74.  
  75.  
  76. Implementation
  77.  
  78.      T∩ incorporatσ DISPMEN.LIB int∩ you≥ program¼ d∩ thσ followinτ t∩ you≥ ì
  79. sourcσ code:
  80.  
  81.      a.  Where you want the menu to be displayed, insert the line:
  82.  
  83.           DISPMEN   MENUxTOP,MENUxBOT,y
  84.  
  85.           wherσ "xó i≤ ß digi⌠ froφ ░ t∩ ╣ (i⌠ caε bσ a≤ man∙ digit≤ a≤ yo⌡ ì
  86. ááááááááááwant¼ withiε thσ restriction≤ oµ you≥ assembler⌐ anΣ "yó i≤ thσ ì
  87. áááááááááánumbe≥ oµ character≤ iε eacΦ men⌡ option«  (Othe≥ menu≤ caε havσ ì
  88. ááááááááááa different length.)
  89.  
  90.      b.  A⌠ thσ top/beginninτ oµ you≥ menu¼ jus⌠ beforσ thσ firs⌠ men⌡ ì
  91. ááááááááááoption, inser⌠ thσ line:
  92.  
  93.           MENUxTOP  EQU  $
  94.  
  95. ááááááááááand just after the last menu option, insert the line:
  96.  
  97. ááááááááááMENUxBOT  EQU  $
  98.  
  99.           Thσ numbe≥ useΣ fo≥ "xó mus⌠ bσ thσ samσ a≤ tha⌠ useΣ iε ste≡ a«  ì
  100.           anΣ eacΦ men⌡ mus⌠ havσ ß differen⌠ number«  Iε thi≤ way¼ menu≤ ì
  101. áááááááááámay bσ placeΣ anywherσ iε thσ sourcσ code.
  102. .PAè     c.  Nea≥ thσ beginninτ oµ you≥ sourcσ code¼ inser⌠ ß referencσ t∩ thσ ì
  103. áááááááááámacr∩ or¼ iµ yo⌡ wish¼ adΣ DISPME╬ t∩ you≥ macr∩ library«  I'vσ ì
  104. ááááááááááinserteΣ i⌠ iε m∙ MODEM╖ macr∩ librar∙ anΣ thσ referencσ look≤ ì
  105. áááááááááálike this:
  106.  
  107. ááááááááááMACLIB    MODEM7.LIB
  108.  
  109. ááááááááááOtherwise, just leave it as DISPMEN.LIB.
  110.  
  111.  
  112. Demonstration
  113.  
  114.           ┴ demonstratioε oµ DISPME╬ i≤ provideΣ withiε thi≤ librar∙ (.LBR⌐ ì
  115. áááááfile«  Thσ demonstratioε filσ namσ i≤ DISPDEMO.MAC«  Bσ surσ t∩ stud∙ ì
  116. ááááái⌠ iε orde≥ t∩ gaiε aε understandinτ oµ ho≈ thσ men⌡ shoulΣ looδ iε ì
  117. áááááyou≥ sourcσ file«  Remember¼ tab≤ arσ no⌠ alloweΣ withiε thσ singlσ ì
  118. áááááquotation marks and each option must be preceded by a "DB".
  119. ááááá     T∩ usσ thσ demo¼ placσ you≥ disδ witΦ M80.CO═ anΣ L80.CO═ iε ì
  120. ááááádrivσ A║ anΣ you≥ disδ witΦ DISPDEMO.MA├ anΣ DISPMEN.LI┬ iε drivσ B:«  ì
  121. áááááType:
  122.  
  123. áááááA:M80 =DISPDEMO<ret>
  124.  
  125. áááááThis will create an REL file.  Next type:
  126.  
  127.  ááááA:L80 DISPDEMO,DISPDEMO/N/E<ret>
  128.  
  129. áááááThis will create an executable COM file (DISPDEMO.COM).  Type:
  130.  
  131. áááááDISPDEMO<ret>
  132.  
  133. áááááanΣ yo⌡ wil∞ seσ thσ lis⌠ oµ option≤ fo≥ men⌡ one«  Pres≤ an∙ ke∙ anΣ ì
  134. áááááyou will see the list of options for menu two.
  135.  
  136.  
  137. Epilogue
  138.  
  139.           ╔ aφ no⌠ al∞ tha⌠ familia≥ witΦ Digita∞ Research'≤ "MACó macr∩ ì
  140. áááááassembler¼ anΣ thereforσ havσ no⌠ provideΣ mucΦ informatioε oε ho≈ t∩ ì
  141. áááááusσ i⌠ here«  I⌠ seem≤ tha⌠ morσ peoplσ havσ MAC¼ bu⌠ MicroSoft'≤ ì
  142. ááááásuppor⌠ oµ Applσ product≤ ha≤ beeε gooΣ iε thσ past whicΦ i≤ wh∙ ╔ ì
  143. áááááwen⌠ witΦ M8░ (par⌠ oµ thσ Assembl∙ Languagσ Developmen⌠ System)«  I'φ ì
  144. ááááástill new to assembly language as it is.
  145. ááááá     Thi≤ i≤ thσ firs⌠ timσ ╔ havσ releaseΣ anythinτ ╔'vσ writteε s∩ ì
  146. ááááá╔ woulΣ appreciatσ feedbacδ viß EasyPlex/EMai∞ (Use≥ I─ 72356,344).
  147.  
  148. ááááá                                                - Bob Buckman
  149. ááááá                                                  18 NOV 85
  150.