(C) ESC, 26 Jun. 2002.  MMIX ROM.

ROM address: EE00 0000 0000 0000

% PRINT INTEGER
EE0...010   F000 001C   JMP     00001C ==> EE0...080

% INPUT INTEGER
EE0...014   F000 002F   JMP     00002F ==> EE0...0D0

% PRINT REAL
EE0...018   E372 0009   SETL    $72,  0009
EE0...01C   F000 00A7   JMP     0000A7 ==> EE0...2B8

% INPUT REAL
EE0...020   F000 00CF   JMP     0000CF ==> EE0...35C

% PRINT CHAR
EE0...024   F000 0097   JMP     000097 ==> EE0...280

% INPUT CHAR
EE0...028   F000 0098   JMP     000098 ==> EE0...288

% PRINT BOOLEAN
EE0...02C   F000 0099   JMP     000099 ==> EE0...290

% PRINT TEXT
EE0...030   F000 004E   JMP     00004E ==> EE0...168

% CR/LF
EE0...034   F000 0057   JMP     000057 ==> EE0...190


%-------------------------------------------------------------
%sub PRINT INTEGER
%Call: GO $6F, $70, 10
%IN: $71 - number (not kept); OUT: no
%-------------------------------------------------------------
EE0...080   E072 EA00   SETH    $72,  EA00
EE0...084   E772 007F   INCL    $72,  007F
EE0...088   E373 0024   SETL    $73,  0024
EE0...08C   A373 7200   STBUI   $73,  $72, 00
EE0...090   4871 0003   BNN     $71,  0003 ==> EE0...09C
EE0...094   E373 002D   SETL    $73,  002D
EE0...098   0005 0273   TRAP    5/02, $73 (I/O)
EE0...09C   1D74 710A   DIVI    $74,  $71, 0A
EE0...0A0   1973 740A   MULI    $73,  $74, 0A
EE0...0A4   2473 7173   SUB     $73,  $71, $73
EE0...0A8   4871 0003   BNN     $71,  0003 ==> EE0...0B4
EE0...0AC   C573 7300   NORI    $73,  $73, 00
EE0...0B0   E773 0001   INCL    $73,  0001
EE0...0B4   2173 7330   ADDI    $73,  $73, 30
EE0...0B8   2572 7201   SUBI    $72,  $72, 01
EE0...0BC   A373 7200   STBUI   $73,  $72, 00
EE0...0C0   2171 7400   ADDI    $71,  $74, 00
EE0...0C4   4B71 FFF6   BNZB    $71,  FFF6 ==> EE0...09C
EE0...0C8   0005 0972   TRAP    5/09, $72 (I/O)
EE0...0CC   9F6F 6F00   GOI     $6F,  $6F, 00

