home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / batch / mxmnu233.zip / MARXREAD.ME < prev    next >
Text File  |  1991-09-30  |  8KB  |  272 lines

  1. Version 2.32
  2.  
  3. 09-05-91
  4. New Feature
  5.  
  6. Here's what you real programmers have been waiting for. I now have
  7. included indirect addressing modes that allow you to pass variables be
  8. referrence as well as value.
  9.  
  10. The command Loc returns the location of a variable rather than it's
  11. contents. Thus B = Loc A sets B to point to A.
  12.  
  13.  Example:
  14.     Var A B
  15.        B = Loc A
  16.        B = 9
  17.        Writeln A  ;returns 9
  18.  
  19.  
  20.  Example:
  21.     Var A
  22.  
  23.  TestLoc (Loc A)
  24.  Writeln A ;returns 9
  25.  
  26.  Procedure TestLoc (B)
  27.     B = 9
  28.  EndProc
  29.  
  30. The rule is that all indirect location references are resolved in the
  31. process of evaluating an expression.
  32.  
  33.  Example:
  34.     Var A B C D
  35.        B = Loc A
  36.        C = Loc B
  37.        D = Loc C
  38.        D = 9
  39.        Writeln A   ; Returns 9
  40.  
  41. As you would expect, qualifiers and multidimentional array addressing
  42. works with indirect addressing.
  43.  
  44.  Example:
  45.     var A B C D E
  46.  
  47.     A[3] = 12
  48.     C = 3
  49.     B = Loc C
  50.  
  51.     D = Loc E
  52.     D[7] = 8
  53.  
  54.     TestLoc (Loc A[B])
  55.     Writeln A[B,9,E[7]]
  56.  
  57.     Procedure TestLoc (X)
  58.        Writeln X
  59.        X[9,D[7]] = 6
  60.        Writeln X[9,E[7]]
  61.     EndProc
  62.  
  63. If you want to read or write to a variable directly that is referrencing
  64. another variable I have provided the command Actual.
  65.  
  66.  Example:
  67.     Dispose Actual B
  68.     Actual B = 5
  69.  
  70. 09-10-91
  71. I got OS/2 version 2.0 in and am working on making it compatible with
  72. the dos box. OS/2 claims to be dos version 20 so I had to make a few
  73. changes to support this.
  74.  
  75. This OS/2 is looking good and it looks like I'll be able to control both
  76. DOS and OS/2 apps from MarxMenu in the DOS box. So for all practical
  77. purposes it looks like MarxMenu will be quite usable in an OS/2
  78. environment.
  79.  
  80. Politics:
  81.  
  82. One of the things I'm worried about is that IBM will try to restrict
  83. communication between the DOS box and OS/2 under the theory that they
  84. want to force developers away from dos and into OS/2.
  85.  
  86. My position is that I want as much access to the OS/2 kernal from the
  87. DOS box as possible. The reason is that it will take time for software
  88. development tools to be wtitten for OS/2 and the DOS box is all we have
  89. for now.
  90.  
  91. If DOS programs could make OS/2 calls then by the time OS/2 for Turbo
  92. Pascal comes out much software will be already half converted. It would
  93. also be good for IBM in the developers would create DOS programs that
  94. required OS/2 to run. It would also set a standard that other DOS
  95. vendors such as Microsoft and Novell will follow.
  96.  
  97. Therefore, if you have any friends or influance at IBM please lobby for
  98. me to allow OS/2 calls from the DOS box. This will ensure a smooth port
  99. of MarxMenu to the OS/2 world.
  100.  
  101. I'm also collecting undocumented OS/2 calls and back doors. Any
  102. information on OS/2 tricks will be greatly appreciated.
  103.  
  104. 09-14-91
  105.  
  106. New Features:
  107.  
  108. WinX : Number
  109. Returns the horizontal location of the left hand corner of the window.
  110.  
  111. WinY : Number
  112. Returns the vertical location of the left hand corner of the window.
  113.  
  114. PosInList (String,Array) : Number
  115. Scans a string array looking for a match on string and returns the array
  116. index of the first matched string if found or a zero if not found.
  117.  
  118.  Example:
  119.     X[1] = 'JOE'
  120.     X[2] = 'KEVIN'
  121.     X[3] = 'MARC'
  122.     Writeln PosInList('KEVIN',X)   ;returns 2
  123.  
  124. PosInSortedList (String,Array) : Number
  125. Scans a string array looking for a match on string in a sorted array and
  126. returns the array index of the first matched string if found or a zero
  127. if not found. The array must be in sorted order. A binary search is used
  128. to make this command very fast.
  129.  
  130.  Example:
  131.     X[1] = 'JOE'
  132.     X[2] = 'KEVIN'
  133.     X[3] = 'MARC'
  134.     SortArray (X)
  135.     Writeln PosInList('KEVIN',X)   ;returns 2
  136.  
  137. New Novell Goodies:
  138.  
  139. NovFullName (User)
  140. Returns the Full Name of the user as set by syscon. If NovFullName is
  141. used without a parameter then MyLoginName is assumed.
  142.  
  143. NovObjects (2D Array)
  144. NovObjects reads all objects from the bindary returning a 2 dimensional
  145. array containing all object names and object types.
  146.  
  147.  Example:
  148.    NovObjects (X)
  149.    Loop X
  150.       Writeln X[LoopIndex,1] ' ' X[LoopIndex,2]
  151.    EndLoop
  152.  
  153. NovScanProperties (Array, Object, Type)
  154. Reads all the properties of Object into Array.
  155.  
  156. NovPropertyValues (Array, Object, Property, Type)
  157. Reads property values of object into and array.
  158.  
  159. NovDeleteObject (Object,Type)
  160. Deletes an object from the bindary.
  161.  
  162. NovBroadcastMode (Mode)
  163. This reads or sets the message broadcast mode.
  164.  
  165.  Example:
  166.     Writeln NovBroadcastMode
  167.     BroadcastMode = 3
  168.  
  169.  Modes:
  170.     0 - All Messages, same as running CastOn
  171.     1 - Server messages only, same as running CastOff
  172.     2 - Same as 0 but user has to poll server for messages
  173.     3 - Same as 1 but user has to poll server for messages
  174.  
  175. NovSendMessage (Message,Connection)
  176. Sends a message to the specified connection number just like the novell
  177. SEND command.
  178.  
  179. NovGetMessage : String
  180. When in broadcast mode 2 or 3 this polls the server for stored messages
  181. and returns them if found.
  182.  
  183. NovMaxConnections : Number
  184. Returns the maximum number of connections that your netware will allow.
  185.  
  186. NovConnectionsInUse : Number
  187. Returns the number of connections in use.
  188.  
  189. NovVersionNumber : Number
  190. Returns the novell netware version number.
  191.  
  192.  Example:
  193.     215 - Version 2.15
  194.     311 - Version 3.11
  195.  
  196. I started out to write a case statement but came up with something
  197. better. ELSEIF
  198.  
  199.  Example:
  200.    if X = 1
  201.       Writeln 'One'
  202.  
  203.    elseif X = 2
  204.       Writeln 'Two'
  205.  
  206.    elseif X = 3
  207.       Writeln 'Three'
  208.  
  209.    elseif X = 4
  210.       Writeln 'Four'
  211.  
  212.    else
  213.       Writeln 'Other'
  214.  
  215.    endif
  216.  
  217. 09-19-91
  218.  
  219. LastDrive : String
  220. Returns the drive letter of the last local drive in the system as set by
  221. CONFIG.SYS. By default, this is drive letter E. On a Novell network the
  222. drive after LastDrive is the first network drive.
  223.  
  224. The Logoff command has been modified to change drives to the first
  225. network drive (usually F:) and remove any map root setting on this
  226. drive.
  227.  
  228. 09-22-91
  229. For those of you who have been bugging me about customizing the screen
  230. blanker, this is your day! I've added the ability to support your own
  231. external screen blanker written in MarxMenu.
  232.  
  233. The IdleProgram could have been used for this but by adding
  234. BlankScreenProgram, MarxMenu determines when to blank and unblank the
  235. screen taking the bulk of the nasty work away.
  236.  
  237. BlankScreenProgram = Loc (Procedure Name)
  238. This sets the blank screen program to use and overrides MarxMenu's
  239. internal screen blanker. It also overrides the IdleProgram so if you are
  240. running something in you idle program that you want to continue to run
  241. when the screen goes blank, call your idle procedure from the screen
  242. blanker procedure.
  243.  
  244. If you exit your screen blanker and MarxMenu thinks the screen should
  245. still be blank it will call it again.
  246.  
  247. UnBlank : Boolean
  248. Unblank returns true if MarxMenu has determined that the screen blanker
  249. should finish. Your screen blanker needs to call UnBlank to determine
  250. when to unblank the screen.
  251.  
  252.  Example:
  253.    while not UnBlank
  254.       <your screen blanker>
  255.    endwhile
  256.  
  257. See the file WORM.INC for a sample external screen blanker. This program
  258. is like the worm blankers on Novell file servers.
  259.  
  260. ===============================================================
  261.  
  262. Version 2.33
  263.  
  264. 09-30-91
  265.  
  266. Vicki says, "Quit adding features, Networld is comming up!". So I got
  267. everything working (I hope) and I'm printing new manuals so I went back
  268. and added a lot of new examples to the manual and added several new
  269. sections. I also did some work on the sample menu files included on the
  270. disk cleaning up old code, adding new features and better comments.
  271. MarxMenu is easier to install than ever now.
  272.