Univac 1050 emulator

9 views
Skip to first unread message

sboy...@gmail.com

unread,
Mar 19, 2025, 12:03:39 PMMar 19
to Univac Emulators
Well, I have just successfully run my first, very simple test program on the 1050 emulator. Still a long way to go but it is a start. I'm not going to get this thing done before I start travelling for the summer, so don't hold your breath. :)

sboy...@gmail.com

unread,
Mar 20, 2025, 11:02:33 AMMar 20
to Univac Emulators
The source for a first, simple 1050 program:


START    BEGIN 0600
.
. TETRAD INSTRUCTION AND INDEX REGISTER TESTS
.
TX1      EQU   9                       X1 TETRAD ADDRESS
X1       EQU   1                       X1 REGISTER NUMBER
.
. ADD 1 TO TETRAD TEST
.
         BT    ZERO,TX1                LOAD INDEX REG 1 WITH ZERO
         AT    ONE,TX1                 ADD 1 TO IT
         ST    RSLT1,TX1               AND SAVE IT TO MEMORY
         CT    ONE,TX1                 IS THE RESULT ONE?
         JE    OK1                     YES
         JD    040001                  NO, DISPLAY ERROR CODE
.        
. X1 NOW CONTAINS 1. LET'S ADD 3 TO IT
.
OK1      FT    3,TX1,X1                ADD 3 TO X1
         ST    RSLT2,TX1               AND SAVE IT TO MEMORY
         CT    FOUR,TX1                IS THE RESULT 4?
         JE    OK2                     YES
         JD    040002                  NO, DISPLAY ERROR CODE
.
. X1 NOW CONTAINS 4. LET'S USE IT TO LOAD X1 WITH ONE
. THE HARD WAY.
.
OK2      BT    ZERO,TX1,X1             CONTENTS OF (ZERO+4) SB ONE
         CT    ONE,TX1                 IS IT REALLY ONE?
         JE    OK3                     YES
         JD    040003                  NO, DISPLAY ERROR CODE
.
OK3      JD    0                       ALL TESTS OK                  

ZERO     +4    0
ONE      +4    1
THREE    +4    3
FOUR     +4    4

         ORIG  01400
         AREA  32
RSLT1    -     4        
RSLT2    -     4
RSLT3    -     4
RSLT4    -     4
RSLT5    -     4
RSLT6    -     4
RSLT7    -     4
RSLT8    -     8

         END   START

Andy Fowler

unread,
Mar 20, 2025, 11:04:31 AMMar 20
to sboy...@gmail.com, Univac Emulators

This is brilliant .. well done.


--
You received this message because you are subscribed to the Google Groups "Univac Emulators" group.
To unsubscribe from this group and stop receiving emails from it, send an email to u9200-emulato...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/u9200-emulator/7d4dfef1-8731-4236-8111-cd608b46fc4fn%40googlegroups.com.

sboy...@gmail.com

unread,
Mar 31, 2025, 12:14:18 PMMar 31
to Univac Emulators
I've been making decent progress. The instruction set is complete and I've made start on the I/O. The printer and card reader seem to be working in non-interrupt mode.

