// TRN6
GET "TRNHDR"
LET COMPLAB(L) BE OUT2P(S.LAB, L)
AND COMPENTRY(N, L) BE
$( LET S = @N!2
OUT3P(S.ENTRY, GETBYTE(S, 0), L)
FOR I = 1 TO GETBYTE(S, 0) DO OUTC(GETBYTE(S, I))
WRC('*S') $)
AND COMPDATALAB(L) BE OUT2P(S.DATALAB, L)
AND COMPJUMP(L) BE OUT2P(S.JUMP, L)
AND OUTN1(X) BE
$( WRN(X); WRC('*S') $)
AND OUT1(X) BE
$( WRITEOP(X); WRC('*S') $)
AND OUT2(X, Y) BE
$( WRITEOP(X); WRC('*S')
WRN(Y); WRC('*S') $)
AND OUT2P(X, Y) BE
$( WRITEOP(X); WRC('*S'); WRC('L')
WRN(Y); WRC('*S') $)
AND OUT3P(X, Y, Z) BE
$( WRITEOP(X); WRC('*S')
WRN(Y); WRC('*S'); WRC('L')
WRN(Z); WRC('*S') $)
AND OUTN(N) BE WRN(N)
AND OUTL(X) BE
$( WRC('*S'); WRC('L'); WRN(X); WRC('*S') $)
AND OUTC(X) BE
$( WRN(CHARCODE(X)); WRC('*S') $)
AND WRITEOP(X) BE
TEST OPTION!6 THEN WRN(X) // produce numeric ocode
OR
$(1 LET S = VALOF SWITCHON X INTO
$( DEFAULT: TRANSREPORT(199, CURRENTBRANCH)
RESULTIS 'ERROR'
CASE S.MULT: RESULTIS "MULT"
CASE S.DIV: RESULTIS "DIV"
CASE S.REM: RESULTIS "REM"
CASE S.PLUS: RESULTIS "PLUS"
CASE S.MINUS: RESULTIS "MINUS"
CASE S.EQ: RESULTIS "EQ"
CASE S.NE: RESULTIS "NE"
CASE S.LS: RESULTIS "LS"
CASE S.GR: RESULTIS "GR"
CASE S.LE: RESULTIS "LE"
CASE S.GE: RESULTIS "GE"
CASE S.LSHIFT: RESULTIS "LSHIFT"
CASE S.RSHIFT: RESULTIS "RSHIFT"
CASE S.LOGAND: RESULTIS "LOGAND"
CASE S.LOGOR: RESULTIS "LOGOR"
CASE S.EQV: RESULTIS "EQV"
CASE S.NEQV: RESULTIS "NEQV"
CASE S.NEG: RESULTIS "NEG"
CASE S.NOT: RESULTIS "NOT"
CASE S.ABS: RESULTIS "ABS"
CASE S.RV: RESULTIS "RV"
CASE S.TRUE: RESULTIS "TRUE"
CASE S.FALSE: RESULTIS "FALSE"
CASE S.QUERY: RESULTIS "QUERY"
CASE S.LP: RESULTIS "LP"
CASE S.LG: RESULTIS "LG"
CASE S.LN: RESULTIS "LN"
CASE S.LSTR: RESULTIS "LSTR"
CASE S.LL: RESULTIS "LL"
CASE S.LLP: RESULTIS "LLP"
CASE S.LLG: RESULTIS "LLG"
CASE S.LLL: RESULTIS "LLL"
CASE S.SP: RESULTIS "SP"
CASE S.SG: RESULTIS "SG"
CASE S.SL: RESULTIS "SL"
CASE S.STIND: RESULTIS "STIND"
CASE S.GETBYTE: RESULTIS "GETBYTE"
CASE S.PUTBYTE: RESULTIS "PUTBYTE"
CASE S.JUMP: RESULTIS "JUMP"
CASE S.JT: RESULTIS "JT"
CASE S.JF: RESULTIS "JF"
CASE S.GOTO: RESULTIS "GOTO"
CASE S.LAB: RESULTIS "LAB"
CASE S.STACK: RESULTIS "STACK"
CASE S.STORE: RESULTIS "STORE"
CASE S.ENTRY: RESULTIS "ENTRY"
CASE S.SAVE: RESULTIS "SAVE"
CASE S.FNAP: RESULTIS "FNAP"
CASE S.FNRN: RESULTIS "FNRN"
CASE S.RTAP: RESULTIS "RTAP"
CASE S.RTRN: RESULTIS "RTRN"
CASE S.ENDPROC: RESULTIS "ENDPROC"
CASE S.RES: RESULTIS "RES"
CASE S.RSTACK: RESULTIS "RSTACK"
CASE S.FINISH: RESULTIS "FINISH"
CASE S.NEEDS: RESULTIS "NEEDS"
CASE S.SECTION: RESULTIS "SECTION"
CASE S.SWITCHON:RESULTIS "SWITCHON"
CASE S.GLOBAL: RESULTIS "GLOBAL"
CASE S.DATALAB: RESULTIS "DATALAB"
CASE S.ITEML: RESULTIS "ITEML"
CASE S.ITEMN: RESULTIS "ITEMN" $)
FOR I = 1 TO GETBYTE(S, 0) DO WRC(GETBYTE(S, I)) $)1
AND WRN(N) BE $( IF N<0 DO $( WRC('-'); N := - N $)
WRPN(N) $)
AND WRPN(N) BE $( IF N>9 DO WRPN(N/10)
WRC(N REM 10 + '0') $)
AND ENDOCODE() BE $( WRCH('*N'); OCOUNT := 0 $)
AND WRC(CH) BE $( OCOUNT := OCOUNT + 1
IF OCOUNT>62 LOGAND CH='*S' DO
$( WRCH('*N'); OCOUNT := 0; RETURN $)
WRCH(CH) $)
.