• Lab 2 - Macro Control:
    • Create a new macro named contlab2 in the TRAIN option tree.
    • The macro should take in two parameters: a table (TAB=) and a string (PREFIX=).
    • Your macro should print out all of the values in a table. If one of the values is a table (i.e. a nested table), you will need to recursively call your macro (i.e. call your macro from inside your macro) and print out the values in that table.
    • When you are done use UPDATE to add your macro to the dictionary and try it out. The output should look similar to this:
      nM> contlab2 reg reg
      REG.CONTLAB2=M: CONTLAB2,TAB=reg,PREFIX=reg
      REG.SHELL=nxm.sys.lib.Shell@fd66a5
      REG.HANDLERS.FILE.TMP=nxm.sys.lib.DataFile
      REG.HANDLERS.FILE.RAW=nxm.sys.lib.BaseFile
      REG.HANDLERS.FILE.PRM=nxm.sys.lib.DataFile
      ...
      REG.HANDLERS.FILE.TOC=nxm.map.lib.TocFile
      REG.HANDLERS.FILE.SID=nxm.map.lib.MrSidFile
      REG.HANDLERS.PACKET.SDDS=nxm.sys.lib.SDDSPacket
      REG.HANDLERS.PACKET.ICE=nxm.ice.lib.ICEPacket
      REG.HANDLERS.RESOURCE.RAMD=nxm.ice.lib.RamDiskResource
      REG.HANDLERS.RESOURCE.XMPIPE=nxm.sys.libxm.XmPipeResource
    • Hint: You can find out if a value is a Table by seeing if it is of type nxm.sys.lib.Table.
    • Hint: If on the STARTMACRO line you use u:prefix, you will get the "untranslated" value (i.e. it won't try to resolve any of the results).
    • Hint: If your macro is much longer than 15 lines, you are on the wrong track.