Here is a simple program to test the reader and printer.

     1 00600                             START    BEGIN 0600                                                                        
    2 00600                             .                                                                                          
    3 00600                             . **** I/O TESTS ****                                                                      
    4 00600                             .                                                                                          
    5 00600                             .                                                                                          
    6 00600                             . PRINT WITHOUT INTERRUPT AND WITHOUT WAITING FOR I/O TO COMPLETE                          
    7 00600                             .                                                                                          
    8 00600                  4400064205          SC    PJUMP+4,5               SET LOOP COUNT TO 5                                  
    9 00605                  2000105340 PLOOP    FT    L1,32                   BFR ADDR TO TETRAD 32                                
   10 00612                  2000000141          FT    1,33                    LINE ADVANCE TO TETRAD 33                            
   11 00617                  4000220000          XF    022,0,0,0               SEND 128 CHARS TO PRINTER W/O INTR                  
   12 00624                  4000002000 PWAIT    XF    0,02000,0,0             IS PRINTER BUSY?                                    
   13 00631                  3000062453          JC    PWAIT,43                YES, WAIT                                            
   14 00636                  3200060505 PJUMP    JL    PLOOP,5                 DO THIS 5 TIMES                                      
   15 00643                             .                                                                                          
   16 00643                             . PRINT WITHOUT INTERRUPT AND WAIT FOR I/O TO COMPLETE                                      
   17 00643                             .                                                                                          
   18 00643                  4400067305          SC    PJUMP2+4,5              SET LOOP COUNT TO 5                                  
   19 00650                  2000125340 PLOOP2   FT    L2,32                   BFR ADDR TO TETRAD 32                                
   20 00655                  2000000141          FT    1,33                    LINE ADVANCE TO TETRAD 33                            
   21 00662                  4000620400          XF    062,0400,0,0            SEND 64 CHARS TO PRINTER & WAIT                      
   22 00667                  3200065005 PJUMP2   JL    PLOOP2,5                DO THIS 5 TIMES                                      
   23 00674                             .                                                                                          
   24 00674                             . READ CARDS WITHOUT INTERRUPT AND WITHOUT WAITING FOR I/O TO COMPL                        
   25 00674                             . AND DUMP CARDS TO PRINTER                                                                
   26 00674                             .                                                                                          
   27 00674                  4400105201          SC    CSTATE,1                INITIALIZE BUFFER STATE                              
   28 00701                  2000150044          FT    C1,36                   INITIALIZE 2 BUFFERS                                
   29 00706                  2000170045          FT    C2,37                                                                        
   30 00713                  4400104405          SC    CJUMP+4,5               SET LOOP COUNT TO 5                                  
   31 00720                  4020210100 CLOOP    XF    021,0100,0,1            ISSUE READ COMMAND                                  
   32 00725                  4020002000 CWAIT    XF    0,02000,0,1             IS READER BUSY?                                      
   33 00732                  3000072553          JC    CWAIT,43                YES, WAIT                                            
   34 00737                  3400105201          CC    CSTATE,1                READ TO C1?                                          
   35 00744                  3000077543          JU    CB2                     NO                                                  
   36 00751                  2000150040          FT    C1,32                   SET PRINTER BFR TO C1                                
   37 00756                  2000150045          FT    C1,37                   SET C1 AS REPLACEMENT BFR                            
   38 00763                  4400105202          SC    CSTATE,2                BUFFER STATE = 2                                    
   39 00770                  3000101400          J     CPRNT                                                                        
   40 00775                  2000170040 CB2      FT    C2,32                   SET PRINTER BFR TO C2                                
   41 01002                  2000170045          FT    C2,37                   SET C2 AS REPLACEMENT BFR                            
   42 01007                  4400105201          SC    CSTATE,1                BUFFER STATE = 1                                    
   43 01014                  4000002000 CPRNT    XF    0,02000,0,0             IS THE PRINTER BUSY?                                
   44 01021                  3000101453          JC    CPRNT,43                YES, WAIT                                            
   45 01026                  2000000141          FT    1,33                    SET LINE ADVANCE                                    
   46 01033                  4000220000          XF    022,0,0,0               PRINT THE CARD                                      
   47 01040                  3200072005 CJUMP    JL    CLOOP,5                 DO THIS 5 TIMES                                      
   48 01045                             .                                                                                          
   49 01045                  3000000060          JD    0                                                                            
   50 01052                             .                                                                                          
   51 01052                          01 CSTATE   +1    1                                                                            
   52 01053                             .                                                                                          
   53 01053        04040404040404040404 L1       AREA  128,'A','1'                                                                  
   54 01253        05050505050505050505 L2       AREA  128,'A','2'                                                                  
   55 01453                             .                                                                                          
   56 01500                                      ORIG  $,64                                                                        
   57 01500                             C1       AREA  80                                                                          
   58 01700                                      ORIG  $,64                                                                        
   59 01700                             C2       AREA  80                                                                          
   60 02020                             .                                                                                          
   61 02020                                      END   START                                                                        

Reply all
Reply to author
Forward
0 new messages