%-------------------------------------------------------------
%sub INPUT INTEGER
%Call: GO $6F, $70, 14
%IN: no; OUT: $71 - input number;
%-------------------------------------------------------------
EE0...0D0   E072 EA00   SETH    $72,  EA00
EE0...0D4   E772 0060   INCL    $72,  0060
EE0...0D8   E371 0016   SETL    $71,  0016
EE0...0DC   A171 7200   STBI    $71,  $72, 00
EE0...0E0   0005 0A72   TRAP    5/0A, $72 (I/O)
EE0...0E4   E772 0002   INCL    $72,  0002
EE0...0E8   8171 7200   LDBI    $71,  $72, 00
EE0...0EC   3171 712D   CMPI    $71,  $71, 2D
EE0...0F0   E373 0001   SETL    $73,  0001
EE0...0F4   E374 0000   SETL    $74,  0000
EE0...0F8   4A71 0003   BNZ     $71,  0003 ==> EE0...104
EE0...0FC   2573 7302   SUBI    $73,  $73, 02
EE0...100   E774 0001   INCL    $74,  0001
EE0...104   E371 0000   SETL    $71,  0000
EE0...108   8275 7274   LDBU    $75,  $72, $74
EE0...10C   3176 750D   CMPI    $76,  $75, 0D
EE0...110   4276 000A   BZ      $76,  000A ==> EE0...138
EE0...114   2575 7530   SUBI    $75,  $75, 30
EE0...118   4075 0009   BN      $75,  0009 ==> EE0...13C
EE0...11C   3176 750A   CMPI    $76,  $75, 0A
EE0...120   4476 0007   BP      $76,  0007 ==> EE0...13C
EE0...124   1971 710A   MULI    $71,  $71, 0A
EE0...128   1875 7573   MUL     $75,  $75, $73
EE0...12C   2071 7175   ADD     $71,  $71, $75
EE0...130   2174 7401   ADDI    $74,  $74, 01
EE0...134   F1FF FFF5   JMPB    FFFFF5 ==> EE0...108
EE0...138   9F6F 6F00   GOI     $6F,  $6F, 00
EE0...13C   E373 0020   SETL    $73,  0020
EE0...140   4274 0004   BZ      $74,  0004 ==> EE0...150
EE0...144   0005 0273   TRAP    5/02, $73 (I/O)
EE0...148   2574 7401   SUBI    $74,  $74, 01
EE0...14C   F1FF FFFD   JMPB    FFFFFD ==> EE0...140
EE0...150   2176 6F00   ADDI    $76,  $6F, 00
EE0...154   9F6F 7030   GOI     $6F,  $70, 30
EE0...158   075E 3F3F   #07 '^??'
EE0...15C   3F07 0D0A   '?' #07 #0D #0A
EE0...160   216F 7600   ADDI    $6F,  $76, 00
EE0...164   F1FF FFDB   JMPB    FFFFDB ==> EE0...0D0

%-------------------------------------------------------------
%sub PRINT TEXT
%Call: GO $6F, $70, 30
%IN: no (text must follow sub call); OUT: no;
%-------------------------------------------------------------
EE0...168   8171 6F00   LDBI    $71,  $6F, 00
EE0...16C   E76F 0001   INCL    $6F,  0001
EE0...170   8172 6F00   LDBI    $72,  $6F, 00
EE0...174   0005 0272   TRAP    5/02, $72 (I/O)
EE0...178   2571 7101   SUBI    $71,  $71, 01
EE0...17C   4571 FFFC   BPB     $71,  FFFC ==> EE0...16C
EE0...180   E76F 0004   INCL    $6F,  0004
EE0...184   3F6F 6F02   SRUI    $6F,  $6F, 02
EE0...188   3B6F 6F02   SLUI    $6F,  $6F, 02
EE0...18C   9F6F 6F00   GOI     $6F,  $6F, 00

%-------------------------------------------------------------
%sub CR/LF
%Call: GO $6F, $70, 34
%IN: no; OUT: no;
%-------------------------------------------------------------
EE0...190   E371 000A   SETL    $71,  000A
EE0...194   0005 0271   TRAP    5/02, $71 (I/O)
EE0...198   E371 000D   SETL    $71,  000D
EE0...19C   0005 0271   TRAP    5/02, $71 (I/O)
EE0...1A0   9F6F 6F00   GOI     $6F,  $6F, 00


%-------------------------------------------------------------
%sub PRINT CHAR
%Call: GO $6F, $70, 24
%IN: $71 - symbol; OUT: no;
%-------------------------------------------------------------
EE0...280   0005 0271   TRAP    5/02, $71 (I/O)
EE0...284   9F6F 6F00   GOI     $6F,  $6F, 00

%-------------------------------------------------------------
%sub INPUT CHAR
%Call: GO $6F, $70, 28
%IN: no; OUT: $71 - symbol;
%-------------------------------------------------------------
EE0...288   0005 0171   TRAP    5/01, $71 (I/O)
EE0...28C   9F6F 6F00   GOI     $6F,  $6F, 00

