SAT is a structured commanfile precompiler released by Lars-Goran Olsson at VTS Transportations Systems of the Volvo group, Gothenburg, Sweden. SAT takes a special source file and translates it to an executable .CMD-file. If you have IPP on your system, the preferred way is to compile the .CMD-file again and use the .CMF-file as the "executable image". In this way you will get a really powerful tool for writing small "programs". SAT command format is: SAT [, [/sw] ] = The outfile defaults to SY:[current]filename.CMD The listfile defaults to SY:[current]filename.LST Valid switches are /TM { print tabmarks}, default /-TM /-WR { no warnings}, default /WR The infile defaults to SY:[current]filename.SAT All warnings in the .LST-file will be printed on the line following the error. For more information type HELP SAT SYNTAX For an example on how to use SAT type HELP SAT EXAMPLE 2 SYNTAX Comments can be written as .; in the beginning of the line or as ! in any other position with the comment following the !-sign. The commands are in a JSP-like syntax. 'POSIT'-'QUIT'-'QUITIF'-'ADMIT'-'ENDPOSIT' 'WHILE'-'ENDDO'-'BREAK'-'BREAKIF' 'IF'-'ELSIF'-ELSE'-'ENDIF' 'CASE'-'WHEN'-'OTHER'-'ENDCASE' 'PERFORM'-'SECTION'-'ENDSECT' 'PAGE', which is a pagination facility on the listfile only. Note ! All the "structured" commands are to be preceeded by nine blanks or a TAB. No labels allowed on "structured" commands. "'" is mandatory. The recommended way is to place all commands beginning after a tab and reserve the lefthand column for labels only. 2 EXAMPLES Infile SATEX.SAT below: .ENABLE SUBSTITUTION .ENABLE GLOBAL .SETS FIL "" 'PERFORM' FILIN 'WHILE'.IF FIL NE "" 'POSIT' ! Everithing is OK .TESTFILE 'FIL' 'QUITIF'.IF NE 1 !FILE missing .OPENR #0 'FIL' .SETN I 1. 'PERFORM' READLINE 'WHILE'.IFF !More lines 'PERFORM' WRITE .INC I 'BREAKIF'.IF I GT 100 ! No more than 100 'PERFORM' READLINE 'ENDDO' .CLOSE #0 'ADMIT' !Something is wrong ; The file 'FIL' is missing ! 'ENDPOSIT' 'PERFORM' FILIN 'ENDDO' .EXIT 'PAGE' 'SECTION' FILIN .; .ASKS FIL : GIVE FILENAME .. .; 'ENDSECT' 'PAGE' 'SECTION' READLINE .; .READ #0 LINE .; 'ENDSECT' 'PAGE' 'SECTION' WRITE .; 'IF'.IF I GT 10. !SPECIAL LINES ;  !sound BELL 'ELSIF'.IF I EQ 1. ! VERY SPECIAL LINE ; ***LINE 1*** ;  !sound BELL 3 times ;  ;  'ELSE' 'CASE' I 'WHEN' 2. ;LINE 2 'WHEN' 3. ;LINE 3 'WHEN' 4. ;LINE 4 'OTHER' ;NO ACTION 'ENDCASE' 'ENDIF' ; 'LINE' .; 'ENDSECT'