DoradoProms is a program for defining, blowing, and listing any and all proms used the the DORADO. The definitions of new Proms are programed and compiled into DoradoProms.run as they are needed. The program is maintained on IVYDoradoProms.run. Once this is done, DoradoProms.run is run to produce a microbinary format file (called DoradoProms.mb) which contains the actual PROM definitions as required for the Prom.run program. In addition to the .mb file, and command file (Prom.cm) is produced which should be executed to cause the program Prom.run to be invoked in the correct way for each of the defined memories to be blown. Imbeded in the command file ( as comments) is additional information such as the "name" of the prom, and a label containg board name and location. DoradoProms.run may be invoked in a number of ways as indicated by the following examples: "DoradoProms" will define all proms for the Dorado "DoradoProms MemC" will define proms for the MemC board "DoradoProms Mem" will define proms for the MemC, Memx, and MemD boards "DoradoProms Mem Proc" will define proms for the Memory and processor system Current names following DoradoProms.run are Control, Processor, ProcH, ProcL, IFU, JunkIO, Memory, Disk, and Display. The program ignores upper/lower case, and only enough characters to make the string unique are required, thus Memory, memory, mem, or just M will work. "DoradoProms/L Mem" The /L option will also cause BinList.run to be invoked to generate listing files for all Proms defined in the D1Proms.mb file. The best way to use this feature is to delete all .ls files before running DoradoProms.run and then do "Empress *.ls" to get a hard copy of all Proms just defined. Executing the Prom.cm command file will tell you what type of Prom (and corresponding personality card) to use, what the name of the Prom is, and the contents of the label that should be placed on the top of the Prom after blowing it should be. Just before envoking Prom.run for a particular Prom, the command file invokes a non-existant file enabeling you to skip the particular prom by typing "// cr" to the exec or to blow the Prom by just typing cr to the exec. z19776j(635) Program Descriptionz19776j\b19B Most of the prom requirements of the Dorado have already been implemented in the DoradoProm program, and this program should not have to be touched very often in the future. The following description is intended only as an introduction. The real truth of course if best found by examining existing code within this program.z19776e12j\243i10I The program (written is BCPL) is 0rganized around one file called DoradoProms.bcpl which has responsibility for all program wide code. As such, it opens up the rem.cm file, and finds the name of each prom, board, or set of boards, to be specified, and passes these name(s) of to all proceedures that have been implemented for prom specification. The proceedure has been organized so that separate commnad files are created for each of the Prom types defined. i.e. MC10149.cm will cause all MC10149 proms to be blown etc.z19776e12j There are two proceedures which ara available for causing the microbinary file and the associated command files to be built up.z19776e12j Header(Name,Width,Buff,Count,Adjust) is used as the means of causing the contents of the prome to be entered in the microbinary output file. The parameters have the following meaning:z19776l4269e12j Name: The name of the memoryz19776l7200d5539e12j(0,7200) Width: The width (in bits) of the memory (in multiples of the number of bits per memory chip in which the memory is to be implemented)z19776l7200d5539e12j Buff: pointer to the data block which describes the blockz19776l7200d5539e12j Count: The length (in words) of the memory (in multiples of the number of words per memory chip in which the memory is to be implemented)z19776l7200d5539e12j Adjust: The count by which the data in "Buff" must be left shifted in order to have the bits left justified within the wordz19776l7200d5539e12j PromCommand(Label,Fbit,Faddr) is used as the means of entering the appropriate entries in the command file. If a memory is defined which requires more than one prom to implenet, then this proceedure must be called for each prom required. The parameters have the following meaning:z19776l4269e12j(635) Label: A String which describes what should be written on the lable stuck to the top of the Prom z19776l7200d5539e12j(0,7200) Fbit: A string which defines the first bit of the Memory which is to be placed in the first bit of the Prom being defined. This string is defaulted to "0" if no parameter is passedz19776l7200d5539e12j Faddr: A string which defines the first word of the Memory which is to be placed in the first word of the Prom being defined. This string is defaulted to "0" if no parameter is passedz19776l7200d5539e12j StEq(S1,S2) is a string compair routine which compairs S1 to S2 according to the requirements of this program.z19776l4269e12j(635) If either S1 or S2 are 0 (doesn't point to a string) then True is returned z19776l7200d5539e12j(0,7200) If the characters in the shorter string match the corresponding characters of the longer string, then True is returned (case is ignored for this comparison).z19776l5536d5539e12j For each board within the Dorado, I have implemented a bcpl file which defines all the proms necessary for that board.z19776e12j(635) The "board" proceedure first comapairs the name passed to it to see if the entire board is to be programmed, and if so sets the name pointer to "DoAll", ie future calls of StEq will return True for all stringsz19776e12j Within the board proceedure, StEq is called again to see if a particular memory is to be programmed. Ifso, and the current memory type is the right type, then a proceedure is called which is designed to program the appropriate memory. This is done by tables, or algorithms written in BCPL code, etc.z19776e12j The Header proceedure is then called to have the memory contents entered in the microbinary file, and finally PromCommand is called for each of the chips that have to be blown to implement the memory.z19776e12j