%-------------------------------------------------------------
%sub PRINT BOOLEAN
%Call: GO $6F, $70, 2C
%IN: $71 - boolean value (0 - false); OUT: no;
%-------------------------------------------------------------
EE0...290   2173 6F00   ADDI    $73,  $6F, 00
EE0...294   4271 0005   BZ      $71,  0005 ==> EE0...2A8
EE0...298   9F6F 7030   GOI     $6F,  $70, 30
EE0...29C   0454 5255           #4 'TRU'
EE0...2A0   4500 0000           'E'
EE0...2A4   9F73 7300   GOI     $73,  $73, 00
EE0...2A8   9F6F 7030   GOI     $6F,  $70, 30
EE0...2AC   0546 414C           #5 'FAL'
EE0...2B0   5345 0000           'SE'
EE0...2B4   9F73 7300   GOI     $73,  $73, 00

%-------------------------------------------------------------
%sub PRINT REAL
%Call: GO $6F, $70, 18
%IN: $71 - number (not kept); OUT: no
%-------------------------------------------------------------
EE0...2B8   2176 6F00   ADDI    $76,  $6F, 00
EE0...2BC   0273 7171   FUN     $73,  $71, $71
EE0...2C0   4273 0004   BZ      $73,  0004 ==> EE0...2D0
EE0...2C4   9F6F 7030   GOI     $6F,  $70, 30
EE0...2C8   034E 414E           #3 'NAN'
EE0...2CC   9F76 7600   GOI     $76,  $76, 00
EE0...2D0   E375 0000   SETL    $75,  0000
EE0...2D4   4271 0017   BZ      $71,  0017 ==> EE0...330
EE0...2D8   3173 7100   CMPI    $73,  $71, 00
EE0...2DC   4873 0004   BNN     $73,  0004 ==> EE0...2EC
EE0...2E0   E373 002D   SETL    $73,  002D
EE0...2E4   0005 0273   TRAP    5/02, $73 (I/O)
EE0...2E8   EC71 8000   ANDNH   $71,  8000
EE0...2EC   E074 4024   SETH    $74,  4024
EE0...2F0   E073 3FF0   SETH    $73,  3FF0
EE0...2F4   2175 7200   ADDI    $75,  $72, 00
EE0...2F8   1073 7374   FMUL    $73,  $73, $74
EE0...2FC   2572 7201   SUBI    $72,  $72, 01
EE0...300   4572 FFFE   BPB     $72,  FFFE ==> EE0...2F8
EE0...304   0172 7173   FCMP    $72,  $71, $73
EE0...308   4072 0004   BN      $72,  0004 ==> EE0...318
EE0...30C   1471 7174   FDIV    $71,  $71, $74
EE0...310   2175 7501   ADDI    $75,  $75, 01
EE0...314   F1FF FFFC   JMPB    FFFFFC ==> EE0...304
EE0...318   1473 7374   FDIV    $73,  $73, $74
EE0...31C   0172 7173   FCMP    $72,  $71, $73
EE0...320   4872 0004   BNN     $72,  0004 ==> EE0...330
EE0...324   1071 7174   FMUL    $71,  $71, $74
EE0...328   2575 7501   SUBI    $75,  $75, 01
EE0...32C   F1FF FFFC   JMPB    FFFFFC ==> EE0...31C
EE0...330   E372 0030   SETL    $72,  0030
EE0...334   0005 0272   TRAP    5/02, $72 (I/O)
EE0...338   E372 002E   SETL    $72,  002E
EE0...33C   0005 0272   TRAP    5/02, $72 (I/O)
EE0...340   1771 0071   FINT    $71,  00, $71
EE0...344   9F6F 7010   GOI     $6F,  $70, 10
EE0...348   E372 0065   SETL    $72,  0065
EE0...34C   0005 0272   TRAP    5/02, $72 (I/O)
EE0...350   2171 7500   ADDI    $71,  $75, 00
EE0...354   9F6F 7010   GOI     $6F,  $70, 10
EE0...358   9F76 7600   GOI     $76,  $76, 00
