*** MMC216/RMOS-216 *** Product: RMOS-OPER MLFB-No.: 6BA2216-0AQ00 Masterlizenz -1AQ00 Update Release: A.04 Place of Delivery: SIEMENS AG, EMA-W/T1 Moduldirectory of the User Diskette: OPERATING SYSTEM ------------------------------------------------------------------------- ! ! ! Update ! Date of ! ! Module ! Brief Description ! release! the Last ! ! ! ! ! Update ! !------------!--------------------------------------!--------!----------! ! ! COMMAND Files ! ! ! ! ! ! ! ! ! SYSSYS.CSD ! Calls the command files for ! ! 14.01.86 ! ! ! configuring the RMOS system ! ! ! ! GENSYS.CSD ! This program contains all the ! ! 04.03.86 ! ! ! configuration data ! ! ! ! LNKSYS.CSD ! Links the RMOS system ! ! 04.03.86 ! ! ! ! ! ! ! LOCSYS.CSD ! Locates the RMOS system ! ! 04.03.86 ! ! ! ! ! ! ! ICESYS.CSD ! Loads the located RMOS system ! ! 10.05.84 ! ! ! into the RAM memory of the user ! ! ! ! ! hardware ! ! ! ! ICETST.CSD ! " ! ! 10.05.84 ! ! ! ! ! ! ! UPMSYS.CSD ! Programs the RMOS system into EPROMs ! ! 10.05.84 ! ! ! ! ! ! ! UPMTST.CSD ! " ! ! 10.05.84 ! ! ! ! ! ! ! SYSUSE.CSD ! Calls the command files for the ! ! 14.01.86 ! ! ! user system ! ! ! ! LNKUSE.CSD ! Links the user system ! ! 04.03.86 ! ! ! ! ! ! ! LOCUSE.CSD ! Locates the user system ! ! 04.03.86 ! ! ! ! ! ! ! ICEUSE.CSD ! See ICESYS.CSD. The RMOS user tasks ! ! 10.05.84 ! ! ! are only loaded ! ! ! ! ! ! ! ! ! UPMUSE.CSD ! Programs the user tasks into EPROMs ! ! 10.05.84 ! ! ! ! ! ! ! SYSTST.CSD ! Calls the command files for the test ! ! 14.01.86 ! ! ! system ! ! ! ! GENTST.CSD ! This program containes all the ! ! 04.03.86 ! ! ! generation data ! ! ! ! LNKTST.CSD ! Links the self test tasks ! ! 12.03.85 ! ! ! ! ! ! ! LOCTST.CSD ! Locates the RMOS self test ! ! 04.03.86 ! ! ! ! ! ! ! ICE86.MAC ! This include file contains macros ! ! 08.07.83 ! ! ! for the ICE86 run ! ! ! ! LNKMOL.CSD ! Links the Monitor loader ! ! 04.03.86 ! ! ! ! ! ! ! LOCMOL.CSD ! Locates the Monitor loader ! ! 04.03.86 ! ! ! ! ! ! ! UPMMOL.CSD ! Programs the Monitor loader into ! ! 24.07.84 ! ! ! EPROMs ! ! ! !------------!--------------------------------------!--------!----------! !-----------------------------------------------------------------------! ! ! ! Update ! Date of ! ! Module ! Brief Description ! release! the Last ! ! ! ! ! Update ! !------------!--------------------------------------!--------!----------! ! ! Other CONFIGURATION FILES ! ! ! ! ! ! ! ! ! JMPTAB.001 ! Jump table for user tasks/drivers ! ! 04.03.86 ! ! .OBJ ! ! ! ! ! ! ! ! ! ! RMCONF.ASM ! Configuration module; it is used at ! ! 28.11.85 ! ! ! configuration time ! ! ! ! ! ! ! ! ! MTRANS ! Loads located object code files into ! V 1.1 ! 23.07.84 ! ! ! the RAM memory of the MMC216 system ! ! ! ! ! ! ! ! ! RMOS1.LIB ! RMOS library ! A.04 ! 17.12.85 ! ! ! ! ! ! ! DEBG86.LIB ! Debugger basic level library ! A.04 ! 22.11.85 ! ! ! ! ! ! ! DEB186.LIB ! Debugger 1. level ! A.04 ! 22.11.85 ! ! ! ! ! ! ! DEB286.LIB ! Debugger 2. level ! A.04 ! 22.11.85 ! ! ! ! ! ! ! DEB386.LIB ! Debugger 3. level ! A.04 ! 22.11.85 ! ! ! ! ! ! ! D3974R.LIB ! 3974R driver (block mode) MT-driver ! A.03 ! 10.02.86 ! ! ! ! ! ! ! DCON1.LIB ! System console driver (charactermode)! A.04 ! 12.11.85 ! ! ! ! ! ! ! DRVSY.LIB ! SA driver , WA driver , QGQL driver ,! A.02 ! 16.12.85 ! ! ! watchdog, SCANNER, SCANNER8 ! ! ! ! DRVAD.LIB ! Driver-PLM interface, digital input ! ! 08.07.83 ! ! ! driver, digital output driver, ! ! ! ! ! analog input driver, analog output ! ! ! ! ! driver ! ! ! ! ! ! ! ! ! T39742.OBJ ! File for testing the 3974 driver ! ! 20.01.83 ! ! ! ! ! ! ! TEST.LIB ! Test programs ! ! 25.03.85 ! ! ! ! ! ! ! MONLAD.LIB ! Monitor loader library ! A.03 ! 17.12.85 ! ! ! ! ! ! !------------!--------------------------------------!--------!----------! ! ! USER TASKS ! ! ! ! ! ! ! ! ! INIUSE.001 ! User initialization tasks ! V 1.0 ! 24.06.83 ! ! .OBJ ! ! ! ! ! ! ! ! ! ! MAIL.OBJ ! Program for setting the RMOS time ! ! 13.06.84 ! ! ! and testing the mailboxes ! ! ! !------------!--------------------------------------!--------!----------! !------------!--------------------------------------!--------!----------! ! ! ! Update ! Date of ! ! Module ! Brief Description ! release! the Last ! ! ! ! ! Update ! !------------!--------------------------------------!--------!----------! ! ! EQUATE files ! ! ! ! ! ! ! ! ! SDB.EQU ! Code macro file for ASM86 ! V 1.0 ! 18.05.84 ! ! ! ! ! ! ! SVCS.EPD ! Code macro file for PLM86 ! V 1.1 ! 18.05.84 ! ! ! ! ! ! ! CONVRT.LIT ! External declaration for debugger ! ! 17.10.84 ! ! ! conversion routine ! ! ! ! SYMBOL.102 ! SYMBOL table for debugger ! ! 12.12.85 ! ! .OBJ ! ! ! ! !------------!--------------------------------------!--------!----------! ! ! TEXT-Dateien ! ! ! ! ! ! ! ! ! INFO1.TXT ! User information (this file) ! ! 06.03.86 ! !------------!--------------------------------------!--------!----------! *** MMC216/RMOS-216 *** ****************************************************** * * * INFO1.TXT * * * * THIS FILE CONTAINS INFORMATION ABOUT * * SYSTEM MODIFICATIONS AND EXTENSIONS * * AS WELL AS GENERAL USER INFORMATION. * * * ****************************************************** USER INFORMATION ****************** 1. SYSTEM DISKETTE * The :F0: drive requires a system diskette, that contains the following programs: SUBMIT ,DELETE ,DIR , ASM86.86--- V2.0 ! PLM86.86--- V2.0 ! for developing software LINK86.86-- V2.0 ! on series III LOC86.86--- V2.0 ! RUN ,RUN.OV0 ! ASM86----only V2.1 ! PLM86----from V2.0 ! for developing software LINK86---from V1.3 ! on series II LOC86----from V1.3 ! A program performing the same functions as the series III MDS is provided for developing software with the PC16 or PG675. This program can be ordered from the E841 under the following designation: ENTWICKLUNGSSYSTEM-PAKET MES16 Executable systems generated on the PC can be loaded into the MMC-216 hardware by means of the PTRANS program. For a complete product list, contact Mr.Einwich (E841, Tel. 0911/895-3149). 2. DIL Switch setting * The switch located on the VE216/VE86 is evaluated for the X4.1 interface by the monitor loader and the RMOS system consol driver according to the following setting: 1 2 3 4 5 6 7 8 Switch number X X X X - - - - (1:Switch on ) - - - - ---------- (0: " off ) ! ! ! ! frei ! !__!__!____________ 1 : Debugger is the initialisation task ! ! ! 0 : Initialisation task has been ! ! ! specified at generation time. ! ! ! ! V V ! ! 0 0: RMOS: Baud rate, parity and number of stopbits ! according to the generation (see note). ! MONITOR: 9600 baud, odd Parity, 2 stop bits ! ! 1 0: RMOS and MONITOR: 600 baud, odd par., 2 stop bits ! ! 0 1: RMOS and MONITOR: 2400 baud, even par., 2 stop bits ! ! 1 1: RMOS and MONITOR: 4800 baud, odd Par., 2 stop bits ! ! !_______________ 1 : 7 bits 0 : 8 bits NOTE: ----- If the monitor loader has to be used with 9600 baud (switch 3 and 4 to 'off'), care must be taken, that the USART is assigned the same parameters at generation time (9600 baud, odd Parity, 2 stop bits, and 7 or 8 bits according to the position of switch). 3. CONFIGURATION WITH SERIES II MDS. Cconfiguration can also be performed with the series II. * The following restrictions must be observed when configuring on the MDS II: ASM 86 V2.1 required (not possible with ASM 86 V3.1). Only 40 tasks possible. Only 8 drivers with 5 units each (max. 40 units). * A message is issued in case of an overflow of the symbol table. * Submit files have been transcribed for the series II/III. 4. JUMPER SETTING (VE 216) FOR RMOS CLOCK. Please check the jumper settings for the RMOS system clock. The 3 timers on the VE 216 must be connected on the VE216 as follows: X9/ 1 --- 6 RMOS clock. X9/ 2 --- 5 Scanner clock, only if required. X9/ 3 --- 4 Watchdog clock, for all serial drivers. 5. NOTE ON THE DELIVERED DRIVERS: All the RMOS drivers delivered at the moment are designed for half-duplex operation, this means that if a RIO write call is made while a RIO read call is executed, the write call will not be executed until the read call is completed (see section 8: difference between the console driver A.04 and the former versions). 6. DEBUGGER STACK If the REAL format is used with the DEBUGGER, the stack size must be increased from 80 to 120 words at configuration time. 7. SUBMIT FILES From the RMOS version A.03 onwards, some submit files have been modified, so that it is possible to perform software development with the MDS and the PC16. The ICE*.CSD and UPM*.CSD submit files have not been modified. 8. CONSOL DRIVER From the RMOS version A.03, a new console driver has been delivered (DCON1 library); See RMOS description Reg. 25 'SYSTEM CONSOL DRIVER DCON1'. For an example of configuration, refer to the GENTST.CSD and GENSYS.CSD files. The driver specific data are as follows: UCD_PORT +0 USART BASE ADRESSE LOW BYTE +1 USART BASE ADRESSE HIGH BYTE +2 USART MODE 1 BYTE +3 USART MODE 2 BYTE +4 USART COMMAND BYTE +5 IDENTIFIER BYTE 1) +6 FREE BYTE +7 NO FOR WATCHDOG TABLE BYTE 2) 1) BIT 0 : LF is suppressed after CR BIT 1 : This device is the system console. The X11 DIL-switch on the VE216 is checked at USART initialisation time. BITs 2-6 : Free 2) Is assigned by the user in consecutive order, starting at TIMEOUT_ENTRY = 2 at the first UCD-Block. DCON1 is delivered with version A.04 for this RMOS-OPER. The difference between A.04 and the previous versions is: - Message "I/O-CANCELED BY TASK REQUEST" (while "CANCEL" is output) is eliminated. - If RIO read is waiting for operation and the operator has not entered any characters, outputs (RIO writes) can be performed in the mean time. RIO read can be operated again after the output is performed. 9. Errors committed in the RMOS documentation release october 84 ================================================================ Reg. 1 Table 4.1-3: Summary of Supervisor Descriptor Blocks ------------------------------------------------------------- In the STIME and TIME SVCs, pay attention to the internal format (3 words). In contrast to the usual conventions, the high-order WORD is located at the low-order address. Reg. 1 Section 4.6: Example for a SVC RIO in assembly language --------------------------------------------------------------- wrong : STATUS DD RIO_STS correct: STATUS DD ? line RIO_STS DD ? not applicable wrong : RIO_AUS: RIO 43,0,.... correct: RIO_AUS: RIO 43H,0,... Reg. 1 Section 5.1: Programming an I/O request ----------------------------------------------- Sentence preceding the title 'STATUS': Wrong: 'If bit 6 is set, the requesting task ... into the "READY" state again. ' Correct: 'If bit 6 is set, the requesting task is forced into the "WAITING" state. The task is set into the "READY" state again, after I/O completion.' Reg. 2 Section 3.5.3: PL/M Task Structure ------------------------------------------ The following has to be inserted at the end of this section. 3.5.3.1 GETPARM Procedure ========================= As mentioned in the description of the STRT SVC and the QSTRT-SVC, the requesting task can transfer 2 parameters (P1 and P2) to the target task. These two parameters correspond to the contents of the AX and BX registers. If the target task is written in PL/M-86, these two words can be fetched by means of the GETPARM procedure. The external declaration of GETPARM is contained in the SVCS.EPD file and must not be repeated (see example). DECLARE CALL$PARM POINTER; ANY$TASK: PROCEDURE(FIXED$PARM1,FIXED$PARM2) PUBLIC; DECLARE (FIXED$PARM1,FIXED$PARM2) WORD; GETPARM: PROCEDURE POINTER EXTERNAL; END GETPARM; CALL$PARM = GETPARM; The 'CALL$PARM' variable has then the values P1 and P2 (P1: offset / P2: segment). On the other hand, the FIXED$PARM1 and FIXED$PARM2 parameters contain the values TCB_BX and TCB_AX, respectively. Reg. 2 Section 4.: INTERACTIVE SYSTEM CONFIGURATION PROCEDURE -------------------------------------------------------------- The last note: NOTE: ===== The RMCONF.ASM file contains the statement $INCLUDE(:F1:RMINCL.ASM) ... ... in the INCLUDE statement. is no longer relevant and has to be crossed out. Reg. 2 Section 4.1: ENTER THE NUMBER OF THE GLOBAL EVENT --------------------------------------------------------- FLAG GROUPS (0,2 bis 32): ------------------------- Please append the following: NOTE: ===== If the configured RMOS contains device drivers and it has to service RIO calls (as it is often the case), DO NOT ENTER A ZERO HERE. Reg. 2 Section 4.1: ENTER THE SIZE OF A GLOBAL POOL (ID =: ) ------------------------------------------------------------- AND HIS SUBBLOCKSIZE: --------------------- After: 'The size of each global ... entered.' Append: GLPSIZE,SBSIZE where: GLPSIZE (byte) is the whole RAM memory (including managment) required for the global pool. SBSIZE (byte) is the size of the individual subblocks. Note on Storage Requirements: ============================= 12 bytes are required once by each global pool and 12 bytes by each subblock for managment. The number of subblocks available can then be calculated as follows: GLPSIZE - 12 A = -------------- (integer quotient) SBSIZE + 12 where the product SBSIZE * A is the net space available for messages; A is also the (maximum) number of messages in the queue. A message may be longer than SBSIZE; in each case it uses an integer quantity of subblocks. If SBSIZE is to small, the queue will be longer and the number of bytes used for the managment is also increased. Since the blocks are always used altogether, a great value assigned to SBSIZE would require too much space if the messages are short or if they have a variable length. Reg. 2 Section 4.1: UNIT CONTROL DATA (UCD'S) DEFINITION: ---------------------------------------------------------- At the explanation of the PARAMETER A the following sentence is to be crossed out: '... and the next parameter to be specified is parameter X. Parameters B and C should not be entered.' The same applies also for PARAMETER X. This means, that the PARAMETERs B,C,Y, and Z, have to be entered in either case. The sentence '... , enter a 0 here' at the explanation of PARAMETER A only, has to be substituted by '... , enter a "*" for PARAMETER A and B'. If a PL/M driver is to be used, use the following UCD description (see Register 9, Section 2.7): Parameter Description Type --------------------------------------------------------------------- Parameter A: UCD.INTNO Interruptnumber 0 Byte (default value: 0). Parameter B: UCD.INTADR Interrupt entry point Pointer (e.g. X_INT_34H). Parameter C: Correction value for PL/M-86 interrupt Byte (for ASM-86 and simple PL/M-86 routines enter a 0). Parameter X: Number of the interrupt vector for this Byte device unit. Parameter Y: Entry point of the interrupt routine's Pointer prolog. (In the case of PL/M drivers, a '#' (23H) has to be entered. This results in generating a prolog automatically. This prolog is terminated with a jump to XINTFRAM. This subroutine is contained in the PLM_DRIVER_SUPPORT (DRVAD.LIB) module. It controls part of the standard job, starts the user defined interrupt routine with a call and performs an epilog on returning from this routine.) Parameter Z: Correction value for PL/M-86 routines Byte (default value: 0). Parameter D: UCD.UNS ID of the task started by an unexpected Word Interrupt (here 0). Parameter E - M: UCD.PORT(0)-(7): user specific Byte Reg. 2 Section 6.1.1/6.1.2: Monitor loader on VE216/SPE4 -------------------------------------------------------------- The MONLAD.LNK file is no longer delivered after the RMOS Version A.04. Before proceding with the steps described in the documentation, the MONLAD.LNK file must be generated by calling the LNKMOL.CSD SUBMIT file, Reg. 3 Section 7.1: RMOS Subroutines Available to Drivers ---------------------------------------------------------- Please add at the description of 'X_XEL' the following: CAUTION ! ========= Processing X_XEL assumes, that the DS register contains the RMOS data segment (as for CALL X_ELLIPSE). The contents of the DS register must be saved by the user in case he overwrites it. Reg. 3 Section 7.1: RMOS Subroutines Available to Drivers ----------------------------------------------------------- Please add at the description of 'XSYSTEM' the following: NOTE: ===== For the current XSYSTEM and XEXSYS procedures, the PL/M-86 compiler version used to compile the interrupt procedures has to be less or equal than V2.1. Reg. 4 Section 2.3.2: Breakpoint Commands ------------------------------------------ Please add the following NOTE. NOTE: ===== If a task is currently being breakpointed a second task cannot be breakpointed at the same time. The debugger cannot manage several breakpoint contexts simultaneously. Reg. 4 Section 8.1: General Considerations ------------------------------------------- Please add the following at the end of this section: STACK SIZE: DEBUGCONVERTMOD DEBUGREACONMOD +++++++++++ X_INCON : 4CH 5AH X_OUTCON : 34H 3EH NOTE: ===== In the case of the 'TIME' and 'REAL' formats (CON = 3 or 5), it must be assumed, that the stacksize is twice as large as stated above. The reason is, that these routines are recursive, i.e. they call themselves while being executed. Reg. 4 Section 8.2: X_INCON, X_OUTCON --------------------------------------------------------------- Description format CON = 3 (TIME), wrong : ... into the format HH:MM:SS.MSS correct: ... into the format HH:MM:SS. MSS There has to be a blank character before MMS. Please add the following: NOTE: ===== If the conversion routines are used for the RMOS internal time (3 words), care must be taken, that only two words (the least significant ones) can be taken into consideration and that, after X_INCON (or before X_OUTCON), the two words HIGH and LOW from OUTPTR (or for INPTR) must be swapped (see Reg. 1, Table 4.1-2). Reg. 5.2 Section 4.2: Example of Interactive Configuration ----------------------------------------------------------- Please insert the following at the end of the section: NOTE: ===== The input '0+5H' as correction factor evaluates after the macro assembling to the same value as the input '-5H'. The conclusion '0+5H = 5H' is - though arithmetically correct - leading to an error, because the input of '5H' would be evaluated to a wrong value. Reg. 9 Section 2.7: UCD ---------------------------- Note 2) wrong : If '*' is entered, the interrupt address is ... correct: If '#' is entered, the interrupt address is ... Reg. 9 Section 4.: EXAMPLE OF CONFIGURATION --------------------------------------------- DCD definitions wrong : DIGOUT,33H,1,0,INIT002,SVC002 ANIN10,34H,1,0,INIT001,SVC001 DESADR,35H,1,0,INIT003,SVC003 ANAOUT,36H,1,0,INIT004,SVC004 correct: DIGOUT,43H,1,0,INIT002,SVC002 ANIN10,44H,1,0,INIT001,SVC001 DESADR,45H,1,0,INIT003,SVC003 ANAOUT,46H,1,0,INIT004,SVC004 Please change also the driver identifiers in the 4 DCD tables. The following german text is intended only for users, who have ordered the german documentation: 9.1 Endeckte Fehler in der RMOS-Dokumentation Stand Oktober 1984. ================================================================= Reg. 1 Abschnitt 2.3.1.5 (am Ende): ------------------------------------ Der Satz "Dieser spezielle SEFET-Systemaufruf kann benutzt werden, ......... aufzuheben" ist ungueltig, da diese Moeglichkeit noch nicht implementiert ist. In Tabelle 4.1-3 (bei der Erlaeuterung des SEFET-Aufrufes , Anmerkung 1) wird diese Moegl. wieder erwaehnt. Reg. 1 Tabelle 4.1-3 , Bei der Erlaeuterung der Aufrufe SEND -------------------------------------------------------------- und RECV: -------- Die Maske fuer den Parameter BOX ist FF00 (nicht 0FF) weil nur das hochwertige Byte bewertet wird. Die Anmerkung 1 beim SEND Aufruf ist falsch. Reg. 1 Tabelle 4.1-3 : Zusammenfassung der Supervisorbeschreibungs- -------------------------------------------------------------------- bloecke (SDB) ------------- Bei der Beschreibung der SVC's "STIME" und "TIME" , Interne Format, ( 3 WORDS ) bitte beachten, dass im Gegensatz zu der ueblichen Konventionen das hochwertige WORD auf der niederwertigen Adresse liegt. Reg. 1 Abschnitt 4.6 : Beispiel fuer SVC-RIO in Assembler. ----------------------------------------------------------- Falsch : STATUS DD RIO_STS Richtig: STATUS DD ? Zeile RIO_STS DD ? entfaellt Falsch : RIO_AUS: RIO 43,0,.... Richtig: RIO_AUS: RIO 43H,0,... Reg. 1 Abschnitt 5.1 : Programmierung einer E/A-Anforderung ------------------------------------------------------------ Satz vor den Titel "STATUS" : Falsch : "Wenn das Bit 6 gesetzt ist, wird die anfordende Task in den Zustand "WARTEND" versetzt. Sie gibt... ...... in den Zustand "BEREIT" versetzt. Richtig: "Wenn das Bit 6 gesetzt ist, wird die anfordende Task in den Zustand "WARTEND" versetzt. Nach Beendigung der E/A-Operation, wird sie wieder in den Zustand "BEREIT" versetzt. Reg. 2 Abschnitt 3.5.3 : Aufbau von PL/M-Tasks ----------------------------------------------- Am Ende, bitte (neuen) Abschnitt hinzufuegen: 3.5.3.1 Die Procedure "GETPARM" +++++++++++++++++++++++++++++++ So wie in der Beschreibung der SVC's STRT und QSTRT erlaeutert wurde, kann die aufrufende Task an die Zieltask 2 Parameter uebergeben (naemlich P1 und P2) die dem Inhalt der Register AX und BX entsprechen. Wird die Zieltask in PL/M-86 geschrieben, koennen dann diese zwei WORDS mittels der Procedure GETPARM abgeholt werden. Die External Deklaration von GETPARM ist bereits in der Datei SVCS.EPD vorhanden und soll deswegen nicht (so wie in diesem Beispiel) wiederholt werden. DECLARE CALL$PARM POINTER; ANY$TASK: PROCEDURE(FIXED$PARM1,FIXED$PARM2) PUBLIC; DECLARE (FIXED$PARM1,FIXED$PARM2) WORD; GETPARM: PROCEDURE POINTER EXTERNAL; END GETPARM; CALL$PARM = GETPARM; Die Variable "CALL$PARM" uebernimmt somit die Werte P1, P2 (P1: Offset / P2: Segment). Andererseits enthalten die Parameter FIXED$PARM1 und FIXED$PARM2 jeweils die Werte TCD_BX und TCD_AX. Reg. 2 Abschnitt 4. Interaktive Systemgenerierungsprozedur ------------------------------------------------------------ Der am Ende vom Punkt 4. erscheinende Hinweis : HINWEIS: ++++++++ In der Datei RMCONF.ASM befindet sich die Anweisung $INCLUDE(:F1:RMINCL.ASM) Erscheint bei der Assemblierung ... ... aktualisiert werden. ist nicht mehr aktuell und ist deswegen durchzustreichen. Reg. 2 Abschnitt 4.1 : ... ENTER THE SIZE OF A GLOBAL POOL (ID = ---------------------------------------------------------------------- : ) AND HIS SUBBLOCKSIZE: ------------------------- Nach: "Es ist die Groesse der einzelnen ... Unterbloecke anzugeben." Bitte anfuegen: GLPSIZE,SBSIZE wobei: GLPSIZE (Byte) ist der gesamte RAM-Speicherplatz (einschliesslich Verwaltung) der fuer den Globalen Pool benoetigt wird. SBSIZE (Byte) ist die Groesse der einzelnen Unterbloecke Hinweis fuer die Projektierung: +++++++++++++++++++++++++++++++ Fuer die Verwaltung werden 12 Byte einmal pro Globalen Pool verbraucht und 12 Byte pro Unterblock. Daraus ergibt sich eine Anzahl der zur Verfuegung stehenden Unterbloecke: GLPSIZE - 12 A = -------------- (ganzzahliger Quotient) SBSIZE + 12 wobei das Produkt SBSIZE*A der Netto-Platz ist, der fuer Botschaften zur Verfuegung steht; A ist auch die (max.) Anzahl der moeglichen Bot schaften in der Warteschlange. Eine Botschaft kann (in der Laenge) groesser als SBSIZE sein; in jedem Fall belegt sie eine ganzzahlige Menge von Unterbloecken. Wird SBSIZE zu klein gewaehlt, so wird die Warteschange entsprechend groesser, es steigt aber auch die Anzahl der Bytes die fuer die Verwaltung verbraucht werden. Da die Bloecke immer nur im Ganzen belegt werden, wuerde andererseits ein grosser Wert fuer SBSIZE viel Platz verschenken wenn die Botschaften kurz (oder von variabler Laenge) sind. Reg. 2 Abschnitt 4.1 : Ablauf der Systemgenerierung ---------------------------------------------------- Bei "ENTER THE NUMBER OF THE GLOBAL EVENT FLAG GROUPS (0,2 bis 32): bitte, hinzufuegen: HINWEIS: ++++++++ Wenn das generierte RMOS Geraetetreiber enthaelt und RIO-Aufrufe bearbeiten soll (so wie es meistens der Fall ist), DARF HIER NICHT NULL EINGEGEBEN WERDEN. Reg. 2 Abschnitt 4.1 : Ablauf der Systemgenerierung ---------------------------------------------------- Bei "UNIT CONTROL DATA (UCD'S) DEFINITION: , Erlaeuterung von Parameter "A" heisst es: Es ist der Sendeinterruptvektor des Geraetes anzugeben. Ist kein Sendeinterruptvektor vorhanden, ist hier eine Null einzugeben. und als naechster Parameter ist Parameter X anzugeben. Parameter B und C duerfen dann nicht versorgt werden. Der Satz: '... und als naechster Parameter ist Parameter X anzugeben. Parameter B und C duerfen dann nicht versorgt werden.' ist durchzustreichen. Entsprechendes gilt auch fuer den Parameter "X". Die Paramter B, C, Y und Z muessen also in jedem Fall versorgt werden. Der Satz '... , ist hier eine 0 einzugeben' ist nur fuer den PARAMETER A durch den Satz '... , ist sowohl fuer PARAMETER A als auch fuer PARAMETER B ein "*" einzugeben.' zu ersetzten. Soll ein PLM-Treiber eingesetzt werden, so sollte folgende UCD-Beschreibung (siehe auch Register 9, Abschnitt 2.7) verwendet werden: Parameter Beschreibung Typ --------------------------------------------------------------------- Parameter A: UCD.INTNO Interruptnummer 0 Byte (muss mit 0 vorbesetzt sein). Parameter B: UCD.INTADR Einsprungadresse der Interruptbehandlungs- Pointer routine (z.B. X_INT_34H). Parameter C: Korrekturwert fuer PLM86 Interruptprozeduren Byte (bei ASM86 und bei einfachen PLM86 Prozeduren 0 eintragen). Parameter X: Nummer des Interruptvektors fuer diese Byte Geraeteeinheit. Parameter Y: Einsprungadresse des Prologs der Interrupt- Pointer behandlungsroutine. (Bei PLM - Treibern, wird ein '#' (23H) ein- gegeben. Dadurch wird ein automatischer Prolog erzeugt, der mit einem Sprung auf XINTFRAM endet. Dieses Unterprogramm ist neben anderen in dem Modul PLM_DRIVER_SUPPORT (DRVAD.LIB) enthalten. Es uebernimmt einiges der Standard- arbeit, ruft die anwenderdefinierte Interruptbehandlungsroutine mit einem CALL auf und fuehrt bei Rueckkehr aus dieser Routine die Nachbereitung aus.) Parameter Z: Korrekturwert fuer PLM86 Prozeduren Byte (muss mit 0 vorbesetzt sein). Parameter D: UCD.UNS ID der Task, die bei einem unerwarteten Word Interrupt gestartet wird (hier 0). Parameter E - M: UCD.PORT(0)-(7): anwenderspezifisch Byte Reg. 2 Abschnitt 6.1.1/6.1.2: Monitorlader auf VE216/SPE4 -------------------------------------------------------------- Ab der RMOS-Version A.04 wird die Datei MONLAD.LNK nicht mehr geliefert. Bevor die in der Dokumentation beschriebenen Schritte getan werden, muss daher durch Aufruf der SUBMIT-Datei LNKMOL.CSD die Datei MONLAD.LNK erzeugt werden. Reg. 3 Abschnitt 5.1 (am Ende des Abschnitts, vor der Tabelle) -------------------------------------------------------------------- Falsch : Das Treiberumfeld ist ... (siehe Abbildung 5): Richtig: " " " ... (siehe auch Abschnitt 6.5): Reg. 3 Abschnitt 7.1 : RMOS-Unterprogramme fuer Treiber. --------------------------------------------------------- Bei der Beschreibung von "X_XEL" , bitte hinzufuegen: ACHTUNG ! +++++++++ Die Bearbeitung bei X_XEL setzt voraus dass (so wie nach CALL X_ELIPSE) das Register DS das RMOS-Datensegment enthaelt. Der Anwender soll DS vorher retten falls er es in seinem Programm ueberschreibt. Reg. 3 Abschnitt 7.1 : RMOS Unterprogramme fuer Treiber ---------------------------------------------------------- Bei der Erlaeuterung der Routine XSYSTEM, nach dem angegebenen Beispiel, bitte hinzufuegen: HINWEIS: ++++++++ Bei dem aktuellen Lieferstand der Prozeduren XSYSTEM und XEXSYS darf die fuer die Uebersetzung der Interrupt-Proceduren verwendete (PL/M-86)-Compilerversion nicht neuer als V2.1 sein. Reg. 4 Abschnitt 2.3.2 : Breakpoint-Kommandos ----------------------------------------------- Bitte HINWEIS hinzufuegen: HINWEIS: ++++++++ Befindet sich bereits eine Task auf einem Haltepunkt, so ist es nicht zulaessig (ueber eine ZWEITE Task) ebenfalls auf einen zweiten Haltepunkt zu fahren. Der Debugger kann nicht gleichzeitig mehrere "Breakpoint-Kontexte" verwalten. Reg. 4 Abschnitt 8.1 : (Thema: stack size fuer Konvertierungsroutinen) ----------------------------------------------------------------------- Am Ende des Abschnittes bitte hinzufuegen: STACK SIZE: DEBUGCONVERTMOD DEBUGREACONMOD +++++++++++ X_INCON : 4CH 5AH X_OUTCON : 34H 3EH HINWEIS: ++++++++ Bei den Formaten "TIME" und "REAL" (CON = 3 oder 5) ist (sowohl fuer X_INCON als auch fuer X_OUTCON) der Stackbedarf doppelt so gross wie die obige Angabe anzunehmen. Grund dafuer ist, dass diese Routinen bei diesen Formaten "rekursiv-programmiert" sind, d.h. im Lauf der Bearbeitung, rufen sie sich selbst auf. Reg. 4 Abschnitt 8.2: Konvertierungsroutinen X_INCON, X_OUTCON --------------------------------------------------------------- Bei der Erlaeuterung der Format CON = 3 (TIME), Falsch : ...enthaelt in das Format HH:MM:SS.MSS Richtig: ...enthaelt in das Format HH:MM:SS. MSS d.h. vor der MSS-Angabe gehoert ein Leerzeichen. Bitte hinzufuegen: HINWEIS: ++++++++ Werden die Konvertierungsroutinen fuer die RMOS-Interne-Zeit (3 WORDS) verwendet, so ist zu beachten dass nur 2 WORDS (die niederwertigsten) beruecksichtigen werden koennen und dass nach X_INCON (bzw. vor X_OUTCON), die 2 WORDS HIGH und LOW aus OUTPTR (bzw. in INPTR) vertauscht werden muessen (siehe Anmerkung bei der Erlaeuterung der SVC's TIME und STIME in Reg. 1, Tabelle 4.1-2). Reg. 5.2 Abschnitt 4.2 : Beispiel fuer die Interaktive Generierung ------------------------------------------------------------------- Am Ende des Abschnittes bitte hinzufuegen: HINWEIS: ++++++++ Die Eingabe "0+5H" als Korrekturfaktor ergibt nach der Macro-Assemblierung denselben Wert wie die Eingabe "-5H". Die Schlussfolge "0+5h = 5h" (zwar arithmetisch richtig) ist hier irrefuehrend, denn die Eingabe "5h" fuehrt zur Berechnung eines falschen Wertes. Reg. 8 Abschnitt 4. : (QG/QL-Treiber) -------------------- Ergaenzung: "In der Liste USER$SYSTERRLI sind bis zu 10 Eintragungen moeglich." Reg. 9 Abschnitt 2.7 : UCD ---------------------------- Fussnote 2) FALSCH: Bei der Eingabe von "*" wird ... erzeugt. RICHTIG: Bei der Eingabe von "#" wird ... erzeugt. Reg. 9 Abschnitt 4. : Generierbeispiel ---------------------------------------- DCD-Definitionen Falsch: DIGOUT,33H,1,0,INIT002,SVC002 ANIN10,34H,1,0,INIT001,SVC001 DESADR,35H,1,0,INIT003,SVC003 ANAOUT,36H,1,0,INIT004,SVC004 Richtig: DIGOUT,43H,1,0,INIT002,SVC002 ANIN10,44H,1,0,INIT001,SVC001 DESADR,45H,1,0,INIT003,SVC003 ANAOUT,46H,1,0,INIT004,SVC004 Bitte aendern Sie auch die Treiberkennungen in den 4 DCD-Tabellen. Reg. 10.1 Abschnitt 4.1 : Speicheraufteilung ---------------------------------------------- Falsch : Der Monitorlader-Programm MONLAD besteht aus zwei Modulen: .. Richtig: " " " " " drei " MONITOR216 ca. 6500 Byte CODE, 140 Byte DATA MONITORBIO_VE216 ca. 1600 Byte CODE, 25 Byte DATA MONITOR_LOADER ca. 5600 Byte CODE, 480 Byte DATA 10. Driver identifiers already assigned ======================================= The driver identifiers are assigned by: SIEMENS Erlangen, EMA-W/T1, Mr Ricci, Tel. 09131-721437. Please contact us if you write a RMOS driver. 00H SYSCON 01H 3964R 02H 3974R 03H CON1 06H PT80 0AH DEST 10H SBI1 16H DRU1 20H LIKO 21H PROVEST 22H SINEC H1 30H FLOPPY 31H HDDISK 32H BUBBLE 34H MSF1 43H DIGOUT 44H ANIN10 45H DESADR 46H ANAOUT Summary of the RMOS Products: ============================= Operating System: ------------------ Product: RMOS-OPER MLFB-Nr.: 6BA2216-0AQ00 Master license -1AQ00 Update Contents: - RMCONF.ASM Configuration module - JUMPTABLE for user tasks/drivers - MTRANS: Loads located object files from the MDS into the RAM memory of the MMC216 system. - RMOS Library - Debugger Basic Level - Debugger 1. Level - Debugger 2. Level - Debugger 3. Level - 3974R Driver (block mode) MT Driver - System Console Driver (character mode) - Timeout Driver, Restart Driver and Power Failure Driver - Watchdog function, SCANNER, SCANNER8 - Driver PL/M Interface, Digital Input Driver, Digital Output Driver, Analog Input Driver, Analog Output Driver - File for testing the 3974 Driver - Selftest Programs - Monitor Loader Library - Example of User Initialisation Task - Program for setting the RMOS time and testing mailboxes (Sample user program) - various SUBMIT and EQUATE files Programming Aids: ----------------- Product: RMOS-PRO1 MLFB-Nr.: 6BJ5000-0AQ00 Master license -1AQ00 Update Contents: - 3974R driver (ASM example in source code for writing drivers), - Process Interface Module driver (driver frame for PIM driver, PL/M sample driver), - RMOS test program (SVC test in source code), - SB01-Scanner / Scanner 8 (source code), - Timeout-, Restart- and Power Failure driver (source code). File System: ------------ Product: RMOS-FISY MLFB-Nr.: 6BB6316-0AQ00 Master license -1AQ00 Update Contents: - Floppy driver (8"), - Winchester driver, - ISIS-II compatible File Managment System, - Command Line Interpreter, - various Test Tasks and EQUATE Files. Bubble Driver: -------------- Product: RMOS-BUBB MLFB-Nr.: 6BB2516-0AQ00 Master license -1AQ00 Update Contents: - Bubble Driver for the ISIS-II compatible File Managment System. Floppy Driver MSF1 (ASDI): -------------------------- Product: RMOS-MSF1 MLFB-Nr.: 6BB2316-0AQ00 Master license -1AQ00 Update Contents: - Floppy driver for the ISIS-II compatible File Managment System. Up to 4 floppy drives can be operated (8" SD, 8" DD, 5.25" 40 Tracks, 5.25" 80 Tracks). Driver program package: ----------------------- Product: RMOS-PER1 MLFB-Nr.: 6BA6216-0AQ00 Master license -1AQ00 Update Contents: - KOP1: 3964/3964R Link Driver - DRU1: Printer Driver for PT88, UD3, MT80, EPSON, ... - PT80: Driver for the PT80 I/O writer - DEST: 38xx Driver for the DEST SBI1 Scanner: ------------- Product: RMOS-SBI1 MLFB-Nr.: 6BP9381-0AQ00 Master license -1AQ00 Update Contents: - Driver for the interrupt generating USART module. Hardwaretest: ------------- Product: RMOS-HWTEST MLFB-Nr.: 6BE6000-0AQ00 Master license -1AQ00 Update Contents: - Hardwaretest of the PU. Runs at each RESET.