Table of Contents
Trojan protection cards Beside function changes in some of the programs the boot loader for all programs has changed. The new boot loader allows one or more 'Trojan' cards to be placed in the front of each deck. All of these 'Trojan' cards are the same. They are read into the machine and then cause the next card to be read and processed. The first card of most deck takes a beating and has to be copied and replaced. With the 'Trojan' card, you can just toss it and replace it with another 'Trojan' card. README file for Big Print Friday, August 28, 2015 Author Ed Thelen Modifications Stan Paddock BigPrint is a demonstration program run on the IBM 1401 The input is a series of cards: The first card is a date card. Whatever is in the first 25 columns of this card is considered the date. January 23, 1987 is as good as 1/23/87 The second card and all following cards are name cards. The first name can be up to 11 characters. If the first name is longer than 11 characters, it will be truncated to 11 characters. The second name can be up to 10 characters. The second name starts after the space between the first name and the start of the second name. The next 10 characters will be displayed as the second name. There can be three names like Juan el Capitan The program will print Juan on the first line and El Capitan on the second line. Except that there must be a space between names, the rest of the spacing does not matter. All extra spaces will be ignored. There is no limit to the number of name cards that can be used. The last card is the End Of File card. If the three characters EOF are found in Columns 1-5 the program will terminate with a halt. If you want to run it again with a new set of cards, set sense switch G on, clear the card reader, place the second date, name and EOF cards in the reader and press start. If you don't want to run it again, leave sense switch G off and when you press start, it will look for and read in the next program. A new feature has been added to BigPrint rev 16.2. It is called BANNER. If the first 6 characters of the date card are BANNER, BigPrint shifts into BANNER mode. Each following card will print a line on the printer. CC 1:If it is a D, the Double print will be used and the characters from column 3-13 will be printed. (11 characters) :If it is a S, the Single print will be used and the characters from column 3-24 will be printed.(22 characters) CC 2:If CC 2 is a D, the line will be double printed as in Dark. :If CC 2 is a L, the line will be single printed as in light. The last card is the End Of File card. If the three characters EOF are found in Columns 1-5 the program will terminate with a halt. End of Document README file for Lincoln Friday, March 06, 2015 Author Ron Mak ****************************************************************** * LINCOLN'S BIRTHDAY PROGRAM * BY RONALD MAK * * ORIGINAL VERSION: FEBRUARY 1969 * RESURRECTED: FEBRUARY 2005 * CONDENSED: NOVEMBER 2010 ****************************************************************** This program was written by a very young Ronald Mak. It prints out the head of lincoln using the words from the Gettysberg address. The program will terminate with a halt. If you want to run it again with a new set of cards, set sense switch G on, clear the card reader, place the second date, name and EOF cards in the reader and press start. If you don’t want to run it again, leave sense switch G off and when you press start, it will look for and read in the next program. End of Document README file for Mandelbrot Saturday, March 07, 2015 Author Ken Shirriff Benoit B. Mandelbrot was a Polish-born, French and American mathematician, noted for developing the field of fractal geometry , which included coining the word "fractal". He later discovered the Mandelbrot set of intricate, never-ending fractal shapes, named in his honor. This program generated the most famous Mandelbrot figure on a machine developed 20 years before Fractals were identified. The IBM 1401 does not have the ability to work with floating point numbers so all of the math has to be done with integer math. The program is CPU time intensive but fun to watch if you know what is going on in the program. The program will terminate with a halt. If you want to run it again, set sense switch G on, and press start. If you don’t want to run it again, leave sense switch G off and when you press start, it will look for and read in the next program. End of Document README file for Powers of two Saturday, March 07, 2015 Author Stan Paddock Powers Of 2 is a demonstration program run on the IBM 1401 computer. The IBM 1401 stores one digit per memory location. The IBM 1401 has 16,000 locations of memory. With this amount of memory, the IBM 1401 can add together two 8,000 digit numbers.! Modern computers perform integer arithmetic using binary values. For the IBM PC, the largest value is 64 bits. The largest value that can be expressed in 64 bits is 18,446,744,073,709,551,616. That is 20 digits long. The Powers Of Two program demonstrates the ability of the IBM 1401 to handle large numbers by starting with a single digit of 2 and then double it until it fills a single print line on the IBM 1403 printer. In addition of that, the program prints out how you pronounce the resultant number. The program will terminate with a halt. If you want to run it again, set sense switch G on, and press start. If you don’t want to run it again, leave sense switch G off and when you press start, it will look for and read in the next program. End of Document README file for prime_demo Friday, March 06, 2015 Author Ken Shirriff prime_demo is a demonstration program run on the IBM 1401 It uses the sieve of Eratosthenes an ancient algorithm for finding all prime numbers up to any given limit. For this program, the given limit is 25,000 due to the memory limitation of the computer. The program will terminate with a halt. If you want to run it again with a new set of cards, set sense switch G on, clear the card reader, place the second date, name and EOF cards in the reader and press start. If you don’t want to run it again, leave sense switch G off and when you press start, it will look for and read in the next program. End of Document README file for Tape Demo Saturday, June 20, 2015 Author Stan Paddock Tape Demo is a demonstration program run on the IBM 1401 computer. The IBM 1401 uses tapes to store large amounts of data. When processing that data, the each active tape drive would randomly be selected and read or write data. This program makes the tape drives appear to be working very hard. The program supports the use of one, two, three or four tape drives. When a tape drive is selected, 1 to 9 records are written to the drive. After a half a reel of tape has been written to the tape drives, the tape drives go into high-speed rewind. (*) The program uses the IBM 1401 sense switches to control the actions of the program. SENSE SWITCH A = (NOT USED) SENSE SWITCH B = TAPE DRIVE 1 ONLY SENSE SWITCH C = TAPE DRIVES 1 & 2 SENSE SWITCH BC = TAPE DRIVES 1 & 2 & 3 SENSE SWITCH D = TAPE DRIVES 1 & 2 & 3 & 4 SENSE SWITCH E = LOOP TEST PROGRAM SENSE SWITCH F = TERMINATE PROGRAM SENSE SWITCH G = RERUN PROGRAM FROM START The program will terminate with a halt. If you want to run it again, set sense switch G on, and press start. (*) If sense switch G is on while the program is running, it will not do the final rewind. The next time the program runs, all active tape drives will go into high speed rewind. If you don’t want to run it again, leave sense switch G off and when you press start, it will look for and read in the next program. End of Document |
--------------------------------------------------------------------
BigPrint15.4 , Aug 2015
"Big Print" now has two modes, original "Guest" mode and the new "Banner" mode
- .README
(operator instructions, comments, ...)
- .s (source - code )
- .lst (assembly listing)
- .cd ("object deck - the program into the card reader)
- Sample Guest Mode Input Deck
- Sample Guest Mode Printed Output
- Sample Banner Mode Card Input
- Sample Banner Mode Printed Output
BigPrint15.4.README (operator instructions, comments, ...) - Aug 2015
BigPrint15.4.s Aug 2015
BigPrint15.4.cd
BigPrint15.4.lst Aug 2015
Sample Guest Mode Input Deck
Sample Guest Mode Printed Output
Sample Banner Mode Card Input
Sample Banner Mode Printed Output
Lincoln2.1
.s
.lst
.cd
.ReadMe
Lincoln2.1.s
Lincoln2.1.lst
Lincoln2.1.cd
Lincoln2.1.ReadMe
Mandelbrot2.1
.s
.lst
.cd
.out [
photo, from Sam Mazur < sam . mazur [at] ogilvy . com > ]
Mandelbrot2.1.s
Mandelbrot2.1.cd
Mandelbrot2.1.lst
MANDELBROT2.1.out
PowersOfTwo4.3
.s
.lst
.cd
.out
.ReadMe
PowersOfTwo4.3.s
PowersOfTwo4.3.cd
PowersOfTwo4.3.lst
PowersOfTwo4.3.out
PowersOfTwo4.3.ReadMe
prime_demo3
.s
.lst
.cd
.ReadMe
prime_demo3.s
ReadMe
--------------------------------------------------------------------------
prime_demo3.cd
prime_demo3.ReadMe
--------------------------------------------------------------------
TapeDemo7.2
.s
.lst
.cd
.out
.ReadMe
TapeDemo7.2.s
TapeDemo7.2.cd
TapeDemo7.2.lst
TapeDemo7.2.out
TapeDemo7.2.ReadMe
--------------------------------------------------------------------
Pi500-25.s
Pi500-25.lst
Pi500-25.cd
Pi500-25.out
KS-Pi-DemoPrint (Prints Pretty Pi)
.s
.lst
.cd
.out
KS-Pi-DemoPrint.s
KS-Pi-DemoPrint.lst
README file for Big Print
Friday, August 28, 2015
Author Ed Thelen
Modifications Stan Paddock
BigPrint is a demonstration program run on the IBM 1401
The input is a series of cards:
The first card is a date card.
Whatever is in the first 25 columns of this card is considered the date.
January 23, 1987 is as good as 1/23/87
The second card and all following cards are name cards.
The first name can be up to 11 characters.
If the first name is longer than 11 characters, it will be truncated to 11 characters.
The second name can be up to 10 characters.
The second name starts after the space between the first name and the start of the second name.
The next 10 characters will be displayed as the second name.
There can be three names like Juan el Capitan
The program will print Juan on the first line and El Capitan on the second line.
Except that there must be a space between names, the rest of the spacing does not matter.
All extra spaces will be ignored.
There is no limit to the number of name cards that can be used.
The last card is the End Of File card.
If the three characters EOF are found in Columns 1-5 the program will terminate with a halt.
If you want to run it again with a new set of cards, set sense switch G on,
clear the card reader, place the second date, name and EOF cards in the reader and press start.
If you don't want to run it again, leave sense switch G off and when you press start,
it will look for and read in the next program.
A new feature has been added to BigPrint rev 16.2.
It is called BANNER.
If the first 6 characters of the date card are BANNER, BigPrint shifts into BANNER mode.
Each following card will print a line on the printer.
CC 1:If it is a D, the Double print will be used and the characters from column 3-13 will be printed.
(11 characters)
:If it is a S, the Single print will be used and the characters from column 3-24 will be printed.
(22 characters)
CC 2:If CC 2 is a D, the line will be double printed as in Dark.
:If CC 2 is a L, the line will be single printed as in light.
The last card is the End Of File card.
If the three characters EOF are found in Columns 1-5 the program will terminate with a halt.
End of Document
HEAD
* BIGPRINT
* PROGRAM BY ED THELEN
* MODIFIED BY STAN PADDOCK
*
WORK1 EQU WORK-79
REV DCW @BIGPRINT REV 16.2 GENERATED ON 08/26/2015@
*
*
START CS .READ&79 * CLEAR WORD MARKS FROM CARD READ
CS .PUNCH&79 * CLEAR PUNCH AREA
SW .READ * SET WORD MARK
ZA NZERO,NZERO * SET SIGN BITS
MCW @000@,X1 * CLEAR X1
MCW X1,X2 * CLEAR X2
MCW X1,X3 * CLEAR X3
MCW REV,140 * MOVE REV TO PUNCH BUFFER
*
* SPECIAL CODE TO SETUP THE ZONE SELECT CODES
*
MZ @A@,ZONE
MCW ZONE,CKAB&7
MZ @J@,ZONE
MCW ZONE,CKB&7
MZ @Z@,ZONE
MCW ZONE,CKA&7
*
******************************************************************
* READ IN AND STORE THE DATE CARD
******************************************************************
*
R * READ DATE CARD
MCW .READ+24,DATE25 * PUT IT IN A SAFE PLACE
* * JUST TO KEEP IT CLEAN
C .READ+5,@BANNER@ * ARE WE DOING A BANNER?
BU BNEXIT * IF NOT, GO AROUND
MCW @Y@,BNMODE * YES SET IT
BNEXIT NOP
*
******************************************************************
* READ IN AND PROCESS GUEST CARDS
******************************************************************
* PROGRAMS ARE PERFECT
* INPUT BY USERS CAN CONTAIN MANY ERRORS
* THE FOLLOWING CODE TRIES TO FIX MANY ERRORS SEEN
* IN THE 1401 RESTORATION ROOM
* LEADING SPACES ARE ELIMINATED
* MULTIPLE SPACES BETWEEN THE FIRST AND LAST NAME ARE ELIMINATED
* IF ONLY ONE MANE IS GIVEN, THAT IS ALL THAT IS PRINTED
* IF THE USER GIVES A NAME LIKE EL AL JARAED
* IT WILL BE PRINTED WITH EL AS THE FIRST NAME AND
* AL JARAED AS THE SECOND NAME
* THE FIRST NAME WILL BE TRUNCATED TO 11 CHARACTERS AND
* THE SECOND NAME TRUNCATED TO 10 CHARACTERS
*
READG R * READ GUEST CARD
*
* NOW CHECK FOR EOF IN THE FIRST 5 COLUMNS
*
MCW @000@,X1 * SETUP X1
EOFC1 BCE EOFC2,.READ+X1,E * IS IT THE LEADING OF EOF
B EOFC4 * NO IT IS NOT
EOFC2 BCE EOFC3,.READ+1+X1,O * IS THIS THE O IN EOF
B EOFC4 * NO IT IS NOT
EOFC3 BCE EXIT,.READ+2+X1,F * IS THIS THE FINAL F
*
EOFC4 MA @001@,X1 * KICK UP X1
C @005@,X1 * ARE WE DONE?
BL EOFC1 * TRY IT AGAIN
*
* ELSE IT IS A REAL NAME CARD
* SEND IT TO THE STACKER
*
SS 1 * SELECT READ STACKER 2
*
BCE BANNER,BNMODE,Y * ARE WE IN BANNER MODE?
MCW @000@,X1 * INITIALIZE X1
MCW @000@,X2 * INITIALIZE X2
MCW @ @,LAST * START WITH THE LAST .NE. SPACE
MCW BLANKS,LINE1 * CLEAR IT OUT
MCW BLANKS,LINE2 * AND THIS ALSO
*
* THE FOLLOWING CODE MAKES A PASS DOWN THE INPUT CARD AND REMOVE EXTRA SPACES
*
LOOP1 BCE LOOP3,.READ+X1, * WAS IT A SPACE ?
LOOP2 MN .READ+X1,.READ+X2 * MOVE NUMERIC PART
MZ .READ+X1,.READ+X2 * MOVE ZONE PART
MN .READ+X1,LAST * NEED TO SET LAST
MZ .READ+X1,LAST * NEED TO SET LAST
C X1,X2 * SAME LOCATION?
BE LOOP4 * DON'T CLEAR
MCW @ @,.READ+X1 * CLEAR WHAT WE MOVED
B LOOP4
LOOP3 BCE LOOP5,LAST, * WAS THE LAST CHARACTER A SPACE?
B LOOP2 * FIRST INTERMEDIATE SPACE
LOOP4 MA @001@,X2 * INCREMENT X2
LOOP5 MA @001@,X1 * INCREMENT X1
C @080@,X1 * DID WE GO PAST END?
BL LOOP1 * NOT YET
*
* NOW THAT ALL OF THE LEADING AND MULTIPLE SPACES ARE REMOVED
* IT IS A GOOD TIME TO FINE THE FIRST SPACE
*
MCW @000@,FSTSP * RESET FIRST SPACE
MCW @000@,X1 * RESET X1
LOOPA BCE LOOPB,.READ+X1, * IS IT A SPACE?
MA @001@,X1 * INCREMENT X1
C @080@,X1 * ARE WE AT THE END?
BL LOOPA * TRY AGAIN
LOOPB MCW X1,FSTSP * FOUND IT
*
* NOW THAT WE KNOW WHERE THE FIRST SPACE IS,
* WE CAN LOAD LINE 1 AND LINE 2
*
MCW @000@,X1 * RESET X1
LIN1 BCE LIN1A,.READ+X1, * DID WE FIND THE SPACE
MZ .READ+X1,LINE1-10+X1 * MOVE THE DATA
MN .READ+X1,LINE1-10+X1 * MOVE THE DATA
MA @001@,X1 * INCREMENT X1
C @011@,X1 * SEE IF WE ARE FULL
BL LIN1 * DO IT AGAIN
LIN1A NOP * FULL LINE OR SPACE
*
* NOW TO DO LINE 2
*
MCW FSTSP,X1 * RESET X1 TO SPACE ON .READ
MA @001@,X1 * INCREMENT X1 TO NON-SPACE
MCW @000@,X2 * INITIALIZE X2
LIN2 MZ .READ+X1,LINE2-9+X2 * MOVE THE DATA
MN .READ+X1,LINE2-9+X2 * MOVE THE DATA
MA @001@,X1 * INCREMENT X1
MA @001@,X2 * INCREMENT X2
C @010@,X2 * SEE IF WE ARE FULL
BL LIN2 * DO IT AGAIN
LIN2A NOP * FULL LINE OR SPACE
*
* LINE1 AND LINE 2 HAVE BEEN LOADED
* ALL WE HAVE TO DO IS PRINT THEM
*
MCW @D@,DOUBLE * SET FOR DOUBLE SIZE BIG PRINT
MCW @D@,LTDRK * SET FOR DARK PRINT
MCW BLANKS, WXX * CLEAR THE FIELD
BCE NODATA,LINE1-10, *IS IT BLANK
B LIN11 * JUMP OVER VOID CODE
NODATA MCW @NOBODY @,LINE1 * PUT IN NOBODY
LIN11 MCW LINE1,WXX-14 * PRINT LINE 1
B PRINTS * PRINT IT
MCW BLANKS, WXX * CLEAR THE FIELD
BCE LIN22,LINE2-9, *IS IT BLANK
MCW LINE2,WXX-14 * MOVE LINE 2
B PRINTS * PRINT IT
LIN22 MCW @S@,DOUBLE * SET FOR SINGLE SIZE BIG PRINT
MCW @L@,LTDRK * SET FOR LIGHT PRINT
MCW LINE3,WXX * "VISITED THE COMPUTER# "
B PRINTS * SUBROUTINE CALL
MCW LINE4,WXX * "HISTORY MUSEUM ON# "
B PRINTS * SUBROUTINE CALL
MCW DATE25,WXX * PRINT DATE LINE
B PRINTS * SUBROUTINE CALL
W * BLANK LINE
MCW CREDIT,310 * PRINT CREDIT
W
CC 1 * TOP OF FORM
SKIPTX B READG * GO AND GET THE NEXT GUEST CARD
*
************************************************************
* BANNER PROCESSING
************************************************************
*
BANNER MZ .READ,DOUBLE * SET THE SIZE
MN .READ,DOUBLE * SET THE SIZE
MZ .READ+1,LTDRK * SET THE LIGHT / DARK
MN .READ+1,LTDRK * SET THE LIGHT / DARK
MCW .READ+26,WXX * SET THE BUFFER
B PRINTS * PRINT AS REQUESTED
B READG * NEXT CARD
*
************************************************************
* PRINTS SUBROUTINE
***********************************************************
*
PRINTS SBR PRINTX&3 * SET RETURN ADDRESS
MCW @000@,WROW * INITIALIZE PRINT ROW COUNTER
PRINT1 MCW @000@,WCOL * INITIALIZE WORK CHARACTER PICK UP
MCW @000@,PCOL * INITIALIZE OUTPUT INDEX
CS 332 * CLEAR PRINTER AREA
CS
SW 201
*
PRINT2 MCW WCOL,X1 * PREPARE TO PICK UP NEXT CHAR
* * TO PROCESS
MCW WXX-24&X1,PCHAR * AND GET IT
MCW WXX-23&X1,PCHAR2 * STORE OFF THE NEXT CHARACTER
A @001@,WCOL * INCREMENT COLUMN COUNT
MCW @000@,SUM * INITIALIZE SUM
C @000@,WROW * ARE WE ON THE FIRST ROW?
BU PC4 * GO GET IT FROM TABLE
*
*****************************************************************
* THE DATA FOR EACH CHARACTER IS STORED IN A TABLE TITLED CODEA
* AN INDEX TO THIS TABLE IS TITLED CINDX
* THE FOLLOWING CODE WILL FIND THE CHARCTER IN CINDX AND SET SUM
* TO THAT POSITION
* THE ROUTING CHECKS THE ZONE BITS FIRST AND SETS A
* BASE OF 0,16,32 OR 48
* THEN IT USES THE NUMERICAL PORTION TO ADD IN TO THE INDEX
* THIS DOES NOT WORK WITH SPECIAL CHARACTERS
* SO THEY ALONG WITH THE ZERO HAVE TO BE PROCESSED SPECIAL
* THIS ONLY WORKS IF THE NUMBERIAL PORTION IS 0-9
* A TEST FOR SPECIAL CASES IS DONE ON THE NUMERICAL PORTION
* FOR OTHER SPECIAL CHARACTERS
******************************************************************
*
MN PCHAR,NUM * MOVE THE NUMERIC PORTION
MZ PCHAR,ZONE * MOVE THE ZONE
C @0@,NUM * CHECK THE NUMERIC PORTION
BH CKA * GOOD STUFF
*
* CHECK FOR SPECIAL CHARACTERS
*
BCE AZERO,PCHAR,0 * IT IS A ZERO
BCE ACOLON,PCHAR,: * IT IS A COLON
BCE ADASH,PCHAR,- * IT IS A DASH
BCE ACOMMA,PCHAR,, * IT IS A COMMA
MCW @000@,SUM * MAKE IT A SPACE
B PC3
*
CKA BCE ZA,ZONE,A
CKB BCE ZB,ZONE,B
CKAB BCE ZAB,ZONE,C
B NUMA
ZA A @32@,SUM
B NUMA
ZB A @16@,SUM
B NUMA
ZAB A @48@,SUM
* ADD THE NUMERIC PORTION TO THE SUM
NUMA A NUM,SUM
*
END MZ @0@,SUM
B PC3
*
************************************************************
AZERO ZA @10@,SUM
B PC3
ACOLON ZA @13@,SUM
B PC3
ADASH ZA @16@,SUM
B PC3
ACOMMA ZA @43@,SUM
B PC3
************************************************************
PC3 MCW X1,X1HOLD * STORE OFF THE CURRENT VALUE OF X1
MCW @000@,X1 * INITIALIZE X1
MA WCOL,X1 * PUT IN THE COLUMN INTO X1
MA WCOL,X1 * PUT IN THE COLUMN INTO X1
MA WCOL,X1 * PUT IN THE COLUMN INTO X1
MCW @000@,SUM2 * INITALIZE SUM2
A SUM,SUM2 * ADD IN PLACE OF MULTIPLY
A SUM,SUM2 * ADD IN PLACE OF MULTIPLY
A SUM,SUM2 * ADD IN PLACE OF MULTIPLY
A SUM,SUM2 * ADD IN PLACE OF MULTIPLY
A SUM,SUM2-1 * ADD IN PLACE OF MULTIPLY X 10
*
MCW SUM2,SUM
MZ @0@,SUM * CLEAR THE ZONE BITS
MCW SUM,PATNUM&X1 * STORE THE NUMBER FOR THIS COLUMN
MCW X1HOLD,X1 * RESTORE X1
B PC5 * GET ON WITH IT
************************************************************
PC4 MCW X1,X1HOLD * STORE OFF THE CURRENT VALUE OF X1
MCW @000@,X1 * INITIALIZE X1
MA WCOL,X1 * PUT IN THE COLUMN INTO X1
MA WCOL,X1 * PUT IN THE COLUMN INTO X1
MA WCOL,X1 * PUT IN THE COLUMN INTO X1
MCW PATNUM&X1,SUM * RETRIVE THE NUMBER FOR
* * THIS COLUMN
MCW X1HOLD,X1 * RESTORE X1
B PC5 * GET ON WITH IT
*
* AT THIS POINT WE HAVE THE TABLE ENTRY FOR THE PATTERN TO PRINT
*
PC5 MZ @0@,SUM * CLEAR THE ZONE BITS
*
A WROW,SUM * MAKE INDEX+(2*WROW)
A WROW,SUM * MAKE INDEX+(2*WROW)
A @002@,SUM * ADD ELEMENT SIZE
* * PREPARE TO OUTPUT
MCW PCOL,X3 * OUTPUT COLUMN
MCW SUM,X1 * PICKUP PROPER MASK
MCW CODEA&X1,MASK2 *
*
MCW @000@,X2 * SET UP BIT SELECT INDEX
L1 C BITSEL&X2,MASK2 * DO COMPARE
BL L2
MCW PCHAR,WCHAR * YES, PRINT SPECIAL
S BITSEL&X2,MASK2 * FIX MASK
MN MASK2,NOZONE
MCW NOZONE,MASK2
B L3
L2 MCW @ @,WCHAR
L3 A @002@,X2 * GO TO NEXT BIT
MCW WCHAR,.PRINT&X3 * PRINT PROPER CHARACTER
A @001@,X3
BCE L4,DOUBLE,S * ARE WE GOING SINGLE?
MCW WCHAR,.PRINT&X3 * PRINT PROPER CHARACTER
A @001@,X3
L4 C @009@,X2
BL L1
A @001@,X3
BCE L5,DOUBLE,S * ARE WE DOING SINGLE?
A @001@,X3
L5 MCW X3,PCOL * SAVE COLUMN POINTER
BCE L55,PCHAR2,# * IF #, LAST CHARACTER IN ROW
C @132@,X3 *
BL PRINT2
L55 BCE L555,DOUBLE,S * ARE WE DOING SINGLE?
W * WRITE THE PRINT AREA TO
* * THE PRINTER NO SPACE
DC @S@
L555 W * WRITE THE PRINT AREA TO
* * THE PRINTER
BCE L6,LTDRK,L * ARE WE DOING LIGHT PRINT?
W * WRITE THE PRINT AREA TO
* * THE PRINTER NO SPACE
DC @S@
W * WRITE THE PRINT AREA TO
* * THE PRINTER
L6 A @001@,WROW * INCREMENT ROW COUNTER
C @007@,WROW
BL PRINT1 * DO ANOTHER ROW
CS 332 * CLEAR PRINTER AREA
CS
SW 201
W * WRITE THE PRINT AREA TO
* * THE PRINTER -
PRINTX B 0 * RETURN TO CALL
NOP * BACK UP BRANCH
*
* THE FOLLOWING ROUTINE IS DESIGNED TO TERMINATE
* THE PROCESSING
* OF THE PRINT LINE IF THE # WAS FOUND
*
PRTX W * WRITE THE PRINT AREA TO
* * THE PRINTER -
BCE L7,DOUBLE,S * ARE WE DOING SINGLE?
W * WRITE THE PRINT AREA TO
* * THE PRINTER
L7 CS 332 * CLEAR PRINTER AREA
CS
SW 201
W * WRITE THE PRINT AREA TO
* * THE PRINTER -
B PRINTX
*
*******************************************************
*
EXIT
* 1234567890123456789012345678901234567890
DCW @THIS PRINTOUT WAS GENERATED ON AN IBM 1401 @
DC @COMPUTER AT THE COMPUTER HISTORY MUSEUM, @
CREDIT DC @ MOUNTAIN VIEW, CALIFORNIA@
BNMODE DCW @N@ * ARE WE IN BANNER MODE?
LTDRK DCW @L@ *LIGHT OR DARK
X DCW @X@
LAST DCW 0
DCW @1@
LINE1 DCW @ @
DCW @12345678902@
LINE2 DCW @ @
DCW @3@
FSTSP DCW 000
MIN1 DSA 16000-1
DCW #40
WORK DC #40
XCNT DCW @00000@
XCNT2 DCW @00000@
X4K DSA 4000
SPACE DCW 0
ZONE DCW @1@
NUM DCW 0
SUM DCW 000
SUM2 DCW 000 * SED TO ADD SUM INSTEAD OF
* * MULTIPLYING SUM
BITSUM DCW 000
CHRCNT DCW 000 * CHARACTER COUNTER
X1HOLD DCW 000 * PLACE TO HOLD X1
BIGLST DCW 1
LMINUS DCW @- @ * END OF FILE CARD
BH DCW @00@
BL DC @0000@ * WHERE THE ANSWER APPEARS
*
NZERO DCW 000 * A NUMERICAL ZERO
NONE DCW 001 * A NUMERICAL ONE
TXLIM DCW 000 * TEXT INDEX LIMIT
TXLCNT DCW 000 * TEMP LINE COUNT
DOUBLE DCW @S@ * S PRINTS SINGLE SIZE
* * WORK AREAS FOR PRINTS
WCOL DCW 000 * PICKUP INDEX FROM INPUT AREA
WROW DCW 000
PCHAR DCW 0
PCHAR2 DCW 0
WCHAR DCW 0
MASK2 DCW @00@ * 2 CHARACTER MASK
WORK3 DCW 000
PCOL DCW 000
DCW @@000@@
ONE2 DCW 01
NOZONE DCW 0
DOLSW DCW 0
SPCNT DCW 0
SP20 DCW @ @
BITSEL DCW 16
DCW 08
DCW 04
DCW 02
DCW 01
DCW 00
*
DATE25 DCW @0000000000000000000000000@ * SAVE DATE 25 LONG
*
WXX DCW @0000000000000000000000000@
* WORK AREA FOR STRING 25 LONG
*
BLANKS DCW @ @ * SET WORK TO BLANKS
LINE3 DCW @VISITED THE COMPUTER# @
1234567890123456789012345678901234567890
LINE4 DCW @HISTORY MUSEUM ON# @
*
* MASK IS 14 CHR
*
* THINK 5X7 MATRIX
* FOR REFERENCE/CLARIFICATION HERE IS A "1"
* DC @04120404040414@
* 04 000100
* 12 001100 (4 + 8)
* 04 000100
* 04 000100
* 04 000100
* 04 000100
* 14 001110 (2 + 4 + 8)
*
* FOR REFERENCE/CLARIFICATION HERE IS A "2"
* DC @14170102020431@
* 14 01110
* 17 10001
* 01 00001
* 02 00010
* 02 00010
* 04 00100
* 31 11111
CODEA DS 0
DC @00000000000000@ * BLANK
DC @04120404040414@ * 1
DC @14170101020431@ * 2
DC @31020402010114@ * 3
DC @02061018310202@ * 4
DC @31163001011714@ * 5
DC @06081630171714@ * 6
DC @31010204080808@ * 7
DC @14171714171714@ * 8
DC @14171715010212@ * 9
DC @14171921251714@ * 0
DC @00000000000000@ * #
DC @00000000000000@ * (AT SIGN)
DC @30303000303030@ * :
DC @00000000000000@ * >
DC @00000000000000@ * (TAPE MARK)
* 0 TO 15 ABOVE
DC @00000031000000@ * -
DC @07020202021812@ * J
DC @17182224221817@ * K
DC @16161616161631@ * L
DC @17272121171717@ * M
DC @17172521191717@ * N
DC @14171717171714@ * O
DC @30171730161616@ * P
DC @14171717212213@ * Q
DC @30171730201817@ * R
DC @00000000000000@ * !
DC @00000000000000@ * $
DC @00000000000000@ * *
DC @00000000000000@ * )
DC @00000000000000@ * ;
DC @00000000000000@ * (DELTA)
* 16 TO 31 ABOVE
DC @00000000000000@ * (CENT)
DC @00010204081600@ * /
DC @15161614010130@ * S
DC @31040404040404@ * T
DC @17171717171714@ * U
DC @17171717171004@ * V
DC @17171721212110@ * W
DC @17171004101717@ * X
DC @17171710040404@ * Y
DC @31010204081631@ * Z
DC @00000000000000@ * (REC MRK)
DC @00000000120408@ * ,
DC @00000000000000@ * %
DC @00000000000000@ * =
DC @00000000000000@ * '
DC @00000000000000@ * "
* 32 TO 47 ABOVE
DC @00000000000000@ * &
DC @14171717311717@ * A
DC @30171730171730@ * B
DC @14171616161714@ * C
DC @24181717171824@ * D
DC @31161630161631@ * E
DC @31161630161616@ * F
DC @14171623171715@ * G
DC @17171731171717@ * H
DC @14040404040414@ * I
DC @00000000000000@ * ?
DC @00000000000000@ * .
DC @00000000000000@ * (LOZGEN)
DC @00000000000000@ * (
DC @00000000000000@ * <
DC @00000000000000@ * (GRP MARK)
* 48 TO 63 ABOVE
DCW @123456789012345678901234567890@
PICKUP DCW 000
DCW @START@
PATERN DA 25X3
* STOREAGE FOR CHARACTER INDEX NUMBERS
PATNUM 1,3 * ELEMENT IN PATTERN ARRAY
DCW @END@
END START * LAST CARD IN DECK, TRANSFER ADDRESS
-
CLEAR STORAGE 1 ,008015,022026,030037,044,049,053053N000000N00001026 1
CLEAR STORAGE 2 L068116,105106,110117B101/I9I#071029C029056B026/B001/0991,001/001117I0? 2
BOOTSTRAP ,008015,022029,036040,047054,061068,072/061039 ,0010011040 3
0 PAGE 1
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
101 HEAD MACRO
*>>>>>>>>> GEN
102 .READ EQU 001 0001 GEN
103 .PUNCH EQU 101 0101 GEN
104 .PRINT EQU 201 0201 GEN
105 ORG 85 0085
106 DCW @X1@ *IDENTIFING FILLER 2 0086 GEN 4
107 X1 DCW 000 *INDEX REGISTER 1 3 0089 GEN 4
108 DCW @X2@ *IDENTIFING FILLER 2 0091 GEN 4
109 X2 DCW 000 *INDEX REGISTER 2 3 0094 GEN 4
110 DCW @X3@ *IDENTIFING FILLER 2 0096 GEN 4
111 X3 DCW 000 *INDEX REGISTER 3 3 0099 GEN 4
112 ORG 181 *JUST AFTER PUNCH LOCATIOM 0181
113 B START *UNIVERSIAL START LOCATION 4 0181 B 381 GEN 5 381
114 NOP *TERMINATING WORDMARK 1 0185 N GEN 5
115 ORG 340 *ORG JUST AFTER PRINT BUFFER 0340
*<<<<<<<<< GEN
116 * BIGPRINT
117 * PROGRAM BY ED THELEN
118 * MODIFIED BY STAN PADDOCK
119 *
120 WORK1 EQU WORK-79 1966
121 REV DCW @BIGPRINT REV 16.2 GENERATED ON 08/26/2015@ 41 0380 7
122 *
123 *
124 START CS .READ&79 * CLEAR WORD MARKS FROM CARD READ 4 0381 / 080 7 080
125 CS .PUNCH&79 * CLEAR PUNCH AREA 4 0385 / 180 7 180
126 SW .READ * SET WORD MARK 4 0389 , 001 7 001
127 ZA NZERO,NZERO * SET SIGN BITS 7 0393 ? !90 !90 7 2090 2090
128 MCW @000@,X1 * CLEAR X1 7 0400 M B99 089 8 3299 089
129 MCW X1,X2 * CLEAR X2 7 0407 M 089 094 8 089 094
130 MCW X1,X3 * CLEAR X3 7 0414 M 089 099 8 089 099
131 MCW REV,140 * MOVE REV TO PUNCH BUFFER 7 0421 M 380 140 8 380 140
132 *
133 * SPECIAL CODE TO SETUP THE ZONE SELECT CODES
134 *
135 MZ @A@,ZONE 7 0428 Y C00 !60 8 3300 2060
136 MCW ZONE,CKAB&7 7 0435 M !60 S13 9 2060 1213
137 MZ @J@,ZONE 7 0442 Y C01 !60 9 3301 2060
138 MCW ZONE,CKB&7 7 0449 M !60 S05 9 2060 1205
139 MZ @Z@,ZONE 7 0456 Y C02 !60 9 3302 2060
140 MCW ZONE,CKA&7 7 0463 M !60 /97 9 2060 1197
141 *
142 ******************************************************************
143 * READ IN AND STORE THE DATE CARD
144 ******************************************************************
145 *
1 PAGE 2
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
146 R * READ DATE CARD 1 0470 1 9
147 MCW .READ&24,DATE25 * PUT IT IN A SAFE PLACE 7 0471 M 025 J84 10 025 2184
148 * * JUST TO KEEP IT CLEAN
149 C .READ&5,@BANNER@ * ARE WE DOING A BANNER? 7 0478 C 006 C08 10 006 3308
150 BU BNEXIT * IF NOT, GO AROUND 5 0485 B 497 / 10 497
151 MCW @Y@,BNMODE * YES SET IT 7 0490 M C09 Z22 10 3309 1922
152 BNEXIT NOP 1 0497 N 10
153 *
154 ******************************************************************
155 * READ IN AND PROCESS GUEST CARDS
156 ******************************************************************
157 * PROGRAMS ARE PERFECT
158 * INPUT BY USERS CAN CONTAIN MANY ERRORS
159 * THE FOLLOWING CODE TRIES TO FIX MANY ERRORS SEEN
160 * IN THE 1401 RESTORATION ROOM
161 * LEADING SPACES ARE ELIMINATED
162 * MULTIPLE SPACES BETWEEN THE FIRST AND LAST NAME ARE ELIMINATED
163 * IF ONLY ONE MANE IS GIVEN, THAT IS ALL THAT IS PRINTED
164 * IF THE USER GIVES A NAME LIKE EL AL JARAED
165 * IT WILL BE PRINTED WITH EL AS THE FIRST NAME AND
166 * AL JARAED AS THE SECOND NAME
167 * THE FIRST NAME WILL BE TRUNCATED TO 11 CHARACTERS AND
168 * THE SECOND NAME TRUNCATED TO 10 CHARACTERS
169 *
170 READG R * READ GUEST CARD 1 0498 1 10
171 *
172 * NOW CHECK FOR EOF IN THE FIRST 5 COLUMNS
173 *
174 MCW @000@,X1 * SETUP X1 7 0499 M B99 089 10 3299 089
175 EOFC1 BCE EOFC2,.READ&X1,E * IS IT THE LEADING OF EOF 8 0506 B 518 0'1 E 11 518 001+1
176 B EOFC4 * NO IT IS NOT 4 0514 B 538 11 538
177 EOFC2 BCE EOFC3,.READ&1&X1,O * IS THIS THE O IN EOF 8 0518 B 530 0'2 O 11 530 002+1
178 B EOFC4 * NO IT IS NOT 4 0526 B 538 11 538
179 EOFC3 BCE EXIT,.READ&2&X1,F * IS THIS THE FINAL F 8 0530 B X62 0'3 F 11 1762 003+1
180 *
181 EOFC4 MA @001@,X1 * KICK UP X1 7 0538 # C12 089 11 3312 089
182 C @005@,X1 * ARE WE DONE? 7 0545 C C15 089 12 3315 089
183 BL EOFC1 * TRY IT AGAIN 5 0552 B 506 T 12 506
184 *
185 * ELSE IT IS A REAL NAME CARD
186 * SEND IT TO THE STACKER
187 *
188 SS 1 * SELECT READ STACKER 2 2 0557 K 1 12
189 *
190 BCE BANNER,BNMODE,Y * ARE WE IN BANNER MODE? 8 0559 B 997 Z22 Y 12 997 1922
191 MCW @000@,X1 * INITIALIZE X1 7 0567 M B99 089 12 3299 089
192 MCW @000@,X2 * INITIALIZE X2 7 0574 M B99 094 12 3299 094
193 MCW @ @,LAST * START WITH THE LAST .NE. SPA 7 0581 M C16 Z25 13 3316 1925
194 MCW BLANKS,LINE1 * CLEAR IT OUT 7 0588 M K34 Z37 13 2234 1937
195 MCW BLANKS,LINE2 * AND THIS ALSO 7 0595 M K34 Z58 13 2234 1958
1 PAGE 3
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
196 *
197 * THE FOLLOWING CODE MAKES A PASS DOWN THE INPUT CARD AND REMOVE EX
198 *
199 LOOP1 BCE LOOP3,.READ&X1, * WAS IT A SPACE ? 8 0602 B 661 0'1 13 661 001+1
200 LOOP2 MN .READ&X1,.READ&X2 * MOVE NUMERIC PART 7 0610 D 0'1 0!1 13 001+1 001+2
201 MZ .READ&X1,.READ&X2 * MOVE ZONE PART 7 0617 Y 0'1 0!1 14 001+1 001+2
202 MN .READ&X1,LAST * NEED TO SET LAST 7 0624 D 0'1 Z25 14 001+1 1925
203 MZ .READ&X1,LAST * NEED TO SET LAST 7 0631 Y 0'1 Z25 14 001+1 1925
204 C X1,X2 * SAME LOCATION? 7 0638 C 089 094 14 089 094
205 BE LOOP4 * DON'T CLEAR 5 0645 B 673 S 14 673
206 MCW @ @,.READ&X1 * CLEAR WHAT WE MOVED 7 0650 M C16 0'1 15 3316 001+1
207 B LOOP4 4 0657 B 673 15 673
208 *
209 LOOP3 BCE LOOP5,LAST, * WAS THE LAST CHARACTER A SPA 8 0661 B 680 Z25 15 680 1925
210 B LOOP2 * FIRST INTERMEDIATE SPACE 4 0669 B 610 15 610
211 *
212 LOOP4 MA @001@,X2 * INCREMENT X2 7 0673 # C12 094 15 3312 094
213 LOOP5 MA @001@,X1 * INCREMENT X1 7 0680 # C12 089 15 3312 089
214 C @080@,X1 * DID WE GO PAST END? 7 0687 C C19 089 16 3319 089
215 BL LOOP1 * NOT YET 5 0694 B 602 T 16 602
216 *
217 * NOW THAT ALL OF THE LEADING AND MULTIPLE SPACES ARE REMOVED
218 * IT IS A GOOD TIME TO FINE THE FIRST SPACE
219 *
220 MCW @000@,FSTSP * RESET FIRST SPACE 7 0699 M B99 Z62 16 3299 1962
221 MCW @000@,X1 * RESET X1 7 0706 M B99 089 16 3299 089
222 LOOPA BCE LOOPB,.READ&X1, * IS IT A SPACE? 8 0713 B 740 0'1 16 740 001+1
223 MA @001@,X1 * INCREMENT X1 7 0721 # C12 089 17 3312 089
224 C @080@,X1 * ARE WE AT THE END? 7 0728 C C19 089 17 3319 089
225 BL LOOPA * TRY AGAIN 5 0735 B 713 T 17 713
226 LOOPB MCW X1,FSTSP * FOUND IT 7 0740 M 089 Z62 17 089 1962
227 *
228 * NOW THAT WE KNOW WHERE THE FIRST SPACE IS,
229 * WE CAN LOAD LINE 1 AND LINE 2
230 *
231 MCW @000@,X1 * RESET X1 7 0747 M B99 089 17 3299 089
232 LIN1 BCE LIN1A,.READ&X1, * DID WE FIND THE SPACE 8 0754 B 795 0'1 18 795 001+1
233 MZ .READ&X1,LINE1-10&X1 * MOVE THE DATA 7 0762 Y 0'1 ZS7 18 001+1 1927+1
234 MN .READ&X1,LINE1-10&X1 * MOVE THE DATA 7 0769 D 0'1 ZS7 18 001+1 1927+1
235 MA @001@,X1 * INCREMENT X1 7 0776 # C12 089 18 3312 089
236 C @011@,X1 * SEE IF WE ARE FULL 7 0783 C C22 089 18 3322 089
237 BL LIN1 * DO IT AGAIN 5 0790 B 754 T 19 754
238 LIN1A NOP * FULL LINE OR SPACE 1 0795 N 19
239 *
240 * NOW TO DO LINE 2
241 *
242 MCW FSTSP,X1 * RESET X1 TO SPACE ON .READ 7 0796 M Z62 089 19 1962 089
243 MA @001@,X1 * INCREMENT X1 TO NON-SPACE 7 0803 # C12 089 19 3312 089
244 MCW @000@,X2 * INITIALIZE X2 7 0810 M B99 094 19 3299 094
245 LIN2 MZ .READ&X1,LINE2-9&X2 * MOVE THE DATA 7 0817 Y 0'1 ZM9 19 001+1 1949+2
1 PAGE 4
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
246 MN .READ&X1,LINE2-9&X2 * MOVE THE DATA 7 0824 D 0'1 ZM9 20 001+1 1949+2
247 MA @001@,X1 * INCREMENT X1 7 0831 # C12 089 20 3312 089
248 MA @001@,X2 * INCREMENT X2 7 0838 # C12 094 20 3312 094
249 C @010@,X2 * SEE IF WE ARE FULL 7 0845 C C25 094 20 3325 094
250 BL LIN2 * DO IT AGAIN 5 0852 B 817 T 20 817
251 LIN2A NOP * FULL LINE OR SPACE 1 0857 N 20
252 *
253 * LINE1 AND LINE 2 HAVE BEEN LOADED
254 * ALL WE HAVE TO DO IS PRINT THEM
255 *
256 MCW @D@,DOUBLE * SET FOR DOUBLE SIZE BIG PRINT 7 0858 M C26 J00 21 3326 2100
257 MCW @D@,LTDRK * SET FOR DARK PRINT 7 0865 M C26 Z23 21 3326 1923
258 MCW BLANKS, WXX * CLEAR THE FIELD 7 0872 M K34 K09 21 2234 2209
259 BCE NODATA,LINE1-10, *IS IT BLANK 8 0879 B 891 Z27 21 891 1927
260 B LIN11 * JUMP OVER VOID CODE 4 0887 B 898 21 898
261 NODATA MCW @NOBODY @,LINE1 * PUT IN NOBODY 7 0891 M C37 Z37 22 3337 1937
262 LIN11 MCW LINE1,WXX-14 * PRINT LINE 1 7 0898 M Z37 J95 22 1937 2195
263 B PRINTS * PRINT IT 4 0905 B '40 22 1040
264 MCW BLANKS, WXX * CLEAR THE FIELD 7 0909 M K34 K09 22 2234 2209
265 BCE LIN22,LINE2-9, *IS IT BLANK 8 0916 B 935 Z49 22 935 1949
266 MCW LINE2,WXX-14 * MOVE LINE 2 7 0924 M Z58 J95 23 1958 2195
267 B PRINTS * PRINT IT 4 0931 B '40 23 1040
268 LIN22 MCW @S@,DOUBLE * SET FOR SINGLE SIZE BIG PRINT 7 0935 M C38 J00 23 3338 2100
269 MCW @L@,LTDRK * SET FOR LIGHT PRINT 7 0942 M C39 Z23 23 3339 1923
270 MCW LINE3,WXX * "VISITED THE COMPUTER# " 7 0949 M K59 K09 23 2259 2209
271 B PRINTS * SUBROUTINE CALL 4 0956 B '40 23 1040
272 MCW LINE4,WXX * "HISTORY MUSEUM ON# " 7 0960 M K84 K09 24 2284 2209
273 B PRINTS * SUBROUTINE CALL 4 0967 B '40 24 1040
274 MCW DATE25,WXX * PRINT DATE LINE 7 0971 M J84 K09 24 2184 2209
275 B PRINTS * SUBROUTINE CALL 4 0978 B '40 24 1040
276 W * BLANK LINE 1 0982 2 24
277 MCW CREDIT,310 * PRINT CREDIT 7 0983 M Z21 310 24 1921 310
278 W 1 0990 2 24
279 CC 1 * TOP OF FORM 2 0991 F 1 25
280 SKIPTX B READG * GO AND GET THE NEXT GUEST CARD 4 0993 B 498 25 498
281 *
282 ************************************************************
283 * BANNER PROCESSING
284 ************************************************************
285 *
286 BANNER MZ .READ,DOUBLE * SET THE SIZE 7 0997 Y 001 J00 25 001 2100
287 MN .READ,DOUBLE * SET THE SIZE 7 1004 D 001 J00 25 001 2100
288 MZ .READ&1,LTDRK * SET THE LIGHT / DARK 7 1011 Y 002 Z23 25 002 1923
289 MN .READ&1,LTDRK * SET THE LIGHT / DARK 7 1018 D 002 Z23 25 002 1923
290 MCW .READ&26,WXX * SET THE BUFFER 7 1025 M 027 K09 26 027 2209
291 B PRINTS * PRINT AS REQUESTED 4 1032 B '40 26 1040
292 B READG * NEXT CARD 4 1036 B 498 26 498
293 *
294 *
295 ************************************************************
1 PAGE 5
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
296 * PRINTS SUBROUTINE
297 ***********************************************************
298 *
299 PRINTS SBR PRINTX&3 * SET RETURN ADDRESS 4 1040 H X36 26 1736
300 MCW @000@,WROW * INITIALIZE PRINT ROW COUNTER 7 1044 M B99 J06 26 3299 2106
301 PRINT1 MCW @000@,WCOL * INITIALIZE WORK CHARACTER PICK UP 7 1051 M B99 J03 26 3299 2103
302 MCW @000@,PCOL * INITIALIZE OUTPUT INDEX 7 1058 M B99 J17 27 3299 2117
303 CS 332 * CLEAR PRINTER AREA 4 1065 / 332 27 332
304 CS 1 1069 / 27
305 SW 201 4 1070 , 201 27 201
306 *
307 PRINT2 MCW WCOL,X1 * PREPARE TO PICK UP NEXT CHAR 7 1074 M J03 089 27 2103 089
308 * * TO PROCESS
309 MCW WXX-24&X1,PCHAR * AND GET IT 7 1081 M JY5 J07 27 2185+1 2107
310 MCW WXX-23&X1,PCHAR2 * STORE OFF THE NEXT CHARACTER 7 1088 M JY6 J08 27 2186+1 2108
311 A @001@,WCOL * INCREMENT COLUMN COUNT 7 1095 A C12 J03 28 3312 2103
312 MCW @000@,SUM * INITIALIZE SUM 7 1102 M B99 !64 28 3299 2064
313 C @000@,WROW * ARE WE ON THE FIRST ROW? 7 1109 C B99 J06 28 3299 2106
314 BU PC4 * GO GET IT FROM TABLE 5 1116 B U18 / 28 1418
315 *
316 *****************************************************************
317 * THE DATA FOR EACH CHARACTER IS STORED IN A TABLE TITLED CODEA
318 * AN INDEX TO THIS TABLE IS TITLED CINDX
319 * THE FOLLOWING CODE WILL FIND THE CHARCTER IN CINDX AND SET SUM
320 * TO THAT POSITION
321 * THE ROUTING CHECKS THE ZONE BITS FIRST AND SETS A
322 * BASE OF 0,16,32 OR 48
323 * THEN IT USES THE NUMERICAL PORTION TO ADD IN TO THE INDEX
324 * THIS DOES NOT WORK WITH SPECIAL CHARACTERS
325 * SO THEY ALONG WITH THE ZERO HAVE TO BE PROCESSED SPECIAL
326 * THIS ONLY WORKS IF THE NUMBERIAL PORTION IS 0-9
327 * A TEST FOR SPECIAL CASES IS DONE ON THE NUMERICAL PORTION
328 * FOR OTHER SPECIAL CHARACTERS
329 ******************************************************************
330 *
331 MN PCHAR,NUM * MOVE THE NUMERIC PORTION 7 1121 D J07 !61 28 2107 2061
332 MZ PCHAR,ZONE * MOVE THE ZONE 7 1128 Y J07 !60 29 2107 2060
333 C @0@,NUM * CHECK THE NUMERIC PORTION 7 1135 C C40 !61 29 3340 2061
334 BH CKA * GOOD STUFF 5 1142 B /90 U 29 1190
335 *
336 * CHECK FOR SPECIAL CHARACTERS
337 *
338 BCE AZERO,PCHAR,0 * IT IS A ZERO 8 1147 B S65 J07 0 29 1265 2107
339 BCE ACOLON,PCHAR,: * IT IS A COLON 8 1155 B S76 J07 : 29 1276 2107
340 BCE ADASH,PCHAR,- * IT IS A DASH 8 1163 B S87 J07 - 30 1287 2107
341 BCE ACOMMA,PCHAR,, * IT IS A COMMA 8 1171 B S98 J07 , 30 1298 2107
342 MCW @000@,SUM * MAKE IT A SPACE 7 1179 M B99 !64 30 3299 2064
343 B PC3 4 1186 B T09 30 1309
344 *
345 CKA BCE ZA,ZONE,A 8 1190 B S18 !60 A 30 1218 2060
1 PAGE 6
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
346 CKB BCE ZB,ZONE,B 8 1198 B S29 !60 B 31 1229 2060
347 CKAB BCE ZAB,ZONE,C 8 1206 B S40 !60 C 31 1240 2060
348 B NUMA 4 1214 B S47 31 1247
349 ZA A @32@,SUM 7 1218 A C42 !64 31 3342 2064
350 B NUMA 4 1225 B S47 31 1247
351 ZB A @16@,SUM 7 1229 A C44 !64 31 3344 2064
352 B NUMA 4 1236 B S47 32 1247
353 ZAB A @48@,SUM 7 1240 A C46 !64 32 3346 2064
354 * ADD THE NUMERIC PORTION TO THE SUM
355 NUMA A NUM,SUM 7 1247 A !61 !64 32 2061 2064
356 *
357 END MZ @0@,SUM 7 1254 Y C40 !64 32 3340 2064
358 B PC3 4 1261 B T09 32 1309
359 *
360 ************************************************************
361 AZERO ZA @10@,SUM 7 1265 ? C48 !64 32 3348 2064
362 B PC3 4 1272 B T09 33 1309
363 ACOLON ZA @13@,SUM 7 1276 ? C50 !64 33 3350 2064
364 B PC3 4 1283 B T09 33 1309
365 ADASH ZA @16@,SUM 7 1287 ? C44 !64 33 3344 2064
366 B PC3 4 1294 B T09 33 1309
367 ACOMMA ZA @43@,SUM 7 1298 ? C52 !64 33 3352 2064
368 B PC3 4 1305 B T09 33 1309
369 ************************************************************
370 PC3 MCW X1,X1HOLD * STORE OFF THE CURRENT VALUE OF X1 7 1309 M 089 !76 34 089 2076
371 MCW @000@,X1 * INITIALIZE X1 7 1316 M B99 089 34 3299 089
372 MA WCOL,X1 * PUT IN THE COLUMN INTO X1 7 1323 # J03 089 34 2103 089
373 MA WCOL,X1 * PUT IN THE COLUMN INTO X1 7 1330 # J03 089 34 2103 089
374 MA WCOL,X1 * PUT IN THE COLUMN INTO X1 7 1337 # J03 089 34 2103 089
375 MCW @000@,SUM2 * INITALIZE SUM2 7 1344 M B99 !67 35 3299 2067
376 A SUM,SUM2 * ADD IN PLACE OF MULTIPLY 7 1351 A !64 !67 35 2064 2067
377 A SUM,SUM2 * ADD IN PLACE OF MULTIPLY 7 1358 A !64 !67 35 2064 2067
378 A SUM,SUM2 * ADD IN PLACE OF MULTIPLY 7 1365 A !64 !67 35 2064 2067
379 A SUM,SUM2 * ADD IN PLACE OF MULTIPLY 7 1372 A !64 !67 35 2064 2067
380 A SUM,SUM2-1 * ADD IN PLACE OF MULTIPLY X 10 7 1379 A !64 !66 36 2064 2066
381 *
382 MCW SUM2,SUM 7 1386 M !67 !64 36 2067 2064
383 MZ @0@,SUM * CLEAR THE ZONE BITS 7 1393 Y C40 !64 36 3340 2064
384 MCW SUM,PATNUM&X1 * STORE THE NUMBER FOR THIS COLUMN 7 1400 M !64 BS1 36 2064 3221+1
385 MCW X1HOLD,X1 * RESTORE X1 7 1407 M !76 089 36 2076 089
386 B PC5 * GET ON WITH IT 4 1414 B U71 36 1471
387 ************************************************************
388 PC4 MCW X1,X1HOLD * STORE OFF THE CURRENT VALUE OF X1 7 1418 M 089 !76 37 089 2076
389 MCW @000@,X1 * INITIALIZE X1 7 1425 M B99 089 37 3299 089
390 MA WCOL,X1 * PUT IN THE COLUMN INTO X1 7 1432 # J03 089 37 2103 089
391 MA WCOL,X1 * PUT IN THE COLUMN INTO X1 7 1439 # J03 089 37 2103 089
392 MA WCOL,X1 * PUT IN THE COLUMN INTO X1 7 1446 # J03 089 37 2103 089
393 MCW PATNUM&X1,SUM * RETRIVE THE NUMBER FOR 7 1453 M BS1 !64 38 3221+1 2064
394 * * THIS COLUMN
395 MCW X1HOLD,X1 * RESTORE X1 7 1460 M !76 089 38 2076 089
1 PAGE 7
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
396 B PC5 * GET ON WITH IT 4 1467 B U71 38 1471
397 *
398 * AT THIS POINT WE HAVE THE TABLE ENTRY FOR THE PATTERN TO PRINT
399 *
400 PC5 MZ @0@,SUM * CLEAR THE ZONE BITS 7 1471 Y C40 !64 38 3340 2064
401 *
402 A WROW,SUM * MAKE INDEX&(2*WROW) 7 1478 A J06 !64 38 2106 2064
403 A WROW,SUM * MAKE INDEX&(2*WROW) 7 1485 A J06 !64 38 2106 2064
404 A @002@,SUM * ADD ELEMENT SIZE 7 1492 A C55 !64 39 3355 2064
405 * * PREPARE TO OUTPUT
406 MCW PCOL,X3 * OUTPUT COLUMN 7 1499 M J17 099 39 2117 099
407 MCW SUM,X1 * PICKUP PROPER MASK 7 1506 M !64 089 39 2064 089
408 MCW CODEA&X1,MASK2 * 7 1513 M KY4 J11 39 2284+1 2111
409 *
410 MCW @000@,X2 * SET UP BIT SELECT INDEX 7 1520 M B99 094 39 3299 094
411 L1 C BITSEL&X2,MASK2 * DO COMPARE 7 1527 C JM9 J11 40 2149+2 2111
412 BL L2 5 1534 B V71 T 40 1571
413 MCW PCHAR,WCHAR * YES, PRINT SPECIAL 7 1539 M J07 J09 40 2107 2109
414 S BITSEL&X2,MASK2 * FIX MASK 7 1546 S JM9 J11 40 2149+2 2111
415 MN MASK2,NOZONE 7 1553 D J11 J25 40 2111 2125
416 MCW NOZONE,MASK2 7 1560 M J25 J11 41 2125 2111
417 B L3 4 1567 B V78 41 1578
418 L2 MCW @ @,WCHAR 7 1571 M C16 J09 41 3316 2109
419 L3 A @002@,X2 * GO TO NEXT BIT 7 1578 A C55 094 41 3355 094
420 MCW WCHAR,.PRINT&X3 * PRINT PROPER CHARACTER 7 1585 M J09 2?1 41 2109 201+3
421 A @001@,X3 7 1592 A C12 099 41 3312 099
422 BCE L4,DOUBLE,S * ARE WE GOING SINGLE? 8 1599 B W21 J00 S 42 1621 2100
423 MCW WCHAR,.PRINT&X3 * PRINT PROPER CHARACTER 7 1607 M J09 2?1 42 2109 201+3
424 A @001@,X3 7 1614 A C12 099 42 3312 099
425 L4 C @009@,X2 7 1621 C C58 094 42 3358 094
426 BL L1 5 1628 B V27 T 42 1527
427 A @001@,X3 7 1633 A C12 099 43 3312 099
428 BCE L5,DOUBLE,S * ARE WE DOING SINGLE? 8 1640 B W55 J00 S 43 1655 2100
429 A @001@,X3 7 1648 A C12 099 43 3312 099
430 L5 MCW X3,PCOL * SAVE COLUMN POINTER 7 1655 M 099 J17 43 099 2117
431 BCE L55,PCHAR2,# * IF #, LAST CHARACTER IN ROW 8 1662 B W82 J08 # 43 1682 2108
432 C @132@,X3 * 7 1670 C C61 099 44 3361 099
433 BL PRINT2 5 1677 B '74 T 44 1074
434 L55 BCE L555,DOUBLE,S * ARE WE DOING SINGLE? 8 1682 B W92 J00 S 44 1692 2100
435 W * WRITE THE PRINT AREA TO 1 1690 2 44
436 * * THE PRINTER NO SPACE
437 DC @S@ 1 1691 44
438 L555 W * WRITE THE PRINT AREA TO 1 1692 2 44
439 * * THE PRINTER
440 BCE L6,LTDRK,L * ARE WE DOING LIGHT PRINT? 8 1693 B X04 Z23 L 44 1704 1923
441 W * WRITE THE PRINT AREA TO 1 1701 2 44
442 * * THE PRINTER NO SPACE
443 DC @S@ 1 1702 44
444 W * WRITE THE PRINT AREA TO 1 1703 2 45
445 * * THE PRINTER
1 PAGE 8
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
446 L6 A @001@,WROW * INCREMENT ROW COUNTER 7 1704 A C12 J06 45 3312 2106
447 C @007@,WROW 7 1711 C C64 J06 45 3364 2106
448 BL PRINT1 * DO ANOTHER ROW 5 1718 B '51 T 45 1051
449 CS 332 * CLEAR PRINTER AREA 4 1723 / 332 45 332
450 CS 1 1727 / 45
451 SW 201 4 1728 , 201 45 201
452 W * WRITE THE PRINT AREA TO 1 1732 2 46
453 * * THE PRINTER -
454 PRINTX B 0 * RETURN TO CALL 4 1733 B 000 46 000
455 NOP * BACK UP BRANCH 1 1737 N 46
456 *
457 * THE FOLLOWING ROUTINE IS DESIGNED TO TERMINATE
458 * THE PROCESSING
459 * OF THE PRINT LINE IF THE # WAS FOUND
460 *
461 PRTX W * WRITE THE PRINT AREA TO 1 1738 2 46
462 * * THE PRINTER -
463 BCE L7,DOUBLE,S * ARE WE DOING SINGLE? 8 1739 B X48 J00 S 46 1748 2100
464 W * WRITE THE PRINT AREA TO 1 1747 2 46
465 * * THE PRINTER
466 L7 CS 332 * CLEAR PRINTER AREA 4 1748 / 332 46 332
467 CS 1 1752 / 47
468 SW 201 4 1753 , 201 47 201
469 W * WRITE THE PRINT AREA TO 1 1757 2 47
470 * * THE PRINTER -
471 B PRINTX 4 1758 B X33 47 1733
472 *
473 *******************************************************
474 *
475 EXIT MACRO
*>>>>>>>>> GEN
476 EXIT NOP 999,999 *LOAD THE A AND B REGISTERS 7 1762 N 999 999 GEN 47 999 999
477 H *HALT OR I WILL SHOOT 1 1769 . GEN 47
478 B START,G *IF G IS ON, RETURN TO START 5 1770 B 381 G GEN 47 381
479 CS 332 *CLEAR PRINT STORAGE 4 1775 / 332 GEN 48 332
480 CS *CLEAR PRINT STORAGE 1 1779 / GEN 48
481 CS *CLEAR PUNCH STORAGE 1 1780 / GEN 48
482 CS *CLEAR READ STORAGE 1 1781 / GEN 48
483 C @SHAY@,14007 *WERE WE LOADED WITH THE LOADER? 7 1782 C C68 !0G GEN 48 3368 14007
484 BE 14000 *YES WE WERE. TURN CONTROL 5 1789 B !0? S GEN 48 14000
485 SW 001 *SET WORDMARK IN LOCATION 1 4 1794 , 001 GEN 48 001
486 EXRED R *READ FIRST CARD OF NEXT DECK 1 1798 1 GEN 49
487 BCE 001,001,, *IS IT A COMMA? 8 1799 B 001 001 , GEN 49 001 001
488 B EXRED *CHECK THE NEXT ONE 4 1807 B X98 GEN 49 1798
489 NOP 1 1811 N GEN 49
*<<<<<<<<< GEN
* GEN
490 * 1234567890123456789012345678901234567890
491 DCW @THIS PRINTOUT WAS GENERATED ON AN IBM 1401 @ 43 1854 51
492 DC @COMPUTER AT THE COMPUTER HISTORY MUSEUM, @ 41 1895 53
1 PAGE 9
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
493 CREDIT DC @ MOUNTAIN VIEW, CALIFORNIA@ 26 1921 53
494 BNMODE DCW @N@ * ARE WE IN BANNER MODE? 1 1922 53
495 LTDRK DCW @L@ *LIGHT OR DARK 1 1923 53
496 X DCW @X@ 1 1924 53
497 LAST DCW 0 1 1925 53
498 DCW @1@ 1 1926 54
499 LINE1 DCW @ @ 11 1937 54
500 DCW @12345678902@ 11 1948 54
501 LINE2 DCW @ @ 10 1958 54
502 DCW @3@ 1 1959 54
503 FSTSP DCW 000 3 1962 54
504 MIN1 DSA 16000-1 3 1965 I9I 55 15999
505 DCW #40 40 2005 57
506 WORK DC #40 40 2045 59
507 XCNT DCW @00000@ 5 2050 59
508 XCNT2 DCW @00000@ 5 2055 59
509 X4K DSA 4000 3 2058 00' 59 4000
510 SPACE DCW 0 1 2059 59
511 ZONE DCW @1@ 1 2060 60
512 NUM DCW 0 1 2061 60
513 SUM DCW 000 3 2064 60
514 SUM2 DCW 000 * SED TO ADD SUM INSTEAD OF 3 2067 60
515 * * MULTIPLYING SUM
516 BITSUM DCW 000 3 2070 60
517 CHRCNT DCW 000 * CHARACTER COUNTER 3 2073 60
518 X1HOLD DCW 000 * PLACE TO HOLD X1 3 2076 60
519 BIGLST DCW 1 1 2077 61
520 LMINUS DCW @- @ * END OF FILE CARD 4 2081 61
521 BH DCW @00@ 2 2083 61
522 BL DC @0000@ * WHERE THE ANSWER APPEARS 4 2087 61
523 *
524 NZERO DCW 000 * A NUMERICAL ZERO 3 2090 61
525 NONE DCW 001 * A NUMERICAL ONE 3 2093 61
526 TXLIM DCW 000 * TEXT INDEX LIMIT 3 2096 61
527 TXLCNT DCW 000 * TEMP LINE COUNT 3 2099 61
528 DOUBLE DCW @S@ * S PRINTS SINGLE SIZE 1 2100 62
529 * * WORK AREAS FOR PRINTS
530 WCOL DCW 000 * PICKUP INDEX FROM INPUT AREA 3 2103 62
531 WROW DCW 000 3 2106 62
532 PCHAR DCW 0 1 2107 62
533 PCHAR2 DCW 0 1 2108 62
534 WCHAR DCW 0 1 2109 62
535 MASK2 DCW @00@ * 2 CHARACTER MASK 2 2111 62
536 WORK3 DCW 000 3 2114 63
537 PCOL DCW 000 3 2117 63
538 DCW @@000@@ 5 2122 63
539 ONE2 DCW 01 2 2124 63
540 NOZONE DCW 0 1 2125 63
541 DOLSW DCW 0 1 2126 63
542 SPCNT DCW 0 1 2127 63
1 PAGE 10
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
543 SP20 DCW @ @ 20 2147 64
544 *
545 BITSEL DCW 16 2 2149 64
546 DCW 08 2 2151 64
547 DCW 04 2 2153 64
548 DCW 02 2 2155 64
549 DCW 01 2 2157 64
550 DCW 00 2 2159 64
551 *
552 DATE25 DCW @0000000000000000000000000@ * SAVE DATE 25 LONG 25 2184 65
553 *
554 WXX DCW @0000000000000000000000000@ 25 2209 66
555 * WORK AREA FOR STRING 25 LONG
556 *
557 BLANKS DCW @ @ * SET WORK TO BLANKS 25 2234 67
558 LINE3 DCW @VISITED THE COMPUTER# @ 25 2259 68
559 LINE4 DCW @HISTORY MUSEUM ON# @ 25 2284 69
560 *
561 * MASK IS 14 CHR
562 *
563 * THINK 5X7 MATRIX
564 * FOR REFERENCE/CLARIFICATION HERE IS A "1"
565 * DC @04120404040414@
566 * 04 000100
567 * 12 001100 (4 + 8)
568 * 04 000100
569 * 04 000100
570 * 04 000100
571 * 04 000100
572 * 14 001110 (2 + 4 + 8)
573 *
574 * FOR REFERENCE/CLARIFICATION HERE IS A "2"
575 * DC @14170102020431@
576 * 14 01110
577 * 17 10001
578 * 01 00001
579 * 02 00010
580 * 02 00010
581 * 04 00100
582 * 31 11111
583 CODEA DS 0 2284
584 DC @00000000000000@ * BLANK 14 2298 69
585 DC @04120404040414@ * 1 14 2312 70
586 DC @14170101020431@ * 2 14 2326 70
587 DC @31020402010114@ * 3 14 2340 71
588 DC @02061018310202@ * 4 14 2354 71
589 DC @31163001011714@ * 5 14 2368 72
590 DC @06081630171714@ * 6 14 2382 72
591 DC @31010204080808@ * 7 14 2396 73
592 DC @14171714171714@ * 8 14 2410 73
1 PAGE 11
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
593 DC @14171715010212@ * 9 14 2424 74
594 DC @14171921251714@ * 0 14 2438 74
595 DC @00000000000000@ * # 14 2452 75
596 DC @00000000000000@ * (AT SIGN) 14 2466 75
597 DC @30303000303030@ * : 14 2480 76
598 DC @00000000000000@ * > 14 2494 76
599 DC @00000000000000@ * (TAPE MARK) 14 2508 77
600 * 0 TO 15 ABOVE
601 DC @00000031000000@ * - 14 2522 77
602 DC @07020202021812@ * J 14 2536 78
603 DC @17182224221817@ * K 14 2550 78
604 DC @16161616161631@ * L 14 2564 79
605 DC @17272121171717@ * M 14 2578 79
606 DC @17172521191717@ * N 14 2592 80
607 DC @14171717171714@ * O 14 2606 80
608 DC @30171730161616@ * P 14 2620 81
609 DC @14171717212213@ * Q 14 2634 81
610 DC @30171730201817@ * R 14 2648 82
611 DC @00000000000000@ * ! 14 2662 82
612 DC @00000000000000@ * $ 14 2676 83
613 DC @00000000000000@ * * 14 2690 83
614 DC @00000000000000@ * ) 14 2704 84
615 DC @00000000000000@ * ; 14 2718 84
616 DC @00000000000000@ * (DELTA) 14 2732 85
617 * 16 TO 31 ABOVE
618 DC @00000000000000@ * (CENT) 14 2746 85
619 DC @00010204081600@ * / 14 2760 86
620 DC @15161614010130@ * S 14 2774 86
621 DC @31040404040404@ * T 14 2788 87
622 DC @17171717171714@ * U 14 2802 87
623 DC @17171717171004@ * V 14 2816 88
624 DC @17171721212110@ * W 14 2830 88
625 DC @17171004101717@ * X 14 2844 89
626 DC @17171710040404@ * Y 14 2858 89
627 DC @31010204081631@ * Z 14 2872 90
628 DC @00000000000000@ * (REC MRK) 14 2886 90
629 DC @00000000120408@ * , 14 2900 91
630 DC @00000000000000@ * % 14 2914 91
631 DC @00000000000000@ * = 14 2928 92
632 DC @00000000000000@ * ' 14 2942 92
633 DC @00000000000000@ * " 14 2956 93
634 * 32 TO 47 ABOVE
635 DC @00000000000000@ * & 14 2970 93
636 DC @14171717311717@ * A 14 2984 94
637 DC @30171730171730@ * B 14 2998 94
638 DC @14171616161714@ * C 14 3012 95
639 DC @24181717171824@ * D 14 3026 95
640 DC @31161630161631@ * E 14 3040 96
641 DC @31161630161616@ * F 14 3054 96
642 DC @14171623171715@ * G 14 3068 97
1 PAGE 12
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
643 DC @17171731171717@ * H 14 3082 97
644 DC @14040404040414@ * I 14 3096 98
645 DC @00000000000000@ * ? 14 3110 98
646 DC @00000000000000@ * . 14 3124 99
647 DC @00000000000000@ * (LOZGEN) 14 3138 99
648 DC @00000000000000@ * ( 14 3152 100
649 DC @00000000000000@ * < 14 3166 100
650 DC @00000000000000@ * (GRP MARK) 14 3180 101
651 * 48 TO 63 ABOVE
652 DCW @123456789012345678901234567890@ 30 3210 102
653 PICKUP DCW 000 3 3213 102
654 DCW @START@ 5 3218 102
655 PATERN DA 25X3 3219 3293 102
656 * STOREAGE FOR CHARACTER INDEX NUMBERS
681 PATNUM 1,3 * ELEMENT IN PATTERN ARRAY 3221 FIELD
682 DCW @END@ 3 3296 110
DCW @000@ 3 3299 LIT 110
DCW @A@ 1 3300 LIT 110
DCW @J@ 1 3301 LIT 111
DCW @Z@ 1 3302 LIT 111
DCW @BANNER@ 6 3308 LIT 111
DCW @Y@ 1 3309 LIT 111
DCW @001@ 3 3312 LIT 111
DCW @005@ 3 3315 LIT 111
DCW @ @ 1 3316 LIT 111
DCW @080@ 3 3319 LIT 112
DCW @011@ 3 3322 LIT 112
DCW @010@ 3 3325 LIT 112
DCW @D@ 1 3326 LIT 112
DCW @NOBODY @ 11 3337 LIT 112
DCW @S@ 1 3338 LIT 112
DCW @L@ 1 3339 LIT 112
DCW @0@ 1 3340 LIT 113
DCW @32@ 2 3342 LIT 113
DCW @16@ 2 3344 LIT 113
DCW @48@ 2 3346 LIT 113
DCW @10@ 2 3348 LIT 113
DCW @13@ 2 3350 LIT 113
DCW @43@ 2 3352 LIT 113
DCW @002@ 3 3355 LIT 114
DCW @009@ 3 3358 LIT 114
DCW @132@ 3 3361 LIT 114
DCW @007@ 3 3364 LIT 114
DCW @SHAY@ 4 3368 LIT 114
683 END START * LAST CARD IN DECK, TRANSFER ADDRESS / 381 080 381
1 PAGE 13
0SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS
.PRINT 0201: 0 .PUNCH 0101: 0 .READ 0001: 0 ACOLON 1276: 0 ACOMMA 1298: 0 ADASH 1287: 0
AZERO 1265: 0 BANNER 0997: 0 BH 2083: 0 BIGLST 2077: 0 BITSEL 2149: 0 BITSUM 2070: 0
BL 2087: 0 BLANKS 2234: 0 BNEXIT 0497: 0 BNMODE 1922: 0 CHRCNT 2073: 0 CKA 1190: 0
CKAB 1206: 0 CKB 1198: 0 CODEA 2284: 0 CREDIT 1921: 0 DATE25 2184: 0 DOLSW 2126: 0
DOUBLE 2100: 0 END 1254: 0 EOFC1 0506: 0 EOFC2 0518: 0 EOFC3 0530: 0 EOFC4 0538: 0
EXIT 1762: 0 EXRED 1798: 0 FSTSP 1962: 0 L1 1527: 0 L2 1571: 0 L3 1578: 0
L4 1621: 0 L5 1655: 0 L55 1682: 0 L555 1692: 0 L6 1704: 0 L7 1748: 0
LAST 1925: 0 LIN1 0754: 0 LIN11 0898: 0 LIN1A 0795: 0 LIN2 0817: 0 LIN22 0935: 0
LIN2A 0857: 0 LINE1 1937: 0 LINE2 1958: 0 LINE3 2259: 0 LINE4 2284: 0 LMINUS 2081: 0
LOOP1 0602: 0 LOOP2 0610: 0 LOOP3 0661: 0 LOOP4 0673: 0 LOOP5 0680: 0 LOOPA 0713: 0
LOOPB 0740: 0 LTDRK 1923: 0 MASK2 2111: 0 MIN1 1965: 0 NODATA 0891: 0 NONE 2093: 0
NOZONE 2125: 0 NUM 2061: 0 NUMA 1247: 0 NZERO 2090: 0 ONE2 2124: 0 PATERN 3219: 0
PATNUM 3221: 0 PC3 1309: 0 PC4 1418: 0 PC5 1471: 0 PCHAR 2107: 0 PCHAR2 2108: 0
PCOL 2117: 0 PICKUP 3213: 0 PRINT1 1051: 0 PRINT2 1074: 0 PRINTS 1040: 0 PRINTX 1733: 0
PRTX 1738: 0 READG 0498: 0 REV 0380: 0 SKIPTX 0993: 0 SP20 2147: 0 SPACE 2059: 0
SPCNT 2127: 0 START 0381: 0 SUM 2064: 0 SUM2 2067: 0 TXLCNT 2099: 0 TXLIM 2096: 0
WCHAR 2109: 0 WCOL 2103: 0 WORK 2045: 0 WORK1 1966: 0 WORK3 2114: 0 WROW 2106: 0
WXX 2209: 0 X 1924: 0 X1 0089: 0 X1HOLD 2076: 0 X2 0094: 0 X3 0099: 0
X4K 2058: 0 XCNT 2050: 0 XCNT2 2055: 0 ZA 1218: 0 ZAB 1240: 0 ZB 1229: 0
ZONE 2060: 0
0UNREFERENCED SYMBOLS
BH BIGLST BITSUM BL CHRCNT DOLSW END LIN2A LMINUS MIN1 NONE ONE2 PATERN PICKUP PRTX SKIPTX SP20
SPACE SPCNT TXLCNT TXLIM WORK3 X X4K XCNT XCNT2
June 1, 2014
1234567890123 abcdefghijklmnop
SHAY IS NICE
Shay EL Paddock
Stan Paddock
fRANK
jOE
Eof
----------------------------
banner
DLABRAHAM
DLlINCOLN
SL
SLFour score and seven
SLyears ago our fathers
SLbrought forth on this
SLcontinent, a new
SLnation, conceived in
SLLiberty, and dedicated
SLto the proposition
SLthat all men are
SLcreated equal.
SL
SLNow we are engaged in
SLa great civil war,
SLtesting whether that
SLnation, or any nation
SLso conceived and so
SLdedicated, can long
SLendure. We are met on
SLa great battle-field
SLof that war. We have
SLcome to dedicate a
SLportion of that field,
SLas a final resting
SLplace for those who
SLhere gave their lives
SLthat that nation might
SLlive. It is altogether
SLfitting and proper
SLthat we should do
SLthis.
SL
SLBut, in a larger
SLsense, we can not
SLdedicate -- we can
SLnot consecrate --
SLwe can not hallow --
SLthis ground. The
SLbrave men, living and
SLdead, who struggled
SLhere, have consecrated
SLit, far above our poor
SLpower to add or
SLdetract.
SLThe world will little
SLnote, nor long
SLremember
SLwhat we say here, but
SLit can never forget
SLwhat they did here. It
SLis for us the living,
SLrather, to be
SLdedicated here to the
SLunfinished work which
SLthey who fought here
SLhave thus far so
SLnobly advanced. It is
SLrather for us to be
SLhere dedicated to the
SLgreat task remaining
SLbefore us -- that from
SLthese honored dead we
SLtake increased
SLdevotion to that cause
SLfor which they gave
SLthe last full measure
SLof devotion -- that we
SLhere highly resolve
SLthat these dead shall
SLnot have died in vain
SL-- that this nation,
SLunder God, shall have
SLa new birth of freedom
SL-- and that government
SLof the people, by the
SLpeople, for the
SLpeople, shall not
SLperish from the earth.
SL
SLAbraham Lincoln
SLNovember 19, 1863
SL
SL
SL
SL
AAA BBBB RRRR AAA H H AAA M M L III N N CCC OOO L N N
A A B B R R A A H H A A MM MM L I N N C C O O L N N
A A B B R R A A H H A A M M M L I NN N C O O L NN N
A A BBBB RRRR A A HHHHH A A M M M L I N N N C O O L N N N
AAAAA B B R R AAAAA H H AAAAA M M L I N NN C O O L N NN
A A B B R R A A H H A A M M L I N N C C O O L N N
A A BBBB R R A A H H A A M M LLLLL III N N CCC OOO LLLLL N N
N N OOO V V EEEEE M M BBBB EEEEE RRRR 1 999 1 888 66 33333
N N O O V V E MM MM B B E R R 11 9 9 11 8 8 6 3
NN N O O V V E M M M B B E R R 1 9 9 1 8 8 6 3
N N N O O V V EEEE M M M BBBB EEEE RRRR 1 9999 1 888 6666 3
N NN O O V V E M M B B E R R 1 9 ,, 1 8 8 6 6 3
N N O O V V E M M B B E R R 1 9 , 1 8 8 6 6 3
N N OOO V EEEEE M M BBBB EEEEE R R 111 99 , 111 888 666 333
FFFFF OOO U U RRRR SSSS CCC OOO RRRR EEEEE AAA N N DD SSSS EEEEE V V EEEEE N N
F O O U U R R S C C O O R R E A A N N D D S E V V E N N
F O O U U R R S C O O R R E A A NN N D D S E V V E NN N
FFFF O O U U RRRR SSS C O O RRRR EEEE A A N N N D D SSS EEEE V V EEEE N N N
F O O U U R R S C O O R R E AAAAA N NN D D S E V V E N NN
F O O U U R R S C C O O R R E A A N N D D S E V V E N N
F OOO UUU R R SSSS CCC OOO R R EEEEE A A N N DD SSSS EEEEE V EEEEE N N
Y Y EEEEE AAA RRRR SSSS AAA GGG OOO OOO U U RRRR FFFFF AAA TTTTT H H EEEEE RRRR SSSS
Y Y E A A R R S A A G G O O O O U U R R F A A T H H E R R S
Y Y E A A R R S A A G O O O O U U R R F A A T H H E R R S
Y Y EEEE A A RRRR SSS A A G GGG O O O O U U RRRR FFFF A A T HHHHH EEEE RRRR SSS
Y E AAAAA R R S AAAAA G G O O O O U U R R F AAAAA T H H E R R S
Y E A A R R S A A G G O O O O U U R R F A A T H H E R R S
Y EEEEE A A R R SSSS A A GGGG OOO OOO UUU R R F A A T H H EEEEE R R SSSS
BBBB RRRR OOO U U GGG H H TTTTT FFFFF OOO RRRR TTTTT H H OOO N N TTTTT H H III SSSS
B B R R O O U U G G H H T F O O R R T H H O O N N T H H I S
B B R R O O U U G H H T F O O R R T H H O O NN N T H H I S
BBBB RRRR O O U U G GGG HHHHH T FFFF O O RRRR T HHHHH O O N N N T HHHHH I SSS
B B R R O O U U G G H H T F O O R R T H H O O N NN T H H I S
B B R R O O U U G G H H T F O O R R T H H O O N N T H H I S
BBBB R R OOO UUU GGGG H H T F OOO R R T H H OOO N N T H H III SSSS
CCC OOO N N TTTTT III N N EEEEE N N TTTTT AAA N N EEEEE W W
C C O O N N T I N N E N N T A A N N E W W
C O O NN N T I NN N E NN N T A A NN N E W W
C O O N N N T I N N N EEEE N N N T A A N N N EEEE W W W
C O O N NN T I N NN E N NN T ,, AAAAA N NN E W W W
C C O O N N T I N N E N N T , A A N N E W W W
CCC OOO N N T III N N EEEEE N N T , A A N N EEEEE W W
N N AAA TTTTT III OOO N N CCC OOO N N CCC EEEEE III V V EEEEE DD III N N
N N A A T I O O N N C C O O N N C C E I V V E D D I N N
NN N A A T I O O NN N C O O NN N C E I V V E D D I NN N
N N N A A T I O O N N N C O O N N N C EEEE I V V EEEE D D I N N N
N NN AAAAA T I O O N NN ,, C O O N NN C E I V V E D D I N NN
N N A A T I O O N N , C C O O N N C C E I V V E D D I N N
N N A A T III OOO N N , CCC OOO N N CCC EEEEE III V EEEEE DD III N N
L III BBBB EEEEE RRRR TTTTT Y Y AAA N N DD DD EEEEE DD III CCC AAA TTTTT EEEEE DD
L I B B E R R T Y Y A A N N D D D D E D D I C C A A T E D D
L I B B E R R T Y Y A A NN N D D D D E D D I C A A T E D D
L I BBBB EEEE RRRR T Y Y A A N N N D D D D EEEE D D I C A A T EEEE D D
L I B B E R R T Y ,, AAAAA N NN D D D D E D D I C AAAAA T E D D
L I B B E R R T Y , A A N N D D D D E D D I C C A A T E D D
LLLLL III BBBB EEEEE R R T Y , A A N N DD DD EEEEE DD III CCC A A T EEEEE DD
TTTTT OOO TTTTT H H EEEEE PPPP RRRR OOO PPPP OOO SSSS III TTTTT III OOO N N
T O O T H H E P P R R O O P P O O S I T I O O N N
T O O T H H E P P R R O O P P O O S I T I O O NN N
T O O T HHHHH EEEE PPPP RRRR O O PPPP O O SSS I T I O O N N N
T O O T H H E P R R O O P O O S I T I O O N NN
T O O T H H E P R R O O P O O S I T I O O N N
T OOO T H H EEEEE P R R OOO P OOO SSSS III T III OOO N N
TTTTT H H AAA TTTTT AAA L L M M EEEEE N N AAA RRRR EEEEE
T H H A A T A A L L MM MM E N N A A R R E
T H H A A T A A L L M M M E NN N A A R R E
T HHHHH A A T A A L L M M M EEEE N N N A A RRRR EEEE
T H H AAAAA T AAAAA L L M M E N NN AAAAA R R E
T H H A A T A A L L M M E N N A A R R E
T H H A A T A A LLLLL LLLLL M M EEEEE N N A A R R EEEEE
CCC RRRR EEEEE AAA TTTTT EEEEE DD EEEEE QQQ U U AAA L
C C R R E A A T E D D E Q Q U U A A L
C R R E A A T E D D E Q Q U U A A L
C RRRR EEEE A A T EEEE D D EEEE Q Q U U A A L
C R R E AAAAA T E D D E Q Q Q U U AAAAA L
C C R R E A A T E D D E Q QQ U U A A L
CCC R R EEEEE A A T EEEEE DD EEEEE QQ Q UUU A A LLLLL
N N OOO W W W W EEEEE AAA RRRR EEEEE EEEEE N N GGG AAA GGG EEEEE DD III N N
N N O O W W W W E A A R R E E N N G G A A G G E D D I N N
NN N O O W W W W E A A R R E E NN N G A A G E D D I NN N
N N N O O W W W W W W EEEE A A RRRR EEEE EEEE N N N G GGG A A G GGG EEEE D D I N N N
N NN O O W W W W W W E AAAAA R R E E N NN G G AAAAA G G E D D I N NN
N N O O W W W W W W E A A R R E E N N G G A A G G E D D I N N
N N OOO W W W W EEEEE A A R R EEEEE EEEEE N N GGGG A A GGGG EEEEE DD III N N
AAA GGG RRRR EEEEE AAA TTTTT CCC III V V III L W W AAA RRRR
A A G G R R E A A T C C I V V I L W W A A R R
A A G R R E A A T C I V V I L W W A A R R
A A G GGG RRRR EEEE A A T C I V V I L W W W A A RRRR
AAAAA G G R R E AAAAA T C I V V I L W W W AAAAA R R ,,
A A G G R R E A A T C C I V V I L W W W A A R R ,
A A GGGG R R EEEEE A A T CCC III V III LLLLL W W A A R R ,
TTTTT EEEEE SSSS TTTTT III N N GGG W W H H EEEEE TTTTT H H EEEEE RRRR TTTTT H H AAA TTTTT
T E S T I N N G G W W H H E T H H E R R T H H A A T
T E S T I NN N G W W H H E T H H E R R T H H A A T
T EEEE SSS T I N N N G GGG W W W HHHHH EEEE T HHHHH EEEE RRRR T HHHHH A A T
T E S T I N NN G G W W W H H E T H H E R R T H H AAAAA T
T E S T I N N G G W W W H H E T H H E R R T H H A A T
T EEEEE SSSS T III N N GGGG W W H H EEEEE T H H EEEEE R R T H H A A T
N N AAA TTTTT III OOO N N OOO RRRR AAA N N Y Y N N AAA TTTTT III OOO N N
N N A A T I O O N N O O R R A A N N Y Y N N A A T I O O N N
NN N A A T I O O NN N O O R R A A NN N Y Y NN N A A T I O O NN N
N N N A A T I O O N N N O O RRRR A A N N N Y Y N N N A A T I O O N N N
N NN AAAAA T I O O N NN ,, O O R R AAAAA N NN Y N NN AAAAA T I O O N NN
N N A A T I O O N N , O O R R A A N N Y N N A A T I O O N N
N N A A T III OOO N N , OOO R R A A N N Y N N A A T III OOO N N
SSSS OOO CCC OOO N N CCC EEEEE III V V EEEEE DD AAA N N DD SSSS OOO
S O O C C O O N N C C E I V V E D D A A N N D D S O O
S O O C O O NN N C E I V V E D D A A NN N D D S O O
SSS O O C O O N N N C EEEE I V V EEEE D D A A N N N D D SSS O O
S O O C O O N NN C E I V V E D D AAAAA N NN D D S O O
S O O C C O O N N C C E I V V E D D A A N N D D S O O
SSSS OOO CCC OOO N N CCC EEEEE III V EEEEE DD A A N N DD SSSS OOO
DD EEEEE DD III CCC AAA TTTTT EEEEE DD CCC AAA N N L OOO N N GGG
D D E D D I C C A A T E D D C C A A N N L O O N N G G
D D E D D I C A A T E D D C A A NN N L O O NN N G
D D EEEE D D I C A A T EEEE D D C A A N N N L O O N N N G GGG
D D E D D I C AAAAA T E D D ,, C AAAAA N NN L O O N NN G G
D D E D D I C C A A T E D D , C C A A N N L O O N N G G
DD EEEEE DD III CCC A A T EEEEE DD , CCC A A N N LLLLL OOO N N GGGG
EEEEE N N DD U U RRRR EEEEE W W EEEEE AAA RRRR EEEEE M M EEEEE TTTTT OOO N N
E N N D D U U R R E W W E A A R R E MM MM E T O O N N
E NN N D D U U R R E W W E A A R R E M M M E T O O NN N
EEEE N N N D D U U RRRR EEEE W W W EEEE A A RRRR EEEE M M M EEEE T O O N N N
E N NN D D U U R R E W W W E AAAAA R R E M M E T O O N NN
E N N D D U U R R E W W W E A A R R E M M E T O O N N
EEEEE N N DD UUU R R EEEEE W W EEEEE A A R R EEEEE M M EEEEE T OOO N N
AAA GGG RRRR EEEEE AAA TTTTT BBBB AAA TTTTT TTTTT L EEEEE FFFFF III EEEEE L DD
A A G G R R E A A T B B A A T T L E F I E L D D
A A G R R E A A T B B A A T T L E F I E L D D
A A G GGG RRRR EEEE A A T BBBB A A T T L EEEE ----- FFFF I EEEE L D D
AAAAA G G R R E AAAAA T B B AAAAA T T L E F I E L D D
A A G G R R E A A T B B A A T T L E F I E L D D
A A GGGG R R EEEEE A A T BBBB A A T T LLLLL EEEEE F III EEEEE LLLLL DD
OOO FFFFF TTTTT H H AAA TTTTT W W AAA RRRR W W EEEEE H H AAA V V EEEEE
O O F T H H A A T W W A A R R W W E H H A A V V E
O O F T H H A A T W W A A R R W W E H H A A V V E
O O FFFF T HHHHH A A T W W W A A RRRR W W W EEEE HHHHH A A V V EEEE
O O F T H H AAAAA T W W W AAAAA R R W W W E H H AAAAA V V E
O O F T H H A A T W W W A A R R W W W E H H A A V V E
OOO F T H H A A T W W A A R R W W EEEEE H H A A V EEEEE
CCC OOO M M EEEEE TTTTT OOO DD EEEEE DD III CCC AAA TTTTT EEEEE AAA
C C O O MM MM E T O O D D E D D I C C A A T E A A
C O O M M M E T O O D D E D D I C A A T E A A
C O O M M M EEEE T O O D D EEEE D D I C A A T EEEE A A
C O O M M E T O O D D E D D I C AAAAA T E AAAAA
C C O O M M E T O O D D E D D I C C A A T E A A
CCC OOO M M EEEEE T OOO DD EEEEE DD III CCC A A T EEEEE A A
PPPP OOO RRRR TTTTT III OOO N N OOO FFFFF TTTTT H H AAA TTTTT FFFFF III EEEEE L DD
P P O O R R T I O O N N O O F T H H A A T F I E L D D
P P O O R R T I O O NN N O O F T H H A A T F I E L D D
PPPP O O RRRR T I O O N N N O O FFFF T HHHHH A A T FFFF I EEEE L D D
P O O R R T I O O N NN O O F T H H AAAAA T F I E L D D ,,
P O O R R T I O O N N O O F T H H A A T F I E L D D ,
P OOO R R T III OOO N N OOO F T H H A A T F III EEEEE LLLLL DD ,
AAA SSSS AAA FFFFF III N N AAA L RRRR EEEEE SSSS TTTTT III N N GGG
A A S A A F I N N A A L R R E S T I N N G G
A A S A A F I NN N A A L R R E S T I NN N G
A A SSS A A FFFF I N N N A A L RRRR EEEE SSS T I N N N G GGG
AAAAA S AAAAA F I N NN AAAAA L R R E S T I N NN G G
A A S A A F I N N A A L R R E S T I N N G G
A A SSSS A A F III N N A A LLLLL R R EEEEE SSSS T III N N GGGG
PPPP L AAA CCC EEEEE FFFFF OOO RRRR TTTTT H H OOO SSSS EEEEE W W H H OOO
P P L A A C C E F O O R R T H H O O S E W W H H O O
P P L A A C E F O O R R T H H O O S E W W H H O O
PPPP L A A C EEEE FFFF O O RRRR T HHHHH O O SSS EEEE W W W HHHHH O O
P L AAAAA C E F O O R R T H H O O S E W W W H H O O
P L A A C C E F O O R R T H H O O S E W W W H H O O
P LLLLL A A CCC EEEEE F OOO R R T H H OOO SSSS EEEEE W W H H OOO
H H EEEEE RRRR EEEEE GGG AAA V V EEEEE TTTTT H H EEEEE III RRRR L III V V EEEEE SSSS
H H E R R E G G A A V V E T H H E I R R L I V V E S
H H E R R E G A A V V E T H H E I R R L I V V E S
HHHHH EEEE RRRR EEEE G GGG A A V V EEEE T HHHHH EEEE I RRRR L I V V EEEE SSS
H H E R R E G G AAAAA V V E T H H E I R R L I V V E S
H H E R R E G G A A V V E T H H E I R R L I V V E S
H H EEEEE R R EEEEE GGGG A A V EEEEE T H H EEEEE III R R LLLLL III V EEEEE SSSS
TTTTT H H AAA TTTTT TTTTT H H AAA TTTTT N N AAA TTTTT III OOO N N M M III GGG H H TTTTT
T H H A A T T H H A A T N N A A T I O O N N MM MM I G G H H T
T H H A A T T H H A A T NN N A A T I O O NN N M M M I G H H T
T HHHHH A A T T HHHHH A A T N N N A A T I O O N N N M M M I G GGG HHHHH T
T H H AAAAA T T H H AAAAA T N NN AAAAA T I O O N NN M M I G G H H T
T H H A A T T H H A A T N N A A T I O O N N M M I G G H H T
T H H A A T T H H A A T N N A A T III OOO N N M M III GGGG H H T
L III V V EEEEE III TTTTT III SSSS AAA L TTTTT OOO GGG EEEEE TTTTT H H EEEEE RRRR
L I V V E I T I S A A L T O O G G E T H H E R R
L I V V E I T I S A A L T O O G E T H H E R R
L I V V EEEE I T I SSS A A L T O O G GGG EEEE T HHHHH EEEE RRRR
L I V V E I T I S AAAAA L T O O G G E T H H E R R
L I V V E I T I S A A L T O O G G E T H H E R R
LLLLL III V EEEEE III T III SSSS A A LLLLL T OOO GGGG EEEEE T H H EEEEE R R
FFFFF III TTTTT TTTTT III N N GGG AAA N N DD PPPP RRRR OOO PPPP EEEEE RRRR
F I T T I N N G G A A N N D D P P R R O O P P E R R
F I T T I NN N G A A NN N D D P P R R O O P P E R R
FFFF I T T I N N N G GGG A A N N N D D PPPP RRRR O O PPPP EEEE RRRR
F I T T I N NN G G AAAAA N NN D D P R R O O P E R R
F I T T I N N G G A A N N D D P R R O O P E R R
F III T T III N N GGGG A A N N DD P R R OOO P EEEEE R R
TTTTT H H AAA TTTTT W W EEEEE SSSS H H OOO U U L DD DD OOO
T H H A A T W W E S H H O O U U L D D D D O O
T H H A A T W W E S H H O O U U L D D D D O O
T HHHHH A A T W W W EEEE SSS HHHHH O O U U L D D D D O O
T H H AAAAA T W W W E S H H O O U U L D D D D O O
T H H A A T W W W E S H H O O U U L D D D D O O
T H H A A T W W EEEEE SSSS H H OOO UUU LLLLL DD DD OOO
TTTTT H H III SSSS
T H H I S
T H H I S
T HHHHH I SSS
T H H I S
T H H I S
T H H III SSSS
BBBB U U TTTTT III N N AAA L AAA RRRR GGG EEEEE RRRR
B B U U T I N N A A L A A R R G G E R R
B B U U T I NN N A A L A A R R G E R R
BBBB U U T I N N N A A L A A RRRR G GGG EEEE RRRR
B B U U T ,, I N NN AAAAA L AAAAA R R G G E R R
B B U U T , I N N A A L A A R R G G E R R
BBBB UUU T , III N N A A LLLLL A A R R GGGG EEEEE R R
SSSS EEEEE N N SSSS EEEEE W W EEEEE CCC AAA N N N N OOO TTTTT
S E N N S E W W E C C A A N N N N O O T
S E NN N S E W W E C A A NN N NN N O O T
SSS EEEE N N N SSS EEEE W W W EEEE C A A N N N N N N O O T
S E N NN S E ,, W W W E C AAAAA N NN N NN O O T
S E N N S E , W W W E C C A A N N N N O O T
SSSS EEEEE N N SSSS EEEEE , W W EEEEE CCC A A N N N N OOO T
DD EEEEE DD III CCC AAA TTTTT EEEEE W W EEEEE CCC AAA N N
D D E D D I C C A A T E W W E C C A A N N
D D E D D I C A A T E W W E C A A NN N
D D EEEE D D I C A A T EEEE ----- ----- W W W EEEE C A A N N N
D D E D D I C AAAAA T E W W W E C AAAAA N NN
D D E D D I C C A A T E W W W E C C A A N N
DD EEEEE DD III CCC A A T EEEEE W W EEEEE CCC A A N N
N N OOO TTTTT CCC OOO N N SSSS EEEEE CCC RRRR AAA TTTTT EEEEE
N N O O T C C O O N N S E C C R R A A T E
NN N O O T C O O NN N S E C R R A A T E
N N N O O T C O O N N N SSS EEEE C RRRR A A T EEEE ----- -----
N NN O O T C O O N NN S E C R R AAAAA T E
N N O O T C C O O N N S E C C R R A A T E
N N OOO T CCC OOO N N SSSS EEEEE CCC R R A A T EEEEE
W W EEEEE CCC AAA N N N N OOO TTTTT H H AAA L L OOO W W
W W E C C A A N N N N O O T H H A A L L O O W W
W W E C A A NN N NN N O O T H H A A L L O O W W
W W W EEEE C A A N N N N N N O O T HHHHH A A L L O O W W W ----- -----
W W W E C AAAAA N NN N NN O O T H H AAAAA L L O O W W W
W W W E C C A A N N N N O O T H H A A L L O O W W W
W W EEEEE CCC A A N N N N OOO T H H A A LLLLL LLLLL OOO W W
TTTTT H H III SSSS GGG RRRR OOO U U N N DD TTTTT H H EEEEE
T H H I S G G R R O O U U N N D D T H H E
T H H I S G R R O O U U NN N D D T H H E
T HHHHH I SSS G GGG RRRR O O U U N N N D D T HHHHH EEEE
T H H I S G G R R O O U U N NN D D T H H E
T H H I S G G R R O O U U N N D D T H H E
T H H III SSSS GGGG R R OOO UUU N N DD T H H EEEEE
BBBB RRRR AAA V V EEEEE M M EEEEE N N L III V V III N N GGG AAA N N DD
B B R R A A V V E MM MM E N N L I V V I N N G G A A N N D D
B B R R A A V V E M M M E NN N L I V V I NN N G A A NN N D D
BBBB RRRR A A V V EEEE M M M EEEE N N N L I V V I N N N G GGG A A N N N D D
B B R R AAAAA V V E M M E N NN ,, L I V V I N NN G G AAAAA N NN D D
B B R R A A V V E M M E N N , L I V V I N N G G A A N N D D
BBBB R R A A V EEEEE M M EEEEE N N , LLLLL III V III N N GGGG A A N N DD
DD EEEEE AAA DD W W H H OOO SSSS TTTTT RRRR U U GGG GGG L EEEEE DD
D D E A A D D W W H H O O S T R R U U G G G G L E D D
D D E A A D D W W H H O O S T R R U U G G L E D D
D D EEEE A A D D W W W HHHHH O O SSS T RRRR U U G GGG G GGG L EEEE D D
D D E AAAAA D D ,, W W W H H O O S T R R U U G G G G L E D D
D D E A A D D , W W W H H O O S T R R U U G G G G L E D D
DD EEEEE A A DD , W W H H OOO SSSS T R R UUU GGGG GGGG LLLLL EEEEE DD
H H EEEEE RRRR EEEEE H H AAA V V EEEEE CCC OOO N N SSSS EEEEE CCC RRRR AAA TTTTT EEEEE DD
H H E R R E H H A A V V E C C O O N N S E C C R R A A T E D D
H H E R R E H H A A V V E C O O NN N S E C R R A A T E D D
HHHHH EEEE RRRR EEEE HHHHH A A V V EEEE C O O N N N SSS EEEE C RRRR A A T EEEE D D
H H E R R E ,, H H AAAAA V V E C O O N NN S E C R R AAAAA T E D D
H H E R R E , H H A A V V E C C O O N N S E C C R R A A T E D D
H H EEEEE R R EEEEE , H H A A V EEEEE CCC OOO N N SSSS EEEEE CCC R R A A T EEEEE DD
III TTTTT FFFFF AAA RRRR AAA BBBB OOO V V EEEEE OOO U U RRRR PPPP OOO OOO RRRR
I T F A A R R A A B B O O V V E O O U U R R P P O O O O R R
I T F A A R R A A B B O O V V E O O U U R R P P O O O O R R
I T FFFF A A RRRR A A BBBB O O V V EEEE O O U U RRRR PPPP O O O O RRRR
I T ,, F AAAAA R R AAAAA B B O O V V E O O U U R R P O O O O R R
I T , F A A R R A A B B O O V V E O O U U R R P O O O O R R
III T , F A A R R A A BBBB OOO V EEEEE OOO UUU R R P OOO OOO R R
PPPP OOO W W EEEEE RRRR TTTTT OOO AAA DD DD OOO RRRR
P P O O W W E R R T O O A A D D D D O O R R
P P O O W W E R R T O O A A D D D D O O R R
PPPP O O W W W EEEE RRRR T O O A A D D D D O O RRRR
P O O W W W E R R T O O AAAAA D D D D O O R R
P O O W W W E R R T O O A A D D D D O O R R
P OOO W W EEEEE R R T OOO A A DD DD OOO R R
DD EEEEE TTTTT RRRR AAA CCC TTTTT
D D E T R R A A C C T
D D E T R R A A C T
D D EEEE T RRRR A A C T
D D E T R R AAAAA C T
D D E T R R A A C C T
DD EEEEE T R R A A CCC T
TTTTT H H EEEEE W W OOO RRRR L DD W W III L L L III TTTTT TTTTT L EEEEE
T H H E W W O O R R L D D W W I L L L I T T L E
T H H E W W O O R R L D D W W I L L L I T T L E
T HHHHH EEEE W W W O O RRRR L D D W W W I L L L I T T L EEEE
T H H E W W W O O R R L D D W W W I L L L I T T L E
T H H E W W W O O R R L D D W W W I L L L I T T L E
T H H EEEEE W W OOO R R LLLLL DD W W III LLLLL LLLLL LLLLL III T T LLLLL EEEEE
N N OOO TTTTT EEEEE N N OOO RRRR L OOO N N GGG
N N O O T E N N O O R R L O O N N G G
NN N O O T E NN N O O R R L O O NN N G
N N N O O T EEEE N N N O O RRRR L O O N N N G GGG
N NN O O T E ,, N NN O O R R L O O N NN G G
N N O O T E , N N O O R R L O O N N G G
N N OOO T EEEEE , N N OOO R R LLLLL OOO N N GGGG
RRRR EEEEE M M EEEEE M M BBBB EEEEE RRRR
R R E MM MM E MM MM B B E R R
R R E M M M E M M M B B E R R
RRRR EEEE M M M EEEE M M M BBBB EEEE RRRR
R R E M M E M M B B E R R
R R E M M E M M B B E R R
R R EEEEE M M EEEEE M M BBBB EEEEE R R
W W H H AAA TTTTT W W EEEEE SSSS AAA Y Y H H EEEEE RRRR EEEEE BBBB U U TTTTT
W W H H A A T W W E S A A Y Y H H E R R E B B U U T
W W H H A A T W W E S A A Y Y H H E R R E B B U U T
W W W HHHHH A A T W W W EEEE SSS A A Y Y HHHHH EEEE RRRR EEEE BBBB U U T
W W W H H AAAAA T W W W E S AAAAA Y H H E R R E ,, B B U U T
W W W H H A A T W W W E S A A Y H H E R R E , B B U U T
W W H H A A T W W EEEEE SSSS A A Y H H EEEEE R R EEEEE , BBBB UUU T
III TTTTT CCC AAA N N N N EEEEE V V EEEEE RRRR FFFFF OOO RRRR GGG EEEEE TTTTT
I T C C A A N N N N E V V E R R F O O R R G G E T
I T C A A NN N NN N E V V E R R F O O R R G E T
I T C A A N N N N N N EEEE V V EEEE RRRR FFFF O O RRRR G GGG EEEE T
I T C AAAAA N NN N NN E V V E R R F O O R R G G E T
I T C C A A N N N N E V V E R R F O O R R G G E T
III T CCC A A N N N N EEEEE V EEEEE R R F OOO R R GGGG EEEEE T
W W H H AAA TTTTT TTTTT H H EEEEE Y Y DD III DD H H EEEEE RRRR EEEEE III TTTTT
W W H H A A T T H H E Y Y D D I D D H H E R R E I T
W W H H A A T T H H E Y Y D D I D D H H E R R E I T
W W W HHHHH A A T T HHHHH EEEE Y Y D D I D D HHHHH EEEE RRRR EEEE I T
W W W H H AAAAA T T H H E Y D D I D D H H E R R E I T
W W W H H A A T T H H E Y D D I D D H H E R R E I T
W W H H A A T T H H EEEEE Y DD III DD H H EEEEE R R EEEEE III T
III SSSS FFFFF OOO RRRR U U SSSS TTTTT H H EEEEE L III V V III N N GGG
I S F O O R R U U S T H H E L I V V I N N G G
I S F O O R R U U S T H H E L I V V I NN N G
I SSS FFFF O O RRRR U U SSS T HHHHH EEEE L I V V I N N N G GGG
I S F O O R R U U S T H H E L I V V I N NN G G ,,
I S F O O R R U U S T H H E L I V V I N N G G ,
III SSSS F OOO R R UUU SSSS T H H EEEEE LLLLL III V III N N GGGG ,
RRRR AAA TTTTT H H EEEEE RRRR TTTTT OOO BBBB EEEEE
R R A A T H H E R R T O O B B E
R R A A T H H E R R T O O B B E
RRRR A A T HHHHH EEEE RRRR T O O BBBB EEEE
R R AAAAA T H H E R R ,, T O O B B E
R R A A T H H E R R , T O O B B E
R R A A T H H EEEEE R R , T OOO BBBB EEEEE
DD EEEEE DD III CCC AAA TTTTT EEEEE DD H H EEEEE RRRR EEEEE TTTTT OOO TTTTT H H EEEEE
D D E D D I C C A A T E D D H H E R R E T O O T H H E
D D E D D I C A A T E D D H H E R R E T O O T H H E
D D EEEE D D I C A A T EEEE D D HHHHH EEEE RRRR EEEE T O O T HHHHH EEEE
D D E D D I C AAAAA T E D D H H E R R E T O O T H H E
D D E D D I C C A A T E D D H H E R R E T O O T H H E
DD EEEEE DD III CCC A A T EEEEE DD H H EEEEE R R EEEEE T OOO T H H EEEEE
U U N N FFFFF III N N III SSSS H H EEEEE DD W W OOO RRRR K K W W H H III CCC H H
U U N N F I N N I S H H E D D W W O O R R K K W W H H I C C H H
U U NN N F I NN N I S H H E D D W W O O R R K KK W W H H I C H H
U U N N N FFFF I N N N I SSS HHHHH EEEE D D W W W O O RRRR KK W W W HHHHH I C HHHHH
U U N NN F I N NN I S H H E D D W W W O O R R K KK W W W H H I C H H
U U N N F I N N I S H H E D D W W W O O R R K K W W W H H I C C H H
UUU N N F III N N III SSSS H H EEEEE DD W W OOO R R K K W W H H III CCC H H
TTTTT H H EEEEE Y Y W W H H OOO FFFFF OOO U U GGG H H TTTTT H H EEEEE RRRR EEEEE
T H H E Y Y W W H H O O F O O U U G G H H T H H E R R E
T H H E Y Y W W H H O O F O O U U G H H T H H E R R E
T HHHHH EEEE Y Y W W W HHHHH O O FFFF O O U U G GGG HHHHH T HHHHH EEEE RRRR EEEE
T H H E Y W W W H H O O F O O U U G G H H T H H E R R E
T H H E Y W W W H H O O F O O U U G G H H T H H E R R E
T H H EEEEE Y W W H H OOO F OOO UUU GGGG H H T H H EEEEE R R EEEEE
H H AAA V V EEEEE TTTTT H H U U SSSS FFFFF AAA RRRR SSSS OOO
H H A A V V E T H H U U S F A A R R S O O
H H A A V V E T H H U U S F A A R R S O O
HHHHH A A V V EEEE T HHHHH U U SSS FFFF A A RRRR SSS O O
H H AAAAA V V E T H H U U S F AAAAA R R S O O
H H A A V V E T H H U U S F A A R R S O O
H H A A V EEEEE T H H UUU SSSS F A A R R SSSS OOO
N N OOO BBBB L Y Y AAA DD V V AAA N N CCC EEEEE DD III TTTTT III SSSS
N N O O B B L Y Y A A D D V V A A N N C C E D D I T I S
NN N O O B B L Y Y A A D D V V A A NN N C E D D I T I S
N N N O O BBBB L Y Y A A D D V V A A N N N C EEEE D D I T I SSS
N NN O O B B L Y AAAAA D D V V AAAAA N NN C E D D I T I S
N N O O B B L Y A A D D V V A A N N C C E D D I T I S
N N OOO BBBB LLLLL Y A A DD V A A N N CCC EEEEE DD III T III SSSS
RRRR AAA TTTTT H H EEEEE RRRR FFFFF OOO RRRR U U SSSS TTTTT OOO BBBB EEEEE
R R A A T H H E R R F O O R R U U S T O O B B E
R R A A T H H E R R F O O R R U U S T O O B B E
RRRR A A T HHHHH EEEE RRRR FFFF O O RRRR U U SSS T O O BBBB EEEE
R R AAAAA T H H E R R F O O R R U U S T O O B B E
R R A A T H H E R R F O O R R U U S T O O B B E
R R A A T H H EEEEE R R F OOO R R UUU SSSS T OOO BBBB EEEEE
H H EEEEE RRRR EEEEE DD EEEEE DD III CCC AAA TTTTT EEEEE DD TTTTT OOO TTTTT H H EEEEE
H H E R R E D D E D D I C C A A T E D D T O O T H H E
H H E R R E D D E D D I C A A T E D D T O O T H H E
HHHHH EEEE RRRR EEEE D D EEEE D D I C A A T EEEE D D T O O T HHHHH EEEE
H H E R R E D D E D D I C AAAAA T E D D T O O T H H E
H H E R R E D D E D D I C C A A T E D D T O O T H H E
H H EEEEE R R EEEEE DD EEEEE DD III CCC A A T EEEEE DD T OOO T H H EEEEE
GGG RRRR EEEEE AAA TTTTT TTTTT AAA SSSS K K RRRR EEEEE M M AAA III N N III N N GGG
G G R R E A A T T A A S K K R R E MM MM A A I N N I N N G G
G R R E A A T T A A S K KK R R E M M M A A I NN N I NN N G
G GGG RRRR EEEE A A T T A A SSS KK RRRR EEEE M M M A A I N N N I N N N G GGG
G G R R E AAAAA T T AAAAA S K KK R R E M M AAAAA I N NN I N NN G G
G G R R E A A T T A A S K K R R E M M A A I N N I N N G G
GGGG R R EEEEE A A T T A A SSSS K K R R EEEEE M M A A III N N III N N GGGG
BBBB EEEEE FFFFF OOO RRRR EEEEE U U SSSS TTTTT H H AAA TTTTT FFFFF RRRR OOO M M
B B E F O O R R E U U S T H H A A T F R R O O MM MM
B B E F O O R R E U U S T H H A A T F R R O O M M M
BBBB EEEE FFFF O O RRRR EEEE U U SSS ----- ----- T HHHHH A A T FFFF RRRR O O M M M
B B E F O O R R E U U S T H H AAAAA T F R R O O M M
B B E F O O R R E U U S T H H A A T F R R O O M M
BBBB EEEEE F OOO R R EEEEE UUU SSSS T H H A A T F R R OOO M M
TTTTT H H EEEEE SSSS EEEEE H H OOO N N OOO RRRR EEEEE DD DD EEEEE AAA DD W W EEEEE
T H H E S E H H O O N N O O R R E D D D D E A A D D W W E
T H H E S E H H O O NN N O O R R E D D D D E A A D D W W E
T HHHHH EEEE SSS EEEE HHHHH O O N N N O O RRRR EEEE D D D D EEEE A A D D W W W EEEE
T H H E S E H H O O N NN O O R R E D D D D E AAAAA D D W W W E
T H H E S E H H O O N N O O R R E D D D D E A A D D W W W E
T H H EEEEE SSSS EEEEE H H OOO N N OOO R R EEEEE DD DD EEEEE A A DD W W EEEEE
TTTTT AAA K K EEEEE III N N CCC RRRR EEEEE AAA SSSS EEEEE DD
T A A K K E I N N C C R R E A A S E D D
T A A K KK E I NN N C R R E A A S E D D
T A A KK EEEE I N N N C RRRR EEEE A A SSS EEEE D D
T AAAAA K KK E I N NN C R R E AAAAA S E D D
T A A K K E I N N C C R R E A A S E D D
T A A K K EEEEE III N N CCC R R EEEEE A A SSSS EEEEE DD
DD EEEEE V V OOO TTTTT III OOO N N TTTTT OOO TTTTT H H AAA TTTTT CCC AAA U U SSSS EEEEE
D D E V V O O T I O O N N T O O T H H A A T C C A A U U S E
D D E V V O O T I O O NN N T O O T H H A A T C A A U U S E
D D EEEE V V O O T I O O N N N T O O T HHHHH A A T C A A U U SSS EEEE
D D E V V O O T I O O N NN T O O T H H AAAAA T C AAAAA U U S E
D D E V V O O T I O O N N T O O T H H A A T C C A A U U S E
DD EEEEE V OOO T III OOO N N T OOO T H H A A T CCC A A UUU SSSS EEEEE
FFFFF OOO RRRR W W H H III CCC H H TTTTT H H EEEEE Y Y GGG AAA V V EEEEE
F O O R R W W H H I C C H H T H H E Y Y G G A A V V E
F O O R R W W H H I C H H T H H E Y Y G A A V V E
FFFF O O RRRR W W W HHHHH I C HHHHH T HHHHH EEEE Y Y G GGG A A V V EEEE
F O O R R W W W H H I C H H T H H E Y G G AAAAA V V E
F O O R R W W W H H I C C H H T H H E Y G G A A V V E
F OOO R R W W H H III CCC H H T H H EEEEE Y GGGG A A V EEEEE
TTTTT H H EEEEE L AAA SSSS TTTTT FFFFF U U L L M M EEEEE AAA SSSS U U RRRR EEEEE
T H H E L A A S T F U U L L MM MM E A A S U U R R E
T H H E L A A S T F U U L L M M M E A A S U U R R E
T HHHHH EEEE L A A SSS T FFFF U U L L M M M EEEE A A SSS U U RRRR EEEE
T H H E L AAAAA S T F U U L L M M E AAAAA S U U R R E
T H H E L A A S T F U U L L M M E A A S U U R R E
T H H EEEEE LLLLL A A SSSS T F UUU LLLLL LLLLL M M EEEEE A A SSSS UUU R R EEEEE
OOO FFFFF DD EEEEE V V OOO TTTTT III OOO N N TTTTT H H AAA TTTTT W W EEEEE
O O F D D E V V O O T I O O N N T H H A A T W W E
O O F D D E V V O O T I O O NN N T H H A A T W W E
O O FFFF D D EEEE V V O O T I O O N N N ----- ----- T HHHHH A A T W W W EEEE
O O F D D E V V O O T I O O N NN T H H AAAAA T W W W E
O O F D D E V V O O T I O O N N T H H A A T W W W E
OOO F DD EEEEE V OOO T III OOO N N T H H A A T W W EEEEE
H H EEEEE RRRR EEEEE H H III GGG H H L Y Y RRRR EEEEE SSSS OOO L V V EEEEE
H H E R R E H H I G G H H L Y Y R R E S O O L V V E
H H E R R E H H I G H H L Y Y R R E S O O L V V E
HHHHH EEEE RRRR EEEE HHHHH I G GGG HHHHH L Y Y RRRR EEEE SSS O O L V V EEEE
H H E R R E H H I G G H H L Y R R E S O O L V V E
H H E R R E H H I G G H H L Y R R E S O O L V V E
H H EEEEE R R EEEEE H H III GGGG H H LLLLL Y R R EEEEE SSSS OOO LLLLL V EEEEE
TTTTT H H AAA TTTTT TTTTT H H EEEEE SSSS EEEEE DD EEEEE AAA DD SSSS H H AAA L L
T H H A A T T H H E S E D D E A A D D S H H A A L L
T H H A A T T H H E S E D D E A A D D S H H A A L L
T HHHHH A A T T HHHHH EEEE SSS EEEE D D EEEE A A D D SSS HHHHH A A L L
T H H AAAAA T T H H E S E D D E AAAAA D D S H H AAAAA L L
T H H A A T T H H E S E D D E A A D D S H H A A L L
T H H A A T T H H EEEEE SSSS EEEEE DD EEEEE A A DD SSSS H H A A LLLLL LLLLL
N N OOO TTTTT H H AAA V V EEEEE DD III EEEEE DD III N N V V AAA III N N
N N O O T H H A A V V E D D I E D D I N N V V A A I N N
NN N O O T H H A A V V E D D I E D D I NN N V V A A I NN N
N N N O O T HHHHH A A V V EEEE D D I EEEE D D I N N N V V A A I N N N
N NN O O T H H AAAAA V V E D D I E D D I N NN V V AAAAA I N NN
N N O O T H H A A V V E D D I E D D I N N V V A A I N N
N N OOO T H H A A V EEEEE DD III EEEEE DD III N N V A A III N N
TTTTT H H AAA TTTTT TTTTT H H III SSSS N N AAA TTTTT III OOO N N
T H H A A T T H H I S N N A A T I O O N N
T H H A A T T H H I S NN N A A T I O O NN N
----- ----- T HHHHH A A T T HHHHH I SSS N N N A A T I O O N N N
T H H AAAAA T T H H I S N NN AAAAA T I O O N NN ,,
T H H A A T T H H I S N N A A T I O O N N ,
T H H A A T T H H III SSSS N N A A T III OOO N N ,
U U N N DD EEEEE RRRR GGG OOO DD SSSS H H AAA L L H H AAA V V EEEEE
U U N N D D E R R G G O O D D S H H A A L L H H A A V V E
U U NN N D D E R R G O O D D S H H A A L L H H A A V V E
U U N N N D D EEEE RRRR G GGG O O D D SSS HHHHH A A L L HHHHH A A V V EEEE
U U N NN D D E R R G G O O D D ,, S H H AAAAA L L H H AAAAA V V E
U U N N D D E R R G G O O D D , S H H A A L L H H A A V V E
UUU N N DD EEEEE R R GGGG OOO DD , SSSS H H A A LLLLL LLLLL H H A A V EEEEE
AAA N N EEEEE W W BBBB III RRRR TTTTT H H OOO FFFFF FFFFF RRRR EEEEE EEEEE DD OOO M M
A A N N E W W B B I R R T H H O O F F R R E E D D O O MM MM
A A NN N E W W B B I R R T H H O O F F R R E E D D O O M M M
A A N N N EEEE W W W BBBB I RRRR T HHHHH O O FFFF FFFF RRRR EEEE EEEE D D O O M M M
AAAAA N NN E W W W B B I R R T H H O O F F R R E E D D O O M M
A A N N E W W W B B I R R T H H O O F F R R E E D D O O M M
A A N N EEEEE W W BBBB III R R T H H OOO F F R R EEEEE EEEEE DD OOO M M
AAA N N DD TTTTT H H AAA TTTTT GGG OOO V V EEEEE RRRR N N M M EEEEE N N TTTTT
A A N N D D T H H A A T G G O O V V E R R N N MM MM E N N T
A A NN N D D T H H A A T G O O V V E R R NN N M M M E NN N T
----- ----- A A N N N D D T HHHHH A A T G GGG O O V V EEEE RRRR N N N M M M EEEE N N N T
AAAAA N NN D D T H H AAAAA T G G O O V V E R R N NN M M E N NN T
A A N N D D T H H A A T G G O O V V E R R N N M M E N N T
A A N N DD T H H A A T GGGG OOO V EEEEE R R N N M M EEEEE N N T
OOO FFFFF TTTTT H H EEEEE PPPP EEEEE OOO PPPP L EEEEE BBBB Y Y TTTTT H H EEEEE
O O F T H H E P P E O O P P L E B B Y Y T H H E
O O F T H H E P P E O O P P L E B B Y Y T H H E
O O FFFF T HHHHH EEEE PPPP EEEE O O PPPP L EEEE BBBB Y Y T HHHHH EEEE
O O F T H H E P E O O P L E ,, B B Y T H H E
O O F T H H E P E O O P L E , B B Y T H H E
OOO F T H H EEEEE P EEEEE OOO P LLLLL EEEEE , BBBB Y T H H EEEEE
PPPP EEEEE OOO PPPP L EEEEE FFFFF OOO RRRR TTTTT H H EEEEE
P P E O O P P L E F O O R R T H H E
P P E O O P P L E F O O R R T H H E
PPPP EEEE O O PPPP L EEEE FFFF O O RRRR T HHHHH EEEE
P E O O P L E ,, F O O R R T H H E
P E O O P L E , F O O R R T H H E
P EEEEE OOO P LLLLL EEEEE , F OOO R R T H H EEEEE
PPPP EEEEE OOO PPPP L EEEEE SSSS H H AAA L L N N OOO TTTTT
P P E O O P P L E S H H A A L L N N O O T
P P E O O P P L E S H H A A L L NN N O O T
PPPP EEEE O O PPPP L EEEE SSS HHHHH A A L L N N N O O T
P E O O P L E ,, S H H AAAAA L L N NN O O T
P E O O P L E , S H H A A L L N N O O T
P EEEEE OOO P LLLLL EEEEE , SSSS H H A A LLLLL LLLLL N N OOO T
PPPP EEEEE RRRR III SSSS H H FFFFF RRRR OOO M M TTTTT H H EEEEE EEEEE AAA RRRR TTTTT H H
P P E R R I S H H F R R O O MM MM T H H E E A A R R T H H
P P E R R I S H H F R R O O M M M T H H E E A A R R T H H
PPPP EEEE RRRR I SSS HHHHH FFFF RRRR O O M M M T HHHHH EEEE EEEE A A RRRR T HHHHH
P E R R I S H H F R R O O M M T H H E E AAAAA R R T H H
P E R R I S H H F R R O O M M T H H E E A A R R T H H
P EEEEE R R III SSSS H H F R R OOO M M T H H EEEEE EEEEE A A R R T H H
--------------------------------------------------------------------
******************************************************************
* LINCOLN'S BIRTHDAY PROGRAM
* BY RONALD MAK
*
* ORIGINAL VERSION: FEBRUARY 1969
* RESURRECTED: FEBRUARY 2005
* CONDENSED: NOVEMBER 2010
******************************************************************
*
HEAD
IDENT DCW @LINCOLN'S BIRTHDAY PROGRAM REV 2.1 06/03/2014@
*
* LINCOLN'S GETTYSBURG ADDRESS
*
GETTYS DCW 0
DC @FOURSCOREANDSEVENYEARSAGOOURFATHERSBROU@
DC @GHTFORTHONTHISCONTINENTANEWNATIONCONCEI@
DC @VEDINLIBERTYANDDEDICATEDTOTHEPROPOSITIO@
DC @NTHATALLMENARECREATEDEQUALNOWWEAREENGAG@
DC @EDINAGREATCIVILWARTESTINGWHETHERTHATNAT@
DC @IONORANYNATIONSOCONCEIVEDANDSODEDICATED@
DC @CANLONGENDUREWEAREMETONAGREATBATTLEFIEL@
DC @DOFTHATWARWEHAVECOMETODEDICATEAPORTIONO@
DC @FTHATFIELDASAFINALRESTINGPLACEFORTHOSEW@
DC @HOHEREGAVETHEIRLIVESTHATTHATNATIONMIGHT@
DC @LIVEITISALTOGETHERFITTINGANDPROPERTHATW@
DC @ESHOULDDOTHISBUTINALARGERSENSEWECANNOTH@
DC @ALLOWTHISGROUNDTHEBRAVEMENLIVINGANDDEAD@
DC @WHOSTRUGGLEDHEREHAVECONSECRATEDITFARABO@
DC @VEOURPOORPOWERTOADDORDETRACTTHEWORLDWIL@
DC @LLITTLENOTENORLONGREMEMBERWHATWESAYHERE@
DC @BUTITCANNEVERFORGETWHATTHEYDIDHEREITISF@
DC @ORUSTHELIVINGRATHERTOBEDEDICATEDHERETOT@
DC @HEUNFINISHEDWORKWHICHTHEYWHOFOUGHTHEREH@
DC @AVETHUSFARSONOBLYADVANCEDITISRATHERFORU@
DC @STOBEHEREDEDICATEDTOTHEGREATTASKREMAINI@
DC @NGBEFOREUSTHATFROMTHESEHONOREDDEADWETAK@
DC @EINCREASEDDEVOTIONTOTHATCAUSEFORWHICHTH@
DC @EYGAVETHELASTFULLMEASUREOFDEVOTIONTHATW@
DC @EHEREHIGHLYRESOLVETHATTHESEDEADSHALLNOT@
DC @HAVEDIEDINVAINTHATTHISNATIONUNDERGODSHA@
DC @LLHAVEANEWBIRTHOFFREEDOMANDTHATGOVERNME@
DC @NTOFTHEPEOPLEBYTHEPEOPLEFORTHEPEOPLESHA@
DC @LNOTPERISHFROMTHISEARTH@
*
*
* THE PRINT MAP. A 00 NUMBER DENOTES THE START OF A NEW
* LINE.
* EACH LINE'S MAP VALUES ALTERNATE BETWEEN 'SKIP' AND 'TAKE'
* VALUES. THE FINAL ZERO DENOTES THE END OF THE PRINT MAP.
* MAP VALUES MUST EACH BE TWO DIGITS IN LENGTH.
*
MAP DC 0
DC @004317003428003133002937002839002712062@
DC @300261010230026081718002607211600250920@
DC @100106002509211001050024102603040500221@
DC @333040021040208080422030020030506051020@
DC @040017040805040506010709030400170308050@
DC @404140502050205001803070409020104010105@
DC @010504030700180307030901020501010603030@
DC @301090018030702110102020201080101020202@
DC @020700180308022601090600190307032501100@
DC @100190406032601090100201225011001002111@
DC @170306010901002210150208010901002507070@
DC @104020201080207010026070604050902010501@
DC @002608050112010601040100260805010601020@
DC @102020701010100270705010317020100270515@
DC @110401002708260200281517040028370028360@
DC @028360027010134002601033300250106300025@
DC @010827002401112104010021041416070100120@
DC @626071201001005490100060455010003036001@
DC @004001140100361004100034280036100509004@
DC @00114010099@
*
SKIP DCW 0 *'SKIP' CODE
TAKE DCW 1 *'TAKE' CODE
NEXTDO DCW 0 *WHAT TO DO NEXT IN THE LINE
MAPVAL DCW 00 *PRINT MAP VALUE
*
*
* PROGRAM START. SET INDEX REGISTER X1 TO POINT TO THE
* FIRST PRINT MAP VALUE, AND INDEX REGISTER X2 TO POINT
* TO THE FIRST CHARACTER OF THE GETTYSBURG ADDRESS.
* INDEX REGISTER X3 WILL LATER POINT INTO THE PRINT AREA.
*
START MCW IDENT,160 *LAY IN THE IDENT
SBR X1,MAP&2 *POINT X1 TO PRINT MAP
SBR X2,GETTYS&1 *POINT X2 TO GETTYSBURG ADDRESS
*
* LOOP ONCE PER PRINT MAP VALUE. FIRST CHECK IF IT'S THE
* END OF THE PRINT MAP. IF THE MAP VALUE IS NEGATIVE, THEN
* PRINT OUT THE CURRENT LINE AND START A NEW ONE.
*
LOOP MCW 0&X1,MAPVAL *MAPVAL = CURENT MAP VALUE
SBR X1,2&X1 *POINT X1 TO THE NEXT VALUE
C @99@,MAPVAL *IF MAPVAL = 99
BE DONE * THEN DONE
*
C MAPVAL,@00@ *IF 0, THEN PRINT
BU TEST *GO ON, ELSE
W *WRITE THE PRINT AREA TO THE PRINTER NO SPACE
DC @S@ *NO SPACE
W *WRITE THE PRINT AREA TO THE PRINTER NO SPACE
DC @S@ *NO SPACE
W *WRITE THE PRINT AREA TO THE PRINTER NO SPACE
DC @S@ *NO SPACE
W *WRITE THE PRINT AREA TO THE PRINTER
CS 332 *CLEAR THE PRINT AREA
CS *CLEAR PRINT AREA
SBR X3,222 *POINT X3 TO PRINT AREA
B LOOP
*
* EACH LINE ALTERNATES BETWEEN 'SKIP' AND 'TAKE'.
*
TEST BCE DOSKIP,NEXTDO,0 *IF 'SKIP' THEN DO SKIP
*
* DO 'TAKE': TAKE MAPVAL NUMBER OF LETTERS FROM THE GETTYSBURG
* ADDRESS AND APPEND THEM TO THE CURRENT PRINT LINE.
*
DOTAKE MN 0&X2,0&X3 *APPEND LETTER TO PRINT LINE
MZ 0&X2,0&X3
S @1@,MAPVAL *MAPVAL = MAPVAL - 1
SBR X3,1&X3 *POINT X3 TO NEXT PRINT POSITION
*
NEXTCH SBR X2,1&X2 *POINT X2 TO NEXT GETTYSBURG CHAR
C &00,MAPVAL *IF MAPVAL > 0
BH DOTAKE *THEN TAKE SOME MORE CHARS
MCW SKIP,NEXTDO *ELSE NEXT DO 'SKIP'
B LOOP
*
* DO 'SKIP': SKIP MAPVAL NUMBER OF BLANKS IN THE PRINT LINE.
*
DOSKIP A MAPVAL,X3 *X3 = X3 + MAPVAL
MCW TAKE,NEXTDO *NEXT DO 'TAKE'
B LOOP
*
* DONE WITH ALL PRINT MAP VALUES. PRINT THE FINAL LINE AND QUIT.
*
DONE CC 1 *EJECT THE PAGE
EXIT
END START
BOOTSTRAP FOR CLEAR ,008015,022026,030040/019,001L020100 ,047054,061068,072072)0810811022 1
CLEAR OR BOOTSTRAP ,008047/047046 /000H025B022100 4/061046,054061,068072,0010401040 2
0 PAGE 1
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
101 HEAD MACRO
*************************** START OF HEAD MACRO ************************** GEN
1 AUTOCODER PROGRAM PAGE 2
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
102 JOB AUTOCODER PROGRAM GEN
103 CTL 6611 *6=16,000C;6=16,000T;1=OBJDECK;,1=MODADD GEN
* GEN
104 .READ EQU 001 0001 GEN
105 .PUNCH EQU 101 0101 GEN
106 .PRINT EQU 201 0201 GEN
* GEN
107 ORG 85 0085
108 DCW @X1@ *IDENTIFING FILLER 2 0086 GEN 3
109 X1 DCW 000 *INDEX REGISTER 1 3 0089 GEN 3
110 DCW @X2@ *IDENTIFING FILLER 2 0091 GEN 3
111 X2 DCW 000 *INDEX REGISTER 2 3 0094 GEN 3
112 DCW @X3@ *IDENTIFING FILLER 2 0096 GEN 3
113 X3 DCW 000 *INDEX REGISTER 3 3 0099 GEN 3
* GEN
114 ORG 340 *ORG JUST AFTER PRINT BUFFER 0340
****************************** END OF HEAD MACRO ************************** GEN
115 ******************************************************************
116 * LINCOLN'S BIRTHDAY PROGRAM
117 * BY RONALD MAK
118 *
119 * ORIGINAL VERSION: FEBRUARY 1969
120 * RESURRECTED: FEBRUARY 2005
121 ******************************************************************
122 *
123 * LINCOLN'S GETTYSBURG ADDRESS
124 *
125 IDENT DCW @LINCOLN PROGREM REVISION 1.1 ASSEMBLED 03/07/2015@ 49 0388 5
126 GETTYS DCW 0 1 0389 5
127 DC @FOURSCOREANDSEVENYEARSAGOOURFATHERSBROU@ 39 0428 6
128 DC @GHTFORTHONTHISCONTINENTANEWNATIONCONCEI@ 39 0467 7
129 DC @VEDINLIBERTYANDDEDICATEDTOTHEPROPOSITIO@ 39 0506 8
130 DC @NTHATALLMENARECREATEDEQUALNOWWEAREENGAG@ 39 0545 9
131 DC @EDINAGREATCIVILWARTESTINGWHETHERTHATNAT@ 39 0584 10
132 DC @IONORANYNATIONSOCONCEIVEDANDSODEDICATED@ 39 0623 11
133 DC @CANLONGENDUREWEAREMETONAGREATBATTLEFIEL@ 39 0662 12
134 DC @DOFTHATWARWEHAVECOMETODEDICATEAPORTIONO@ 39 0701 13
135 DC @FTHATFIELDASAFINALRESTINGPLACEFORTHOSEW@ 39 0740 14
136 DC @HOHEREGAVETHEIRLIVESTHATTHATNATIONMIGHT@ 39 0779 15
137 DC @LIVEITISALTOGETHERFITTINGANDPROPERTHATW@ 39 0818 16
138 DC @ESHOULDDOTHISBUTINALARGERSENSEWECANNOTH@ 39 0857 17
139 DC @ALLOWTHISGROUNDTHEBRAVEMENLIVINGANDDEAD@ 39 0896 18
140 DC @WHOSTRUGGLEDHEREHAVECONSECRATEDITFARABO@ 39 0935 19
141 DC @VEOURPOORPOWERTOADDORDETRACTTHEWORLDWIL@ 39 0974 20
142 DC @LLITTLENOTENORLONGREMEMBERWHATWESAYHERE@ 39 1013 21
143 DC @BUTITCANNEVERFORGETWHATTHEYDIDHEREITISF@ 39 1052 22
144 DC @ORUSTHELIVINGRATHERTOBEDEDICATEDHERETOT@ 39 1091 23
145 DC @HEUNFINISHEDWORKWHICHTHEYWHOFOUGHTHEREH@ 39 1130 24
146 DC @AVETHUSFARSONOBLYADVANCEDITISRATHERFORU@ 39 1169 25
147 DC @STOBEHEREDEDICATEDTOTHEGREATTASKREMAINI@ 39 1208 26
1 AUTOCODER PROGRAM PAGE 3
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
148 DC @NGBEFOREUSTHATFROMTHESEHONOREDDEADWETAK@ 39 1247 27
149 DC @EINCREASEDDEVOTIONTOTHATCAUSEFORWHICHTH@ 39 1286 28
150 DC @EYGAVETHELASTFULLMEASUREOFDEVOTIONTHATW@ 39 1325 29
151 DC @EHEREHIGHLYRESOLVETHATTHESEDEADSHALLNOT@ 39 1364 30
152 DC @HAVEDIEDINVAINTHATTHISNATIONUNDERGODSHA@ 39 1403 31
153 DC @LLHAVEANEWBIRTHOFFREEDOMANDTHATGOVERNME@ 39 1442 32
154 DC @NTOFTHEPEOPLEBYTHEPEOPLEFORTHEPEOPLESHA@ 39 1481 33
155 DC @LNOTPERISHFROMTHISEARTH@ 23 1504 34
157 *
158 * PROGRAM START. SET INDEX REGISTER X1 TO POINT TO THE
159 * FIRST PRINT MAP VALUE, AND INDEX REGISTER X2 TO POINT
160 * TO THE FIRST CHARACTER OF THE GETTYSBURG ADDRESS.
161 * INDEX REGISTER X3 WILL LATER POINT INTO THE PRINT AREA.
162 *
163 START MCW IDENT,180 7 1505 M 388 180 34 388 180
164 SBR X1,MAP&2 *POINT X1 TO PRINT MAP 7 1512 H 089 X24 34 089 1724
165 SBR X2,GETTYS&1 *POINT X2 TO GETTYSBURG ADDRESS 7 1519 H 094 390 35 094 390
166 *
167 * LOOP ONCE PER PRINT MAP VALUE. FIRST CHECK IF IT'S THE
168 * END OF THE PRINT MAP. IF THE MAP VALUE IS NEGATIVE, THEN
169 * PRINT OUT THE CURRENT LINE AND START A NEW ONE.
170 *
171 LOOP MCW 0&X1,MAPVAL *MAPVAL = CURENT MAP VALUE 7 1526 M 0'0 X21 35 000+1 1721
172 SBR X1,2&X1 *POINT X1 TO THE NEXT VALUE 7 1533 H 089 0'2 35 089 002+1
173 C @99@,MAPVAL *IF MAPVAL = 99 7 1540 C M76 X21 35 2476 1721
174 BE DONE * THEN DONE 5 1547 B W64 S 35 1664
175 *
176 C MAPVAL,@00@ *IF 0, THEN PRINT 7 1552 C X21 M78 36 1721 2478
177 BU TEST *GO ON, ELSE 5 1559 B V80 / 36 1580
178 W * PRINT OUT CURRENT LINE 1 1564 2 36
179 CS 299 * CLEAR THE PRINT AREA 4 1565 / 299 36 299
180 SBR X3,200 * POINT X3 TO PRINT AREA 7 1569 H 099 200 36 099 200
181 B LOOP 4 1576 B V26 36 1526
182 *
183 * EACH LINE ALTERNATES BETWEEN 'SKIP' AND 'TAKE'.
184 *
185 TEST BCE DOSKIP,NEXTDO,0 IF 'SKIP' THEN DO SKIP 8 1580 B W46 X19 0 36 1646 1719
186 *
187 * DO 'TAKE': TAKE MAPVAL NUMBER OF LETTERS FROM THE GETTYSBURG
188 * ADDRESS AND APPEND THEM TO THE CURRENT PRINT LINE.
189 *
190 DOTAKE MN 0&X2,0&X3 *APPEND LETTER TO PRINT LINE 7 1588 D 0!0 0?0 37 000+2 000+3
191 MZ 0&X2,0&X3 7 1595 Y 0!0 0?0 37 000+2 000+3
192 S @1@,MAPVAL *MAPVAL = MAPVAL - 1 7 1602 S M79 X21 37 2479 1721
193 SBR X3,1&X3 *POINT X3 TO NEXT PRINT POSITION 7 1609 H 099 0?1 37 099 001+3
194 *
195 NEXTCH SBR X2,1&X2 *POINT X2 TO NEXT GETTYSBURG CHA 7 1616 H 094 0!1 37 094 001+2
196 C &00,MAPVAL *IF MAPVAL > 0 7 1623 C M81 X21 38 2481 1721
197 BH DOTAKE * THEN TAKE SOME MORE CHARS 5 1630 B V88 U 38 1588
198 MCW SKIP,NEXTDO * ELSE NEXT DO 'SKIP' 7 1635 M X17 X19 38 1717 1719
1 AUTOCODER PROGRAM PAGE 4
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
199 B LOOP 4 1642 B V26 38 1526
200 *
201 * DO 'SKIP': SKIP MAPVAL NUMBER OF BLANKS IN THE PRINT LINE.
202 *
203 DOSKIP A MAPVAL,X3 *X3 = X3 & MAPVAL 7 1646 A X21 099 38 1721 099
204 MCW TAKE,NEXTDO *NEXT DO 'TAKE' 7 1653 M X18 X19 38 1718 1719
205 B LOOP 4 1660 B V26 39 1526
206 *
207 * DONE WITH ALL PRINT MAP VALUES. *PRINT THE FINAL LINE AND QUIT.
208 *
209 DONE W 1 1664 2 39
210 CC 1 *END OF FORM 2 1665 F 1 39
211 EXIT MACRO
********************************** START OF EXIT MACRO ************* GEN
212 EXIT NOP 999,999 *LOAD THE A AND B REGISTERS 7 1667 N 999 999 GEN 39 999 999
213 H *HALT OR I WILL SHOOT 1 1674 . GEN 39
* GEN
214 B START,G *IF G IS ON, RETURN TO START 5 1675 B V05 G GEN 39 1505
215 CS 332 *CLEAR PRINT STORAGE 4 1680 / 332 GEN 39 332
216 CS *CLEAR PRINT STORAGE 1 1684 / GEN 40
217 CS *CLEAR PUNCH STORAGE 1 1685 / GEN 40
218 CS *CLEAR READ STORAGE 1 1686 / GEN 40
* GEN
219 C @SHAY@,14007 *WERE WE LOADED WITH THE LOADER? 7 1687 C M85 !0G GEN 40 2485 14007
220 BE 14000 *YES WE WERE. TURN CONTROL 5 1694 B !0? S GEN 40 14000
* OTHERWISE..... *BACK TO THE LOADER GEN
* GET READY TO BOOT FROM THE FOLLOWING DECK GEN
* GEN
221 SW 001 *SET WORDMARK IN LOCATION 1 4 1699 , 001 GEN 40 001
222 EXRED R *READ FIRST CARD OF NEXT DECK 1 1703 1 GEN 40
223 BCE 001,001,, *IS IT A COMMA? 8 1704 B 001 001 , GEN 41 001 001
* *BRANCH TO THE FIRST INSTRUCTION GEN
224 B EXRED *CHECK THE NEXT ONE 4 1712 B X03 GEN 41 1703
225 NOP 1 1716 N GEN 41
*********************** END OF EXIT MACRO************************* GEN
* GEN
226 ************************************************************
227 *
228 SKIP DCW 0 *'SKIP' CODE 1 1717 41
229 TAKE DCW 1 *'TAKE' CODE 1 1718 41
230 NEXTDO DCW 0 *WHAT TO DO NEXT IN THE LINE 1 1719 41
231 MAPVAL DCW 00 *PRINT MAP VALUE 2 1721 41
232 *
233 * THE PRINT MAP. A NEGATIVE NUMBER DENOTES THE START OF A NEW
234 * LINE, AND ITS ABSOLUTE VALUE BECOMES THE INITIAL 'SKIP' VALUE.
235 * EACH LINE'S MAP VALUES ALTERNATE BETWEEN 'SKIP' AND 'TAKE'
236 * VALUES. THE FINAL ZERO DENOTES THE END OF THE PRINT MAP.
237 * MAP VALUES MUST EACH BE TWO DIGITS IN LENGTH.
238 *
239 MAP DC 0 1 1722 41
1 AUTOCODER PROGRAM PAGE 5
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
240 DC @004317003428003133002937002839002712062@ 39 1761 42
241 DC @300261010230026081718002607211600250920@ 39 1800 43
242 DC @100106002509211001050024102603040500221@ 39 1839 44
243 DC @333040021040208080422030020030506051020@ 39 1878 45
244 DC @040017040805040506010709030400170308050@ 39 1917 46
245 DC @404140502050205001803070409020104010105@ 39 1956 47
246 DC @010504030700180307030901020501010603030@ 39 1995 48
247 DC @301090018030702110102020201080101020202@ 39 2034 49
248 DC @020700180308022601090600190307032501100@ 39 2073 50
249 DC @100190406032601090100201225011001002111@ 39 2112 51
250 DC @170306010901002210150208010901002507070@ 39 2151 52
251 DC @104020201080207010026070604050902010501@ 39 2190 53
252 DC @002608050112010601040100260805010601020@ 39 2229 54
253 DC @102020701010100270705010317020100270515@ 39 2268 55
254 DC @110401002708260200281517040028370028360@ 39 2307 56
255 DC @028360027010134002601033300250106300025@ 39 2346 57
256 DC @010827002401112104010021041416070100120@ 39 2385 58
257 DC @626071201001005490100060455010003036001@ 39 2424 59
258 DC @004001140100361004100034280036100509004@ 39 2463 60
259 DC @00114010099@ 11 2474 61
260 *
DCW @99@ 2 2476 LIT 61
DCW @00@ 2 2478 LIT 61
DCW @1@ 1 2479 LIT 61
DCW &00 2 2481 LIT 61
DCW @SHAY@ 4 2485 LIT 62
261 END START / V05 080 1505
1 PAGE 6
0SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS
.PRINT 0201: 0 .PUNCH 0101: 0 .READ 0001: 0 DONE 1664: 0 DOSKIP 1646: 0 DOTAKE 1588: 0
EXIT 1667: 0 EXRED 1703: 0 GETTYS 0389: 0 IDENT 0388: 0 LOOP 1526: 0 MAP 1722: 0
MAPVAL 1721: 0 NEXTCH 1616: 0 NEXTDO 1719: 0 SKIP 1717: 0 START 1505: 0 TAKE 1718: 0
TEST 1580: 0 X1 0089: 0 X2 0094: 0 X3 0099: 0
0UNREFERENCED SYMBOLS
.PRINT .PUNCH .READ EXIT NEXTCH
,008015,022026,030037,044,049,053053N000000N00001026 0001
L068116,105106,110117B101/I9I#071029C029056B026/B001/0991,001/001117I0?0002
,008015,022029,036040,047054,061068,072/061039 ,00100110400003
X1000X2000X3000 L015099,087090,092095,09704010400004
LINCOLN'S BIRTHDAY PROGRAM REV 2.1 06/0L039378,040040,040040,04004010400005
3/20140 L007385)379379,385040,04004010400006
FOURSCOREANDSEVENYEARSAGOOURFATHERSBROUL039424)386386,040040,04004010400007
GHTFORTHONTHISCONTINENTANEWNATIONCONCEIL039463)425425,040040,04004010400008
VEDINLIBERTYANDDEDICATEDTOTHEPROPOSITIOL039502)464464,040040,04004010400009
NTHATALLMENARECREATEDEQUALNOWWEAREENGAGL039541)503503,040040,04004010400010
EDINAGREATCIVILWARTESTINGWHETHERTHATNATL039580)542542,040040,04004010400011
IONORANYNATIONSOCONCEIVEDANDSODEDICATEDL039619)581581,040040,04004010400012
CANLONGENDUREWEAREMETONAGREATBATTLEFIELL039658)620620,040040,04004010400013
DOFTHATWARWEHAVECOMETODEDICATEAPORTIONOL039697)659659,040040,04004010400014
FTHATFIELDASAFINALRESTINGPLACEFORTHOSEWL039736)698698,040040,04004010400015
HOHEREGAVETHEIRLIVESTHATTHATNATIONMIGHTL039775)737737,040040,04004010400016
LIVEITISALTOGETHERFITTINGANDPROPERTHATWL039814)776776,040040,04004010400017
ESHOULDDOTHISBUTINALARGERSENSEWECANNOTHL039853)815815,040040,04004010400018
ALLOWTHISGROUNDTHEBRAVEMENLIVINGANDDEADL039892)854854,040040,04004010400019
WHOSTRUGGLEDHEREHAVECONSECRATEDITFARABOL039931)893893,040040,04004010400020
VEOURPOORPOWERTOADDORDETRACTTHEWORLDWILL039970)932932,040040,04004010400021
LLITTLENOTENORLONGREMEMBERWHATWESAYHEREL039'09)971971,040040,04004010400022
BUTITCANNEVERFORGETWHATTHEYDIDHEREITISFL039'48)'10'10,040040,04004010400023
ORUSTHELIVINGRATHERTOBEDEDICATEDHERETOTL039'87)'49'49,040040,04004010400024
HEUNFINISHEDWORKWHICHTHEYWHOFOUGHTHEREHL039/26)'88'88,040040,04004010400025
AVETHUSFARSONOBLYADVANCEDITISRATHERFORUL039/65)/27/27,040040,04004010400026
STOBEHEREDEDICATEDTOTHEGREATTASKREMAINIL039S04)/66/66,040040,04004010400027
NGBEFOREUSTHATFROMTHESEHONOREDDEADWETAKL039S43)S05S05,040040,04004010400028
EINCREASEDDEVOTIONTOTHATCAUSEFORWHICHTHL039S82)S44S44,040040,04004010400029
EYGAVETHELASTFULLMEASUREOFDEVOTIONTHATWL039T21)S83S83,040040,04004010400030
EHEREHIGHLYRESOLVETHATTHESEDEADSHALLNOTL039T60)T22T22,040040,04004010400031
HAVEDIEDINVAINTHATTHISNATIONUNDERGODSHAL039T99)T61T61,040040,04004010400032
LLHAVEANEWBIRTHOFFREEDOMANDTHATGOVERNMEL039U38)U00U00,040040,04004010400033
NTOFTHEPEOPLEBYTHEPEOPLEFORTHEPEOPLESHAL039U77)U39U39,040040,04004010400034
LNOTPERISHFROMTHISEARTH0 L024V01)U78U78,040040,04004010400035
004317003428003133002937002839002712062L039V40)V02V02,040040,04004010400036
300261010230026081718002607211600250920L039V79)V41V41,040040,04004010400037
100106002509211001050024102603040500221L039W18)V80V80,040040,04004010400038
333040021040208080422030020030506051020L039W57)W19W19,040040,04004010400039
040017040805040506010709030400170308050L039W96)W58W58,040040,04004010400040
404140502050205001803070409020104010105L039X35)W97W97,040040,04004010400041
010504030700180307030901020501010603030L039X74)X36X36,040040,04004010400042
301090018030702110102020201080101020202L039Y13)X75X75,040040,04004010400043
020700180308022601090600190307032501100L039Y52)Y14Y14,040040,04004010400044
100190406032601090100201225011001002111L039Y91)Y53Y53,040040,04004010400045
170306010901002210150208010901002507070L039Z30)Y92Y92,040040,04004010400046
104020201080207010026070604050902010501L039Z69)Z31Z31,040040,04004010400047
002608050112010601040100260805010601020L039!08)Z70Z70,040040,04004010400048
102020701010100270705010317020100270515L039!47)!09!09,040040,04004010400049
110401002708260200281517040028370028360L039!86)!48!48,040040,04004010400050
028360027010134002601033300250106300025L039J25)!87!87,040040,04004010400051
010827002401112104010021041416070100120L039J64)J26J26,040040,04004010400052
626071201001005490100060455010003036001L039K03)J65J65,040040,04004010400053
004001140100361004100034280036100509004L039K42)K04K04,040040,04004010400054
0011401009901000 L016K58)K43K43,K54K55,K56K5710400055
M384160H089V03H094386M0'0K58H0890'2 L035K93,K66K73,K80K87,04004010400056
CM78K58BM25SCK58M80BL41/2S2S2S L030L23,L01L06,L13L18,L20L2210400057
2/332/H099222BK80BM07K560D0!00?0 L032L55,L25L29,L30L37,L41L4910400058
Y0!00?0SM81K58H0990?1H0940!1CM83K58 L035L90,L63L70,L77L84,04004010400059
BL49UMK54K56BK80AK58099MK55K56BK80F1 L036M26,L96M03,M07M14,M21M2510400060
N999999.BK59G/332/// L020M46,M34M35,M40M44,M45M4610400061
CM87!0GB!0?S,0011B001001,BM63N L030M76,M54M59,M63M64,M72M7610400062
990010?SHAY L011M87,M79M81,M82M84,04004010400063
/K59080 0064
README file for Lincoln
Friday, March 06, 2015
******************************************************************
* LINCOLN'S BIRTHDAY PROGRAM
* BY RONALD MAK
*
* ORIGINAL VERSION: FEBRUARY 1969
* RESURRECTED: FEBRUARY 2005
* CONDENSED: NOVEMBER 2010
******************************************************************
This program was written by a very young Ronald Mak.
It prints out the head of lincoln using the words from the Gettysberg address.
The program will terminate with a halt.
If you want to run it again with a new set of cards, set sense switch G on, clear the card reader,
place the second date, name and EOF cards in the reader and press start.
If you don’t want to run it again, leave sense switch G off and when you press start,
it will look for and read in the next program.
--------------------------------------------------------------------
HEAD
IDENT DCW @MANDELBROT REVISION 2.1 3/4/2015@
*
*VALUES ARE FIXED POINT,I.E. SCALED BY 10000
*Y RANGE (-1,1). 60 LINES YIELDS INC OF 2/60*10000
*
YINC DCW 333
XINC DCW 220 *STEP X BY .0220
*
*Y START IS -1,MOVED TO -333*30 FOR SYMMETRY
*
Y0 DCW -09990 *PIXEL Y COORDINATE
*
*X START IS -2.5
*
X0INIT DCW -22000 *LEFT HAND X COORDINATE
X0 DCW 00000 *PIXEL X COORDINATE
ONE DCW 001
ZR DCW 00000 *REAL PART OF Z
ZI DCW 00000 *IMAGINARY PART OF Z
ZR2 DCW 00000000000 *ZR^2
ZI2 DCW 00000000000 *ZI^2
ZRZI DCW 00000000000 *2 *ZR *ZI
ZMAG DCW 00000000000 *MAGNITUDE OF Z: ZR^2 + ZI^2
TOOBIG DCW 00400000000 *4 (SCALED BY 10000 TWICE)
I DCW 00 *ITERATION LOOP COUNTER
ROW DCW 01
ROWS DCW 60
COLS DCW 132
MAX DCW 24 *MAXIMUM NUMBER OF ITERATIONS
*
*ROW LOOP
*X1 = 1 (COLUMN INDEX)
*X0 = -2.2 (X COORDINATE)
*
START MCW IDENT,180 *ADD IDENTIFICATION
LCA ONE,X1 *ROW LOOP: INIT COL COUNT
LCA X0INIT,X0 *X0 = X0INIT
CS 332 *CLEAR PRINT LINE
CS *CHAIN INSTRUCTION
*
*COLUMN LOOP
*
COLLP LCA @00@,I *I = 0
MCW X0,ZR *ZR = X0
MCW Y0,ZI *ZI = Y0
*
*INNER LOOP:
*ZR2 = ZR^2
*ZI2 = ZI^2
*IF ZR2+ZI2 > 4: BREAK
*ZI = 2*ZR*ZI + Y0
*ZR = ZR2 - ZI2 + X0
*
INLP MCW ZR,ZR2-6 *ZR2 = ZR
M ZR,ZR2 *ZR2 *= ZR
MCW ZI,ZI2-6 *ZI2 = ZI
M ZI,ZI2 *ZI2 *= ZI
MCW ZR2,ZMAG *ZMAG = ZR^2
A ZI2,ZMAG *ZMAG += ZI^2
C TOOBIG,ZMAG *IF ZMAZ > 4: BREAK
BH BREAK
MCW ZI,ZRZI-6 *ZRZI = ZI
M ZR,ZRZI *ZRZI = ZI*ZR
A ZRZI,ZRZI *ZRZI = 2*ZI*ZR
MCW ZRZI-4,ZI *ZI = ZRZI (/10000)
MZ ZRZI,ZI *TRANSFER SIGN
A Y0,ZI *ZI += Y0
S ZI2,ZR2 *ZR2 -= ZI2
MCW ZR2-4,ZR *ZR = ZR2 (/10000)
MZ ZR2,ZR *TRANSFER SIGN
A X0,ZR *ZR += X0
*
*IF I++ != MAX: GOTO INLP
*
A ONE,I *I++
C MAX,I *IF I != MAX THEN LOOP
BU INLP
MCW @X@,200&X1 *STORE AN X INTO THE PRINT LINE
BREAK C X1,COLS *COL LOOP CONDITION
A ONE,X1
A XINC,X0 *X0 += 0.0227
BU COLLP
W *WRITE LINE
*
*Y0 += YINC
*IF ROW++ != ROWS: GOTO ROWLP
*
C ROW,ROWS *ROW LOOP CONDITION
A ONE,ROW
A YINC,Y0 *Y0 += 0.0333
BU START
FINIS CC 1 *TOP OF FORM
EXIT
END START
,008015,022026,030040/019,001L020100 ,047054,061068,072072)08108110220001
,008047/047046 /000H025B022100 4/061046,054061,068072,00104010400002
X1000X2000X3000 L015099,087090,092095,09704010400003
MANDELBROT REVISION 2.1 3/4/2015333220 L038377,372375,040040,04004010400004
0999!2200!00000001000000000000000000000L039416,383388,393396,40140610400005
000000000000000000000000000000000 L033449,428439,040040,04004010400006
0040000000000016013224M371180 L029478,461463,465467,47047210400007
L395089L387392/332/L775462M392400 L033511,486493,497498,50504010400008
M382405M400410@400416M405421@405427 L035546,519526,533540,04004010400009
M416449A427449C460449B669UM405432 L033579,554561,568573,04004010400010
@400438A438438M434405Y438405A382405 L035614,587594,601608,04004010400011
S427416M412400Y416400A392400A395462 L035649,622629,636643,04004010400012
C471462B519/M7762'0C089469A395089 L033682,657662,669676,04004010400013
A377392B498/2C464466A395464A374382B472/L039721,690695,696703,71071710400014
F1N999999.B472G/332// L021742,724731,732737,74174210400015
/C780!0GB!0?S,0011B001001,B760 L030772,744751,756760,76176910400016
N00XSHAY L008780,774776,777040,04004010400017
/472080 0018
BOOTSTRAP FOR CLEAR ,008015,022026,030040/019,001L020100 ,047054,061068,072072)0810811022 1
CLEAR OR BOOTSTRAP ,008047/047046 /000H025B022100 4/061046,054061,068072,0010401040 2
0 PAGE 1
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
101 *
102 HEAD MACRO
*************************** START OF HEAD MACRO ************************** GEN
1 AUTOCODER PROGRAM PAGE 2
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
103 JOB AUTOCODER PROGRAM GEN
104 CTL 6611 *6=16,000C;6=16,000T;1=OBJDECK;,1=MODADD GEN
* GEN
105 .READ EQU 001 0001 GEN
106 .PUNCH EQU 101 0101 GEN
107 .PRINT EQU 201 0201 GEN
* GEN
108 ORG 85 0085
109 DCW @X1@ *IDENTIFING FILLER 2 0086 GEN 3
110 X1 DCW 000 *INDEX REGISTER 1 3 0089 GEN 3
111 DCW @X2@ *IDENTIFING FILLER 2 0091 GEN 3
112 X2 DCW 000 *INDEX REGISTER 2 3 0094 GEN 3
113 DCW @X3@ *IDENTIFING FILLER 2 0096 GEN 3
114 X3 DCW 000 *INDEX REGISTER 3 3 0099 GEN 3
* GEN
115 ORG 340 *ORG JUST AFTER PRINT BUFFER 0340
****************************** END OF HEAD MACRO ************************** GEN
116 IDENT DCW @MANDELBROT REVISION 2.1 3/4/2015@ 32 0371 4
117 *
118 *VALUES ARE FIXED POINT,I.E. SCALED BY 10000
119 *Y RANGE (-1,1). 60 LINES YIELDS INC OF 2/60*10000
120 *
121 YINC DCW 333 3 0374 4
122 XINC DCW 220 *STEP X BY .0220 3 0377 4
123 *
124 *Y START IS -1,MOVED TO -333*30 FOR SYMMETRY
125 *
126 Y0 DCW -09990 *PIXEL Y COORDINATE 5 0382 5
127 *
128 *X START IS -2.5
129 *
130 X0INIT DCW -22000 *LEFT HAND X COORDINATE 5 0387 5
131 X0 DCW 00000 *PIXEL X COORDINATE 5 0392 5
132 ONE DCW 001 3 0395 5
133 ZR DCW 00000 *REAL PART OF Z 5 0400 5
134 ZI DCW 00000 *IMAGINARY PART OF Z 5 0405 5
135 ZR2 DCW 00000000000 *ZR^2 11 0416 5
136 ZI2 DCW 00000000000 *ZI^2 11 0427 6
137 ZRZI DCW 00000000000 *2 *ZR *ZI 11 0438 6
138 ZMAG DCW 00000000000 *MAGNITUDE OF Z: ZR^2 & ZI^2 11 0449 6
139 TOOBIG DCW 00400000000 *4 (SCALED BY 10000 TWICE) 11 0460 7
140 I DCW 00 *ITERATION LOOP COUNTER 2 0462 7
141 ROW DCW 01 2 0464 7
142 ROWS DCW 60 2 0466 7
143 COLS DCW 132 3 0469 7
144 MAX DCW 24 *MAXIMUM NUMBER OF ITERATIONS 2 0471 7
145 *
146 *ROW LOOP
147 *X1 = 1 (COLUMN INDEX)
148 *X0 = -2.2 (X COORDINATE)
1 AUTOCODER PROGRAM PAGE 3
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
149 *
150 START MCW IDENT,180 *ADD IDENTIFICATION 7 0472 M 371 180 7 371 180
151 LCA ONE,X1 *ROW LOOP: INIT COL COUNT 7 0479 L 395 089 8 395 089
152 LCA X0INIT,X0 *X0 = X0INIT 7 0486 L 387 392 8 387 392
153 CS 332 *CLEAR PRINT LINE 4 0493 / 332 8 332
154 CS *CHAIN INSTRUCTION 1 0497 / 8
155 *
156 *COLUMN LOOP
157 *
158 COLLP LCA @00@,I *I = 0 7 0498 L 775 462 8 775 462
159 MCW X0,ZR *ZR = X0 7 0505 M 392 400 8 392 400
160 MCW Y0,ZI *ZI = Y0 7 0512 M 382 405 9 382 405
161 *
162 *INNER LOOP:
163 *ZR2 = ZR^2
164 *ZI2 = ZI^2
165 *IF ZR2+ZI2 > 4: BREAK
166 *ZI = 2*ZR*ZI + Y0
167 *ZR = ZR2 - ZI2 + X0
168 *
169 INLP MCW ZR,ZR2-6 *ZR2 = ZR 7 0519 M 400 410 9 400 410
170 M ZR,ZR2 *ZR2 *= ZR 7 0526 @ 400 416 9 400 416
171 MCW ZI,ZI2-6 *ZI2 = ZI 7 0533 M 405 421 9 405 421
172 M ZI,ZI2 *ZI2 *= ZI 7 0540 @ 405 427 9 405 427
173 MCW ZR2,ZMAG *ZMAG = ZR^2 7 0547 M 416 449 10 416 449
174 A ZI2,ZMAG *ZMAG &= ZI^2 7 0554 A 427 449 10 427 449
175 C TOOBIG,ZMAG *IF ZMAZ > 4: BREAK 7 0561 C 460 449 10 460 449
176 BH BREAK 5 0568 B 669 U 10 669
177 MCW ZI,ZRZI-6 *ZRZI = ZI 7 0573 M 405 432 10 405 432
178 M ZR,ZRZI *ZRZI = ZI*ZR 7 0580 @ 400 438 11 400 438
179 A ZRZI,ZRZI *ZRZI = 2*ZI*ZR 7 0587 A 438 438 11 438 438
180 MCW ZRZI-4,ZI *ZI = ZRZI (/10000) 7 0594 M 434 405 11 434 405
181 MZ ZRZI,ZI *TRANSFER SIGN 7 0601 Y 438 405 11 438 405
182 A Y0,ZI *ZI &= Y0 7 0608 A 382 405 11 382 405
183 S ZI2,ZR2 *ZR2 -= ZI2 7 0615 S 427 416 12 427 416
184 MCW ZR2-4,ZR *ZR = ZR2 (/10000) 7 0622 M 412 400 12 412 400
185 MZ ZR2,ZR *TRANSFER SIGN 7 0629 Y 416 400 12 416 400
186 A X0,ZR *ZR &= X0 7 0636 A 392 400 12 392 400
187 *
188 *IF I++ != MAX: GOTO INLP
189 *
190 A ONE,I *I&& 7 0643 A 395 462 12 395 462
191 C MAX,I *IF I != MAX THEN LOOP 7 0650 C 471 462 13 471 462
192 BU INLP 5 0657 B 519 / 13 519
193 MCW @X@,200&X1 *STORE AN X INTO THE PRINT LINE 7 0662 M 776 2'0 13 776 200+1
194 BREAK C X1,COLS *COL LOOP CONDITION 7 0669 C 089 469 13 089 469
195 A ONE,X1 7 0676 A 395 089 13 395 089
196 A XINC,X0 *X0 &= 0.0227 7 0683 A 377 392 14 377 392
197 BU COLLP 5 0690 B 498 / 14 498
198 W *WRITE LINE 1 0695 2 14
1 AUTOCODER PROGRAM PAGE 4
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
199 *
200 *Y0 += YINC
201 *IF ROW++ != ROWS: GOTO ROWLP
202 *
203 C ROW,ROWS *ROW LOOP CONDITION 7 0696 C 464 466 14 464 466
204 A ONE,ROW 7 0703 A 395 464 14 395 464
205 A YINC,Y0 *Y0 &= 0.0333 7 0710 A 374 382 14 374 382
206 BU START 5 0717 B 472 / 14 472
207 FINIS CC 1 *TOP OF FORM 2 0722 F 1 15
208 EXIT MACRO
********************************** START OF EXIT MACRO ************* GEN
209 EXIT NOP 999,999 *LOAD THE A AND B REGISTERS 7 0724 N 999 999 GEN 15 999 999
210 H *HALT OR I WILL SHOOT 1 0731 . GEN 15
* GEN
211 B START,G *IF G IS ON, RETURN TO START 5 0732 B 472 G GEN 15 472
212 CS 332 *CLEAR PRINT STORAGE 4 0737 / 332 GEN 15 332
213 CS *CLEAR PRINT STORAGE 1 0741 / GEN 15
214 CS *CLEAR PUNCH STORAGE 1 0742 / GEN 15
215 CS *CLEAR READ STORAGE 1 0743 / GEN 16
* GEN
216 C @SHAY@,14007 *WERE WE LOADED WITH THE LOADER? 7 0744 C 780 !0G GEN 16 780 14007
217 BE 14000 *YES WE WERE. TURN CONTROL 5 0751 B !0? S GEN 16 14000
* OTHERWISE..... *BACK TO THE LOADER GEN
* GET READY TO BOOT FROM THE FOLLOWING DECK GEN
* GEN
218 SW 001 *SET WORDMARK IN LOCATION 1 4 0756 , 001 GEN 16 001
219 EXRED R *READ FIRST CARD OF NEXT DECK 1 0760 1 GEN 16
220 BCE 001,001,, *IS IT A COMMA? 8 0761 B 001 001 , GEN 16 001 001
* *BRANCH TO THE FIRST INSTRUCTION GEN
221 B EXRED *CHECK THE NEXT ONE 4 0769 B 760 GEN 16 760
222 NOP 1 0773 N GEN 17
*********************** END OF EXIT MACRO************************* GEN
* GEN
DCW @00@ 2 0775 LIT 17
DCW @X@ 1 0776 LIT 17
DCW @SHAY@ 4 0780 LIT 17
223 END START / 472 080 472
1 PAGE 5
0SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS
.PRINT 0201: 0 .PUNCH 0101: 0 .READ 0001: 0 BREAK 0669: 0 COLLP 0498: 0 COLS 0469: 0
EXIT 0724: 0 EXRED 0760: 0 FINIS 0722: 0 I 0462: 0 IDENT 0371: 0 INLP 0519: 0
MAX 0471: 0 ONE 0395: 0 ROW 0464: 0 ROWS 0466: 0 START 0472: 0 TOOBIG 0460: 0
X0 0392: 0 X0INIT 0387: 0 X1 0089: 0 X2 0094: 0 X3 0099: 0 XINC 0377: 0
Y0 0382: 0 YINC 0374: 0 ZI 0405: 0 ZI2 0427: 0 ZMAG 0449: 0 ZR 0400: 0
ZR2 0416: 0 ZRZI 0438: 0
0UNREFERENCED SYMBOLS
.PRINT .PUNCH .READ EXIT FINIS X2 X3
X
X
XXXX
X XXXXXX X
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXX
X XX X XXXXXX
XX X XX XXXXXXXXXXXXXXXXXX XX
XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXX X XX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X
XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X
XXX X XX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X
X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX
XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
XX X XX XXXXXXXXXXXXXXXXXX XX
X XX X XXXXXX
XXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
X XXXXXX X
XXXX
X
X
--------------------------------------------------------------------
HEAD
*
P132 EQU 332 *DEFINE THE LAST CHARAACTER OF THE PRINT BUFFER
IDENT DCW @POWERS OF 2 VERSION 4.3 PROGRAM 03/01/2015@
*ID THE PROGRAM DECK
HOLD DCW 0
PAT1 DCW @, , , , , , , , , , , @
PAT2 DC @, , , , , , , , , , , @
PAT3 DC @, , , , , , , , , , , @
*
AREG DS 99 *A PLACE TO ADD STUFF
CRDCNT DCW 00 *CARD COUNTER
** 1234567890123456789012345678901234567890
DCW @THIS PRINTOUT WAS GENERATED ON AN IBM 1401 @
DC @COMPUTER AT THE COMPUTER HISTORY MUSEUM, @
CREDIT DC @ MOUNTAIN VIEW, CALIFORNIA@
FLADD EQU FSTLIN
FSTLIN DCW @FIVE HUNDRED FORTY SIX UNTRIGINTILLION @
DCW @EIGHT HUNDRED TWELVE TRIGINTILLION @
DCW @SIX HUNDRED EIGHTY ONE NOVEMVIGINTILLION @
DCW @ONE HUNDRED NINETY FIVE OCTOVIGINTILLION @
DCW @SEVEN HUNDRED FIFTY TWO SEPTEMVIGINTILLION @
DCW @NINE HUNDRED EIGHTY ONE SESVIGINTILLION @
DCW @NINETY THREE QUINQUAVIGINTILLION @
DCW @ONE HUNDRED TWENTY FIVE QUATTUORVIGINTILLION @
DCW @FIVE HUNDRED FIFTY SIX TRESVIGINTILLION @
DCW @SEVEN HUNDRED SEVENTY NINE DUOVIGINTILLION @
DCW @FOUR HUNDRED FIVE UNVIGINTILLION @
DCW @THREE HUNDRED FORTY ONE VIGINTILLION @
DCW @THREE HUNDRED THIRTY EIGHT NOVENDECILLION @
DCW @TWO HUNDRED NINETY TWO OCTODECILLION @
DCW @THREE HUNDRED FIFTY SEVEN SEPTENDECILLION @
DCW @SEVEN HUNDRED TWENTY THREE SEDECILLION @
DCW @THREE HUNDRED THREE QUINQUADECILLION @
DCW @ONE HUNDRED NINE QUATTUORDECILLION @
DCW @ONE HUNDRED SIX TREDECILLION @
DCW @FOUR HUNDRED FORTY TWO DUODECILLION @
DCW @SIX HUNDRED FIFTY ONE UNDECILLION @
DCW @SIX HUNDRED TWO DECILLION @
DCW @FOUR HUNDRED EIGHTY EIGHT NONILLION @
DCW @TWO HUNDRED FORTY NINE OCTILLION @
DCW @SEVEN HUNDRED NINETY NINE SEPTILLION @
DCW @EIGHT HUNDRED FORTY THREE SEXTILLION @
DCW @NINE HUNDRED EIGHTY QUINTILLION @
DCW @EIGHT HUNDRED FIVE QUADRILLION @
DCW @EIGHT HUNDRED SEVENTY EIGHT TRILLION @
DCW @TWO HUNDRED NINETY FOUR BILLION @
DCW @TWO HUNDRED FIFTY FIVE MILLION @
DCW @SEVEN HUNDRED SIXTY THREE THOUSAND @
DCW @FOUR HUNDRED FIFTY SIX @
*
*
START CS 332 *CLEAR 332 TO 300
CS *CLEAR 299 TO 200
SW 201 *SET A WORD MARK AT THE BEGINNING
SW AREG-98
MCW IDENT,.PUNCH+50 * IDENTIFY THE PROGRAM AND REVISION
MCW IDENT, 250 * IDENTIFY THE PROGRAM AND REVISION
W * PRINT IT
CS 299 * CLEAR STORAGE
MCW @000@,X1 * CLEAR X1
MCW @000@,X2 * CLEAR X2
MCW @000@,X3 * CLEAR X3
SW 201 * SET IT AGAIN
ZA @002@,AREG * SET THE STARTING NUMBER
MCW @00@,CRDCNT *RESET CHARD COUNT
L1 MLCWAPAT3,332
MCE AREG,332
L2 MCW @000@,X1 * SETUP X1 TO ZERO
L23 BCE L27,.PRINT&X1, * IS IT A SPACE?
BCE L25,.PRINT&X1,0 * IS IT A ZERO?
BCE L25,.PRINT&X1,, * IS IT A COMMA?
B L29 * FIRST NON SPACE OR COMMA
*
L25 MCW @ @,.PRINT&X1 * CLEAR THE COMMA OR ZERO
L27 MA @001@,X1 * INCREMENT X1
B L23 * CHECK THE NEXT POSITION
L29 MCW 202,HOLD * SAFE KEEPING
W * PRINT IT
MCW HOLD,202 * PUT IT BACK
L35 A AREG,AREG * DOUBLE IT
BAV L4 * BRANCH ON OVERFLOW
B L1 * TRY AGAIN
L4 CS 332
CS
W
MCW @THE NUMBER ABOVE IS 2 RAISED TO THE 328 POWER@,250
W
CS 299 *CLEAR STORAGE
W *WRITE A SPACE LINE
MCW @IT IS 99 DIGITS LONG@,236
W *WRITE A SPACE LINE
CS 299
W *WRITE A BLANK LINE
MCW @IN SCIENTIFIC NOTATION, THIS IS@,236
MCW @ 5.4681268119575298109312555677941E&98@,274
W
CS 332 *CLEAR 332 TO 300
CS *CLEAR 299 TO 200
W *WRITE A BLANK LINE
SW 001 *FIELD DEFINER
MCW @IN TEXT FORMAT@,219 *PUT IN HEADER
W *PRINT THE LINE
CS 332 *B REG AT 333
CS *CONTINUE
SW 201
MCW @049@,X1 *FIRST PRINT POSITION
MCW @000@,X2 *FIRST PRINT MESSAGE
READ MCW FSTLIN&X2,201&X1 *MOVE IN THE DATA
W *WRITE DATA
CS 332 *B REG AT 333
CS *CONTINUE
SW 201
MA @001@,X1 *ADD 1 TO X1
MA @045@,X2 *ADD 45 TO X2
A @1@,CRDCNT *ADD ONE TO CARD COUNT
MZ CRDCNT-1,CRDCNT *STRIP ZONE
C @33@,CRDCNT *IS THIS THE 33RD CARD?
BU READ *LETS GO GET MORE
CS 332 *CLEAR 332 TO 300
CS *CLEAR 299 TO 200
W
MCW CREDIT,310 *PRINT CREDIT
W
CC 1 *TOP OF FORM
*******************************************************************
*
EXIT
******************************************************************
END START
,008015,022026,030040/019,001L020100 ,047054,061068,072072)08108110220001
,008047/047046 /000H025B022100 4/061046,054061,068072,00104010400002
X1000X2000X3000 L015099,087090,092095,09704010400003
POWERS OF 2 VERSION 4.3 PROGRAM 03/01/2L039378,040040,040040,04004010400004
0150 L004382)379379,382040,04004010400005
, , , , , , , , , , L039421,040040,040040,04004010400006
, L005426)422422,040040,04004010400007
, , , , , , , , , , L039465)427427,040040,04004010400008
, L005470)466466,040040,04004010400009
, , , , , , , , , , L039509)471471,040040,04004010400010
, L005514)510510,040040,04004010400011
00 L002615,040040,040040,04004010400012
THIS PRINTOUT WAS GENERATED ON AN IBM 1L039654,040040,040040,04004010400013
401 L004658)655655,040040,04004010400014
COMPUTER AT THE COMPUTER HISTORY MUSEUML039697)659659,040040,04004010400015
, MOUNTAIN VIEW, CALIFORNIA L028725)698698,040040,04004010400016
FIVE HUNDRED FORTY SIX UNTRIGINTILLION L039764,040040,040040,04004010400017
L006770)765765,040040,04004010400018
EIGHT HUNDRED TWELVE TRIGINTILLION L039809,040040,040040,04004010400019
L006815)810810,040040,04004010400020
SIX HUNDRED EIGHTY ONE NOVEMVIGINTILLIOL039854,040040,040040,04004010400021
N L006860)855855,040040,04004010400022
ONE HUNDRED NINETY FIVE OCTOVIGINTILLIOL039899,040040,040040,04004010400023
N L006905)900900,040040,04004010400024
SEVEN HUNDRED FIFTY TWO SEPTEMVIGINTILLL039944,040040,040040,04004010400025
ION L006950)945945,040040,04004010400026
NINE HUNDRED EIGHTY ONE SESVIGINTILLIONL039989,040040,040040,04004010400027
L006995)990990,040040,04004010400028
NINETY THREE QUINQUAVIGINTILLION L039'34,040040,040040,04004010400029
L006'40)'35'35,040040,04004010400030
ONE HUNDRED TWENTY FIVE QUATTUORVIGINTIL039'79,040040,040040,04004010400031
LLION L006'85)'80'80,040040,04004010400032
FIVE HUNDRED FIFTY SIX TRESVIGINTILLIONL039/24,040040,040040,04004010400033
L006/30)/25/25,040040,04004010400034
SEVEN HUNDRED SEVENTY NINE DUOVIGINTILLL039/69,040040,040040,04004010400035
ION L006/75)/70/70,040040,04004010400036
FOUR HUNDRED FIVE UNVIGINTILLION L039S14,040040,040040,04004010400037
L006S20)S15S15,040040,04004010400038
THREE HUNDRED FORTY ONE VIGINTILLION L039S59,040040,040040,04004010400039
L006S65)S60S60,040040,04004010400040
THREE HUNDRED THIRTY EIGHT NOVENDECILLIL039T04,040040,040040,04004010400041
ON L006T10)T05T05,040040,04004010400042
TWO HUNDRED NINETY TWO OCTODECILLION L039T49,040040,040040,04004010400043
L006T55)T50T50,040040,04004010400044
THREE HUNDRED FIFTY SEVEN SEPTENDECILLIL039T94,040040,040040,04004010400045
ON L006U00)T95T95,040040,04004010400046
SEVEN HUNDRED TWENTY THREE SEDECILLION L039U39,040040,040040,04004010400047
L006U45)U40U40,040040,04004010400048
THREE HUNDRED THREE QUINQUADECILLION L039U84,040040,040040,04004010400049
L006U90)U85U85,040040,04004010400050
ONE HUNDRED NINE QUATTUORDECILLION L039V29,040040,040040,04004010400051
L006V35)V30V30,040040,04004010400052
ONE HUNDRED SIX TREDECILLION L039V74,040040,040040,04004010400053
L006V80)V75V75,040040,04004010400054
FOUR HUNDRED FORTY TWO DUODECILLION L039W19,040040,040040,04004010400055
L006W25)W20W20,040040,04004010400056
SIX HUNDRED FIFTY ONE UNDECILLION L039W64,040040,040040,04004010400057
L006W70)W65W65,040040,04004010400058
SIX HUNDRED TWO DECILLION L039X09,040040,040040,04004010400059
L006X15)X10X10,040040,04004010400060
FOUR HUNDRED EIGHTY EIGHT NONILLION L039X54,040040,040040,04004010400061
L006X60)X55X55,040040,04004010400062
TWO HUNDRED FORTY NINE OCTILLION L039X99,040040,040040,04004010400063
L006Y05)Y00Y00,040040,04004010400064
SEVEN HUNDRED NINETY NINE SEPTILLION L039Y44,040040,040040,04004010400065
L006Y50)Y45Y45,040040,04004010400066
EIGHT HUNDRED FORTY THREE SEXTILLION L039Y89,040040,040040,04004010400067
L006Y95)Y90Y90,040040,04004010400068
NINE HUNDRED EIGHTY QUINTILLION L039Z34,040040,040040,04004010400069
L006Z40)Z35Z35,040040,04004010400070
EIGHT HUNDRED FIVE QUADRILLION L039Z79,040040,040040,04004010400071
L006Z85)Z80Z80,040040,04004010400072
EIGHT HUNDRED SEVENTY EIGHT TRILLION L039!24,040040,040040,04004010400073
L006!30)!25!25,040040,04004010400074
TWO HUNDRED NINETY FOUR BILLION L039!69,040040,040040,04004010400075
L006!75)!70!70,040040,04004010400076
TWO HUNDRED FIFTY FIVE MILLION L039J14,040040,040040,04004010400077
L006J20)J15J15,040040,04004010400078
SEVEN HUNDRED SIXTY THREE THOUSAND L039J59,040040,040040,04004010400079
L006J65)J60J60,040040,04004010400080
FOUR HUNDRED FIFTY SIX L039K04,040040,040040,04004010400081
/332/,201,515 L019K23)K05K05,K11K15,K16K2010400082
M381151M3812502/299MN93089MN93094 L033K56,K31K38,K39K43,K5004010400083
MN93099,201?N96613MN98615L514332E613332L039K95,K64K68,K75K82,K8904010400084
MN93089BL382'1 BL312'10BL312'1,BL49 L035L30,L03L11,L19L27,04004010400085
MN992'1#O02089BL03M2023822M382202 L033L63,L38L45,L49L56,L5704010400086
A613613BL80ZBK82/332/2MO47250 L029L92,L71L76,L80L84,L85L8610400087
2/2992MO672362/2992 L019M11,L94L98,L99M06,M07M1110400088
MO98236MP362742/332/2,001 L025M36,M19M26,M27M31,M32M3310400089
MP502192/332/,201MP53089MN93094 L031M67,M44M45,M49M50,M54M6110400090
M7P02'12/332/,201#O02089#P56094 L031M98,M75M76,M80M81,M85M9210400091
AP57615Y614615CP59615BM68//332/2 L032N30,N06N13,N20N25,N29N3010400092
M7253102F1N999999.BK11G/332 L027N57,N38N39,N41N48,N49N5410400093
///CP63!0GB!0?S,0011 L020N77,N59N60,N61N68,N73N7710400094
B001001,BN77N00000200 L022N99,N86N90,N91N94,N97N9910400095
001 L003O02,040040,040040,04004010400096
THE NUMBER ABOVE IS 2 RAISED TO THE 328L039O41,040040,040040,04004010400097
POWERIT IS 99 DIGITS LONG L026O67)O42O42,O48040,04004010400098
IN SCIENTIFIC NOTATION, THIS IS L031O98,040040,040040,04004010400099
5.4681268119575298109312555677941E&98 L038P36,040040,040040,04004010400100
IN TEXT FORMAT049045133SHAY L027P63,P51P54,P57P58,P6004010400101
/K11080 0102
BOOTSTRAP FOR CLEAR ,008015,022026,030040/019,001L020100 ,047054,061068,072072)0810811022 1
CLEAR OR BOOTSTRAP ,008047/047046 /000H025B022100 4/061046,054061,068072,0010401040 2
0 PAGE 1
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
101 HEAD MACRO
*************************** START OF HEAD MACRO ************************** GEN
1 AUTOCODER PROGRAM PAGE 2
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
102 JOB AUTOCODER PROGRAM GEN
103 CTL 6611 *6=16,000C;6=16,000T;1=OBJDECK;,1=MODADD GEN
* GEN
104 .READ EQU 001 0001 GEN
105 .PUNCH EQU 101 0101 GEN
106 .PRINT EQU 201 0201 GEN
* GEN
107 ORG 85 0085
108 DCW @X1@ *IDENTIFING FILLER 2 0086 GEN 3
109 X1 DCW 000 *INDEX REGISTER 1 3 0089 GEN 3
110 DCW @X2@ *IDENTIFING FILLER 2 0091 GEN 3
111 X2 DCW 000 *INDEX REGISTER 2 3 0094 GEN 3
112 DCW @X3@ *IDENTIFING FILLER 2 0096 GEN 3
113 X3 DCW 000 *INDEX REGISTER 3 3 0099 GEN 3
* GEN
114 ORG 340 *ORG JUST AFTER PRINT BUFFER 0340
****************************** END OF HEAD MACRO ************************** GEN
115 *
116 P132 EQU 332 *DEFINE THE LAST CHARAACTER OF THE PRINT BUFFER 0332
117 IDENT DCW @POWERS OF 2 VERSION 4.3 PROGRAM 03/01/2015@ 42 0381 5
118 *ID THE PROGRAM DECK
119 HOLD DCW 0 1 0382 5
120 PAT1 DCW @, , , , , , , , , , , @ 44 0426 7
121 PAT2 DC @, , , , , , , , , , , @ 44 0470 9
122 PAT3 DC @, , , , , , , , , , , @ 44 0514 11
123 *
124 AREG DS 99 *A PLACE TO ADD STUFF 0613
125 CRDCNT DCW 00 *CARD COUNTER 2 0615 12
126 ** 1234567890123456789012345678901234567890
127 DCW @THIS PRINTOUT WAS GENERATED ON AN IBM 1401 @ 43 0658 14
128 DC @COMPUTER AT THE COMPUTER HISTORY MUSEUM, @ 41 0699 16
129 CREDIT DC @ MOUNTAIN VIEW, CALIFORNIA@ 26 0725 16
130 *
131 FLADD EQU FSTLIN 0770
132 FSTLIN DCW @FIVE HUNDRED FORTY SIX UNTRIGINTILLION @ 45 0770 18
133 DCW @EIGHT HUNDRED TWELVE TRIGINTILLION @ 45 0815 20
134 DCW @SIX HUNDRED EIGHTY ONE NOVEMVIGINTILLION @ 45 0860 22
135 DCW @ONE HUNDRED NINETY FIVE OCTOVIGINTILLION @ 45 0905 24
136 DCW @SEVEN HUNDRED FIFTY TWO SEPTEMVIGINTILLION @ 45 0950 26
137 DCW @NINE HUNDRED EIGHTY ONE SESVIGINTILLION @ 45 0995 28
138 DCW @NINETY THREE QUINQUAVIGINTILLION @ 45 1040 30
139 DCW @ONE HUNDRED TWENTY FIVE QUATTUORVIGINTILLION @ 45 1085 32
140 DCW @FIVE HUNDRED FIFTY SIX TRESVIGINTILLION @ 45 1130 34
141 DCW @SEVEN HUNDRED SEVENTY NINE DUOVIGINTILLION @ 45 1175 36
142 DCW @FOUR HUNDRED FIVE UNVIGINTILLION @ 45 1220 38
143 DCW @THREE HUNDRED FORTY ONE VIGINTILLION @ 45 1265 40
144 DCW @THREE HUNDRED THIRTY EIGHT NOVENDECILLION @ 45 1310 42
145 DCW @TWO HUNDRED NINETY TWO OCTODECILLION @ 45 1355 44
146 DCW @THREE HUNDRED FIFTY SEVEN SEPTENDECILLION @ 45 1400 46
147 DCW @SEVEN HUNDRED TWENTY THREE SEDECILLION @ 45 1445 48
1 AUTOCODER PROGRAM PAGE 3
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
148 DCW @THREE HUNDRED THREE QUINQUADECILLION @ 45 1490 50
149 DCW @ONE HUNDRED NINE QUATTUORDECILLION @ 45 1535 52
150 DCW @ONE HUNDRED SIX TREDECILLION @ 45 1580 54
151 DCW @FOUR HUNDRED FORTY TWO DUODECILLION @ 45 1625 56
152 DCW @SIX HUNDRED FIFTY ONE UNDECILLION @ 45 1670 58
153 DCW @SIX HUNDRED TWO DECILLION @ 45 1715 60
154 DCW @FOUR HUNDRED EIGHTY EIGHT NONILLION @ 45 1760 62
155 DCW @TWO HUNDRED FORTY NINE OCTILLION @ 45 1805 64
156 DCW @SEVEN HUNDRED NINETY NINE SEPTILLION @ 45 1850 66
157 DCW @EIGHT HUNDRED FORTY THREE SEXTILLION @ 45 1895 68
158 DCW @NINE HUNDRED EIGHTY QUINTILLION @ 45 1940 70
159 DCW @EIGHT HUNDRED FIVE QUADRILLION @ 45 1985 72
160 DCW @EIGHT HUNDRED SEVENTY EIGHT TRILLION @ 45 2030 74
161 DCW @TWO HUNDRED NINETY FOUR BILLION @ 45 2075 76
162 DCW @TWO HUNDRED FIFTY FIVE MILLION @ 45 2120 78
163 DCW @SEVEN HUNDRED SIXTY THREE THOUSAND @ 45 2165 80
164 DCW @FOUR HUNDRED FIFTY SIX @ 45 2210 82
165 *
166 *
167 *
168 START CS 332 *CLEAR 332 TO 300 4 2211 / 332 82 332
169 CS *CLEAR 299 TO 200 1 2215 / 82
170 SW 201 *SET A WORD MARK AT THE BEGINNING 4 2216 , 201 82 201
171 SW AREG-98 4 2220 , 515 82 515
172 MCW IDENT,.PUNCH&50 * IDENTIFY THE PROGRAM AND REVISION 7 2224 M 381 151 83 381 151
173 MCW IDENT, 250 * IDENTIFY THE PROGRAM AND REVISION 7 2231 M 381 250 83 381 250
174 W * PRINT IT 1 2238 2 83
175 CS 299 * CLEAR STORAGE 4 2239 / 299 83 299
176 MCW @000@,X1 * CLEAR X1 7 2243 M N93 089 83 2593 089
177 MCW @000@,X2 * CLEAR X2 7 2250 M N93 094 83 2593 094
178 MCW @000@,X3 * CLEAR X3 7 2257 M N93 099 84 2593 099
179 SW 201 * SET IT AGAIN 4 2264 , 201 84 201
180 ZA @002@,AREG * SET THE STARTING NUMBER 7 2268 ? N96 613 84 2596 613
181 MCW @00@,CRDCNT *RESET CHARD COUNT 7 2275 M N98 615 84 2598 615
182 L1 MLCWA PAT3,332 7 2282 L 514 332 84 514 332
183 MCE AREG,332 7 2289 E 613 332 84 613 332
184 L2 MCW @000@,X1 * SETUP X1 TO ZERO 7 2296 M N93 089 85 2593 089
185 L23 BCE L27,.PRINT&X1, * IS IT A SPACE? 8 2303 B L38 2'1 85 2338 201+1
186 BCE L25,.PRINT&X1,0 * IS IT A ZERO? 8 2311 B L31 2'1 0 85 2331 201+1
187 BCE L25,.PRINT&X1,, * IS IT A COMMA? 8 2319 B L31 2'1 , 85 2331 201+1
188 B L29 * FIRST NON SPACE OR COMMA 4 2327 B L49 85 2349
189 *
190 L25 MCW @ @,.PRINT&X1 * CLEAR THE COMMA OR ZERO 7 2331 M N99 2'1 86 2599 201+1
191 L27 MA @001@,X1 * INCREMENT X1 7 2338 # O02 089 86 2602 089
192 B L23 * CHECK THE NEXT POSITION 4 2345 B L03 86 2303
193 L29 MCW 202,HOLD * SAFE KEEPING 7 2349 M 202 382 86 202 382
194 W * PRINT IT 1 2356 2 86
195 MCW HOLD,202 * PUT IT BACK 7 2357 M 382 202 86 382 202
196 L35 A AREG,AREG * DOUBLE IT 7 2364 A 613 613 87 613 613
197 BAV L4 * BRANCH ON OVERFLOW 5 2371 B L80 Z 87 2380
1 AUTOCODER PROGRAM PAGE 4
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
198 B L1 * TRY AGAIN 4 2376 B K82 87 2282
199 L4 CS 332 4 2380 / 332 87 332
200 CS 1 2384 / 87
201 W 1 2385 2 87
202 MCW @THE NUMBER ABOVE IS 2 RAISED TO THE 328 POWER@,250 7 2386 M O47 250 87 2647 250
203 W 1 2393 2 88
204 CS 299 *CLEAR STORAGE 4 2394 / 299 88 299
205 W *WRITE A SPACE LINE 1 2398 2 88
206 MCW @IT IS 99 DIGITS LONG@,236 7 2399 M O67 236 88 2667 236
207 W *WRITE A SPACE LINE 1 2406 2 88
208 CS 299 4 2407 / 299 88 299
209 W *WRITE A BLANK LINE 1 2411 2 88
210 MCW @IN SCIENTIFIC NOTATION, THIS IS@,236 7 2412 M O98 236 89 2698 236
211 MCW @ 5.4681268119575298109312555677941E&98@,274 7 2419 M P36 274 89 2736 274
212 W 1 2426 2 89
213 CS 332 *CLEAR 332 TO 300 4 2427 / 332 89 332
214 CS *CLEAR 299 TO 200 1 2431 / 89
215 W *WRITE A BLANK LINE 1 2432 2 89
216 SW 001 *FIELD DEFINER 4 2433 , 001 89 001
217 MCW @IN TEXT FORMAT@,219 *PUT IN HEADER 7 2437 M P50 219 90 2750 219
218 W *PRINT THE LINE 1 2444 2 90
219 CS 332 *B REG AT 333 4 2445 / 332 90 332
220 CS *CONTINUE 1 2449 / 90
221 SW 201 4 2450 , 201 90 201
222 MCW @049@,X1 *FIRST PRINT POSITION 7 2454 M P53 089 90 2753 089
223 MCW @000@,X2 *FIRST PRINT MESSAGE 7 2461 M N93 094 90 2593 094
224 READ MCW FSTLIN&X2,201&X1 *MOVE IN THE DATA 7 2468 M 7P0 2'1 91 770+2 201+1
225 W *WRITE DATA 1 2475 2 91
226 CS 332 *B REG AT 333 4 2476 / 332 91 332
227 CS *CONTINUE 1 2480 / 91
228 SW 201 4 2481 , 201 91 201
229 MA @001@,X1 *ADD 1 TO X1 7 2485 # O02 089 91 2602 089
230 MA @045@,X2 *ADD 45 TO X2 7 2492 # P56 094 91 2756 094
231 A @1@,CRDCNT *ADD ONE TO CARD COUNT 7 2499 A P57 615 92 2757 615
232 MZ CRDCNT-1,CRDCNT *STRIP ZONE 7 2506 Y 614 615 92 614 615
233 C @33@,CRDCNT *IS THIS THE 33RD CARD? 7 2513 C P59 615 92 2759 615
234 BU READ *LETS GO GET MORE 5 2520 B M68 / 92 2468
235 CS 332 *CLEAR 332 TO 300 4 2525 / 332 92 332
236 CS *CLEAR 299 TO 200 1 2529 / 92
237 W 1 2530 2 92
238 MCW CREDIT,310 *PRINT CREDIT 7 2531 M 725 310 93 725 310
239 W 1 2538 2 93
240 CC 1 *TOP OF FORM 2 2539 F 1 93
241 *******************************************************************
242 *
243 EXIT MACRO
********************************** START OF EXIT MACRO ************* GEN
244 EXIT NOP 999,999 *LOAD THE A AND B REGISTERS 7 2541 N 999 999 GEN 93 999 999
245 H *HALT OR I WILL SHOOT 1 2548 . GEN 93
* GEN
1 AUTOCODER PROGRAM PAGE 5
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
246 B START,G *IF G IS ON, RETURN TO START 5 2549 B K11 G GEN 93 2211
247 CS 332 *CLEAR PRINT STORAGE 4 2554 / 332 GEN 93 332
248 CS *CLEAR PRINT STORAGE 1 2558 / GEN 94
249 CS *CLEAR PUNCH STORAGE 1 2559 / GEN 94
250 CS *CLEAR READ STORAGE 1 2560 / GEN 94
* GEN
251 C @SHAY@,14007 *WERE WE LOADED WITH THE LOADER? 7 2561 C P63 !0G GEN 94 2763 14007
252 BE 14000 *YES WE WERE. TURN CONTROL 5 2568 B !0? S GEN 94 14000
* OTHERWISE..... *BACK TO THE LOADER GEN
* GET READY TO BOOT FROM THE FOLLOWING DECK GEN
* GEN
253 SW 001 *SET WORDMARK IN LOCATION 1 4 2573 , 001 GEN 94 001
254 EXRED R *READ FIRST CARD OF NEXT DECK 1 2577 1 GEN 94
255 BCE 001,001,, *IS IT A COMMA? 8 2578 B 001 001 , GEN 95 001 001
* *BRANCH TO THE FIRST INSTRUCTION GEN
256 B EXRED *CHECK THE NEXT ONE 4 2586 B N77 GEN 95 2577
257 NOP 1 2590 N GEN 95
*********************** END OF EXIT MACRO************************* GEN
* GEN
258 ******************************************************************
DCW @000@ 3 2593 LIT 95
DCW @002@ 3 2596 LIT 95
DCW @00@ 2 2598 LIT 95
DCW @ @ 1 2599 LIT 95
DCW @001@ 3 2602 LIT 96
DCW @THE NUMBER ABOVE IS 2 RAISED TO THE 328 POWER@ 45 2647 LIT 98
DCW @IT IS 99 DIGITS LONG@ 20 2667 LIT 98
DCW @IN SCIENTIFIC NOTATION, THIS IS@ 31 2698 LIT 99
DCW @ 5.4681268119575298109312555677941E&98@ 38 2736 LIT 100
DCW @IN TEXT FORMAT@ 14 2750 LIT 101
DCW @049@ 3 2753 LIT 101
DCW @045@ 3 2756 LIT 101
DCW @1@ 1 2757 LIT 101
DCW @33@ 2 2759 LIT 101
DCW @SHAY@ 4 2763 LIT 101
259 END START / K11 080 2211
1 PAGE 6
0SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS
.PRINT 0201: 0 .PUNCH 0101: 0 .READ 0001: 0 AREG 0613: 0 CRDCNT 0615: 0 CREDIT 0725: 0
EXIT 2541: 0 EXRED 2577: 0 FLADD 0770: 0 FSTLIN 0770: 0 HOLD 0382: 0 IDENT 0381: 0
L1 2282: 0 L2 2296: 0 L23 2303: 0 L25 2331: 0 L27 2338: 0 L29 2349: 0
L35 2364: 0 L4 2380: 0 P132 0332: 0 PAT1 0426: 0 PAT2 0470: 0 PAT3 0514: 0
READ 2468: 0 START 2211: 0 X1 0089: 0 X2 0094: 0 X3 0099: 0
0UNREFERENCED SYMBOLS
.READ EXIT L2 L35 P132 PAT1 PAT2
README file for Powers of two
Saturday, March 07, 2015
Powers Of 2 is a demonstration program run on the IBM 1401 computer.
The IBM 1401 stores one digit per memory location.
The IBM 1401 has 16,000 locations of memory.
With this amount of memory, the IBM 1401 can add together two 8,000 digit numbers.!
Modern computers perform integer arithmetic using binary values.
For the IBM PC, the largest value is 64 bits.
The largest value that can be expressed in 64 bits is 18,446,744,073,709,551,616.
That is 20 digits long.
The Powers Of Two program demonstrates the ability of the IBM 1401 to handle large numbers by starting
with a single digit of 2 and then double it until it fills a single print line on the IBM 1403 printer.
In addition of that, the program prints out how you pronounce the resultant number.
The program will terminate with a halt.
If you want to run it again, set sense switch G on, and press start.
If you don’t want to run it again, leave sense switch G off and when you press start,
it will look for and read in the next program.
--------------------------------------------------------------------
JOB PRIME
* GENERATE PRIME NUMBERS. DEMO FOR COMPUTER HISTORY MUSEUM
* KEN SHIRRIFF HTTP://RIGHTO.COM
HEAD
* IMPORTANT NOTE ON THE BITMASK: IT HOLDS ODD NUMBERS,STARTING WITH 3.
* SO N IS IN ADDRESS BITS0+(N-3)/2
REV DCW @REVISION 3 COMPILED ON MARCH 3, 2015@
TO DCW #5 * TEMPORARY
MAX DCW @25000@ * MAXIMUM NUMBER TO PRINT
MAXADR DCW @12500@ * MAX/2
SQRT DCW @00158@ * SQRT(MAX)
ADR DCW #5
STEP DCW #3 * ADDRESS STEP WHEN MOVING THROUGH BITMASK
LINENO DCW #2 * LINE NUMBER ON PAGE
PAGENO DCW #1
PPTR DCW #5 * PRIME/2-1.5,AS A 3-CHAR ADDRESS
PPTR5 DCW #5 * PPTR AS 5-DIGIT VALUE,NOT ADDRESS
* BITS[(N-1)/2] = 1 IF N HAS NOT BEEN ELIMINATED
ENDADR DCW @000@
DCW @A LIST OF PRIME NUMBERS UNDER 25,000 GE@
DC @NERATED BY THE IBM 1401 AT THE COMPUTER@
LINE1 DC @ HISTORY MUSEUM IN MOUNTAIN VIEW,CA@
DCW @THIS PRINTOUT WAS GENERATED ON AN IBM 1401 @
DC @COMPUTER AT THE COMPUTER HISTORY MUSEUM, @
CREDIT DC @ MOUNTAIN VIEW, CALIFORNIA@
PROD DCW #11 * SIZEOF(COUNT)*2+1
POS DCW #3 * POSITION ON LINE.
* CONVERSION CONSTANTS
HZONE DCW @9ZRI9ZRI9ZRI9ZRI@
LZONE DCW @9999ZZZZRRRRIIII@
BITS0 DCW BITS-12499
BITS DS 12500 * LENGTH IS MAX/2.
ORG 15000
START CS 299
MCW REV,180 * LEAVE ID BEHIND
MCW @00000@,PPTR
MCW @00000@,PPTR5
MCW @007@,POS * NEEDS TO MATCH CODE IN WRITE
MCW @1@,PAGENO
B HEADER * PRINT HEADER
MCW @00002@,TO
B WRITE * PRINT 2 AS A SPECIAL CASE
* INITIALIZE END ADDRESS
MCW MAXADR,ADR
B CONV2
MCW ADR,ENDADR
OUTER MCW PPTR,X2 * SEARCH FOR NEXT CLEAR BIT
SCAN C X2,ENDADR
BE DONE
C BITS0&X2,@1@ * FOUND A PRIME (BIT IS NOT 1)?
BU FOUND
MA @001@,X2
A +1,PPTR5
B SCAN
DONE NOP
EXIT
FOUND MCW X2,PPTR * FOUND A PRIME AT INDEX X2. NEED TO CONVERT TO NUMBER,WHICH IS INCONVENIENT
MA @001@,PPTR * INCREMENT THE INDEX
MZ @0@,PPTR5
MCW PPTR5,PROD-6
A +1,PPTR5
* PRIME = 2*INDEX+3,I.E. 2*TO+3
M @2@,PROD-4
A @3@,PROD-4 * ADD 3
MZ @0@,PROD-4 * CLEAR ZONE
MCW PROD-4,TO
B WRITE * WRITE THE PRIME
C SQRT,TO * DON'T CROSS OFF ANY MULTIPLES ONCE PAST SQUARE ROOT OF MAX
BH OUTER
MCW TO,ADR * CROSS OFF EVERY 2*PRIME (IGNORING EVEN),I.E. INCREMENT INDEX BY PRIME
B CONV2
MCW ADR,STEP * STEP HOLDS THE INCREMENT FOR CROSSING-OFF
* COMPUTE PRIME^2,WHICH IS WHERE TO START MARKING OFF NUMBERS
MCW TO,PROD-6
M TO,PROD
MZ @0@,PROD
* SUBTRACT 3 AND DIVIDE BY 2 TO CONVERT BACK TO INDEX
MCW PROD,TO
S @3@,TO
MZ @0@,TO
ZA TO,PROD-4
D @2@,PROD-8
MZ @0@,PROD-6 * PROD-6 IS NEW INDEX
MCW PROD-6,ADR
B CONV2
MCW ADR,X2 * X2 IS NEW INDEX AS AN ADDRESS
MCW PROD-6,ADR * ADR IS NEW INDEX AS A NUMBER
* STEP THROUGH ALL THE MULTIPLES OF PRIME STARTING AT PRIME^2,SETTING THE BITS
CLEAR C ADR,MAXADR * DONE?
BL OUTER * GO BACK TO OUTER LOOP
MN @1@,BITS0&X2
MA STEP,X2 * INCREMENT X2 BY STEP
A STEP,ADR * INCREMENT ADR BY STEP
B CLEAR
* END OF MAIN PROGRAM
* ROUTINE TO WRITE VALUE IN "TO" TO PRINTER IN 10 COLUMNS
WRITE SBR WRITEX&3
C @60@,LINENO * PRINT HEADER AT LINE 60
BU NOHEAD
B HEADER
NOHEAD MCW POS,X3
LCA @00,000@,200&X3
MCE TO,200&X3
A @8@,X3
MZ @0@,X3
MCW X3,POS
C @111@,POS * 7+8*13 = 111
BU WRITEX
W * LINE IS COMPLETE
MCW @007@,POS
A +1,LINENO
MZ @0@,LINENO
CS 332
CS
WRITEX B 000
* ROUTINE TO PRINT THE NEXT HEADER LINE
HEADER SBR HEADEX&3
CC 1 * EJECT PAGE
MCW LINE1,312
MCW @PAGE X OF 4@,330 * PAGE COUNT HEADER
MCW PAGENO,325
W
A @1@,PAGENO
MZ @0@,PAGENO
CS 332 * BLANK LINE AFTER HEADER
CS
W
MCW @03@,LINENO * NOW ON LINE 3
HEADEX B @000@
* ROUTINE TO CONVERT 5-DIGIT ADDRESS TO 3-DIGIT ADDRESS.
* FROM VAN SNYDER.
* FASTEST ROUTINE TO CONVERT THE FIVE-DIGIT NUMBER IN ADR TO
* A THREE CHARACTER ADDRESS,IN PLACE. USES X1. WOULD BE
* SLOWER AND 14 CHARACTERS LONGER IF IT SAVED AND RESTORED X1.
*
CONV2 SBR CONV2X&3
MCW ADR-3,X1
MCW @0@
MZ HZONE-15&X1,ADR-2
MZ LZONE-15&X1,ADR
CONV2X B 0-0
END START
,008015,022026,030040/019,001L020100 ,047054,061068,072072)08108110220001
,008047/047046 /000H025B022100 4/061046,054061,068072,00104010400002
X1000X2000X3000 L015099,087090,092095,09704010400003
REVISION 3 COMPILED ON MARCH 3, 2015 L036375,040040,040040,04004010400004
250001250000158 L030405,381386,391396,40140410400005
000 L014419,407412,417040,04004010400006
A LIST OF PRIME NUMBERS UNDER 25,000 GEL039458,040040,040040,04004010400007
NERATED BY THE IBM 1401 AT THE COMPUTERL039497)459459,040040,04004010400008
HISTORY MUSEUM IN MOUNTAIN VIEW,CA L035532)498498,040040,04004010400009
THIS PRINTOUT WAS GENERATED ON AN IBM 1L039571,040040,040040,04004010400010
401 L004575)572572,040040,04004010400011
COMPUTER AT THE COMPUTER HISTORY MUSEUML039614)576576,040040,04004010400012
, MOUNTAIN VIEW, CALIFORNIA L039653)615615,643040,04004010400013
9ZRI9ZRI9ZRI9ZRI9999ZZZZRRRRIIII692 L038691,657673,689040,04004010400014
/299M375180ME9E411MF0?416MF0C656MF0D406L039?3H,?0D?1A,?1H?2E,?3B04010400015
BD9IMF0I380BC9DM390400BE5HM400419 L033?7A,?4C?5?,?5D?6A,?6E04010400016
M411094C094419BA2ASC6R1F0DBA7B/#F1B094 L038A0I,?7I?8F,?9A?9H,A0C04010400017
AF1C416B?7INN999999.B?0?G/332 L029A3H,A1GA2A,A2BA2I,A3?A3E10400018
///CF1G!0GB!0?S,0011 L020A5H,A4?A4A,A4BA4I,A5DA5H10400019
B001001,BA5HNM094411#F1B411YF1H416 L034A9B,A6GA7A,A7BA7I,A8F04010400020
M416647AF1C416@F1I649AF2?649YF1H649 L035B2G,B0?B0G,B1DB2A,04004010400021
M649380BC9DC395380B?7BUM380400BE5H L034B6A,B3EB3I,B4FB5A,B5H04010400022
M400403M380647@380653YF1H653M653380 L035B9F,B6IB7F,B8CB9?,04004010400023
SF2?380YF1H380?380649%F1I645YF1H647 L035C3A,C0DC1A,C1HC2E,04004010400024
M647400BE5HM400094M647400C400390B?7BT L037C6H,C3IC4C,C5?C5G,C6D04010400025
DF0D6R1#403094A403400BC5GHD9HCF2B405 L036D0D,C7FC8C,C9?C9D,C9H04010400026
BD1D/BD9IM656099LF2H2?0E3802?0AF2I099 L037D4A,D1?D1D,D2AD2H,D3E04010400027
YF1H099M099656CF3B656BD9E/2MF0C656 L034D7E,D4ID5F,D6CD6H,D6I04010400028
AF1C405YF1H405/332/B000HE5GF1 L029E0D,D8CD9?,D9DD9E,D9IE0C10400029
M532312MF4C330M4063252AF0D406YF1H406 L036E4?,E1BE1I,E2FE2G,E3D04010400030
/332/2MF4E405BF4HHE9?M397089 L028E6H,E4EE4F,E4GE5D,E5HE6B10400031
MF1HY6V7398Y6X3400B0000000000000007 L035F0C,E7CE8?,E8GE9A,E9FF0A10400032
100002001ASHAY02 L016F1I,F0EF1?,F1CF1D,F1HF1I10400033
36000,0008111PAGE X OF 403 L026F4E,F2AF2C,F2IF3?,F3CF4D10400034
000 L003F4H,040040,040040,04004010400035
/?0?080 0036
README file for prime_demo
Friday, March 06, 2015
prime_demo is a demonstration program run on the IBM 1401
It uses the sieve of Eratosthenes an ancient algorithm for finding all prime numbers up to any given limit.
For this program, the given limit is 25,000 due to the memory limitation of the computer.
The program will terminate with a halt.
If you want to run it again with a new set of cards, set sense switch G on, clear the card reader,
place the second date, name and EOF cards in the reader and press start.
If you don’t want to run it again, leave sense switch G off and when you press start,
it will look for and read in the next program.
HEAD
*
TSIZE EQU 004 *SIZE OF TAPE RECORD TO WRITE
TBUFF EQU 4000 *PUT THE TAPE BUFFER UP IN HIGH MEMORY
*
*
IDENT DCW @TAPE DEMO PROGRAM VERSION 7.2 03/4/2015@
GRPMRK DCW @"@ *DEFINE GROUP MARK
*
RECSIZ DCW 800
TNUMB DCW 0000
SSCNT DCW 0
DUMDRV DCW 0
LOOP DCW 0000
D1 DCW 0 *DID WE USE DRIVE ONE?
D2 DCW 0 *DID WE USE DRIVE TWO?
D3 DCW 0 *DID WE USE DRIVE THREE?
DNOW DCW 0 *WHICH DRIVE ARE WE USING NOW?
TBLKN DSA 800 *800 CHARACTER RECORDS FOR BLANKS
TRECS DCW @06000@ *6000 8000 CHAR RECS SB 50% OF REEL
MAXREC DCW @00000@ *HOW NMANY TO WRITE
RECWR DCW @00000@ *NUMBER OF RECORDS WRITTEN
DCW @ TAPE DRIVE 1 @
ERR1 DCW @00000@ *NUMBER OF ERRORS ON DRIVE 1
DCW @ TAPE DRIVE 2 @
ERR2 DCW @00000@ *NUMBER OF ERRORS ON DRIVE 2
DCW @ TAPE DRIVE 3 @
ERR3 DCW @00000@ *NUMBER OF ERRORS ON DRIVE 3
RNDTBL EQU *
DC @243134383215212616243126211428241812183411112832@
DC @323418281238261437151834152524371723222937261712@
DC @273428133118381727283229173323351318393617283312@
DC @332811252235372426131113113237323729183724182226@
DC @371334342338192238183827243728261938262727262931@
DC @272827312323182231332128141411311626343524222213@
DC @182736282833261629133134123815213213122614282614@
DC @151611221511383115361413333126271131292337161326@
DC @193733343126381239181712193116113129361617383421@
DC @183123253927113718362418141827221215193627371634@
DC @333119211526213736343228312225282833353138182615@
DC @261427283434153735391116233312131422162718213699@
*
**********************************************************************
*
START MCW IDENT,180 *PUT IDENT IN PUNCH BUFFER
NOP 111,111 *PUT A VALUE IN A AND B
H *HALT AND WAIT FOR THE OPERATOR
START2 NOP
CS 332 *CLEAR 332 TO 300
CS *CLEAR 299 TO 200
SW 201 *SET WORD MARK FOR PRINTING
*
*PRINT HEADING
*
B SKPRT,E *SKIP IF LOOPING
MCW IDENT,247
W
CS 299
MCW @SENSE SWITCH B = TAPE DRIVE 1 ONLY @,250
W
CS 299
MCW @SENSE SWITCH C = TAPE DRIVES 1 & 2 @,250
W
CS 299
MCW @SENSE SWITCH D = TAPE DRIVES 1 & 2 & 3 @,250
W
CS 299
MCW @SENSE SWITCH E = LOOP TEST PROGRAM @,250
W
CS 299
MCW @SENSE SWITCH F = TERMINATE PROGRAM @,250
W
CS 299
MCW @SENSE SWITCH G = RERUN THE PROGRAM AFTER @,250
MCW @PROGRAM HALT @,266
W
CS 299
W
SKPRT MCW @0@,SSCNT *RESET SENSE SWITCH COUNT
MCW @N@,D1 *RESET THE DRIVE FLAGS
MCW @N@,D2 *RESET THE DRIVE FLAGS
MCW @N@,D3 *RESET THE DRIVE FLAGS
*
B SWB,B *BRANCE IF SS B IS ON
B TSSC *BRANCH TO TEST SS C
SWB A @1@,SSCNT *ADD 1 TO SS COUNT
MCW @Y@,D1 *WE USED DRIVE 1
MCW @06000@,MAXREC *WRITE 6000 RECORDS
TSSC B SWC,C *BRANCE IF SS C IS ON
B TSSD *BRANCH TO TEST SS D
SWC A @1@,SSCNT *ADD 1 TO SS COUNT
MCW @Y@,D1 *WE USED DRIVE 1
MCW @Y@,D2 *WE USED DRIVE 2
MCW @12000@,MAXREC *WRITE 12000 RECORDS
TSSD B SWD,D *BRANCE IF SS D IS ON
B TSSE *BRANCH TO TEST SS E
SWD A @1@,SSCNT *ADD 1 TO SS COUNT
MCW @Y@,D1 *WE USED DRIVE 1
MCW @Y@,D2 *WE USED DRIVE 2
MCW @Y@,D3 *WE USED DRIVE 3
MCW @18000@,MAXREC *WRITE 18000 RECORDS
TSSE NOP *WE DON'T TEST BEYONE HERE
BCE RUN,SSCNT,1 *IF WE HAVE NO DRIVES OR TOO MANY
*****************************************************************
* HAD A PROBLEM SO PRINT INSTRUCTIONS
*****************************************************************
OOPS MCW @SENSE SWITCH ERROR. RESET AND TRY AGAIN@,250
W
CS 299 *CLEAR PRINT STORAGE
W *SPACE PAPER
W *SPACE PAPER
W *SPACE PAPER
W *SPACE PAPER
B START *HALT AND THEN START OVER
RUN NOP *CLEAN UP OF CODE
DOTAP MCW @0000@,LOOP *RESET LOOP COUNTER
B REWIND *CALL THE REWIND SUBROUTINE
MCW @000@,X1 *CLEAR X1
MA RECSIZ,X1 *PUT TAPE SIZE IN X1
LCA GRPMRK,TBUFF&X1 *PUT THE GROUP MARK
* *AND WORD MARK OUT THERE
MCW @000@,X1 *CLEAR X1
MCW @000@,X2 *CLEAR X2
MCW @00000@,RECWR *CLEAR RECORD COUNT
DOTAP2 B DONE,F *DONE DOING WHAT YOU
* *ARE DOING IF SS F SET
C RECWR,MAXREC *SEE IF WE HAVE WRITTEN THE MAX
BL DONE *YES WE HAVE
MN RNDTBL&1&X1,DNOW *PICK UP THE DRIVE INDICATOR
BCE CK1,DNOW,1 *CHECK IF DRIVE 1
BCE CK2,DNOW,2 *CHECK IF DRIVE 2
BCE CK3,DNOW,3 *CHECK IF DRIVE 3
H *-3 *JUST IN CASE
CK1 BCE DRVOK,D1,Y *IT IS READY
B WRITE3 *BYPASS
CK2 BCE DRVOK,D2,Y *IT IS READY
B WRITE3 *BYPASS
CK3 BCE DRVOK,D3,Y *IT IS READY
B WRITE3 *BYPASS
DRVOK MCW DNOW,WRITE&3 *MODIFY THE WRITE INSTRUCTION
MCW @0000@,LOOP *RESET LOOP COUNTER
MN RNDTBL&2&X2,LOOP *SET UP THE LOOP
*
*
* WRITE TAPE
*
WRITE WT 1,TBUFF *WRITE THE TAPE RECORD
*
* THE ABOVE INSTRUCTION IS MODIFIED IN REAL TIME
*
B DONE,K *DONE IF END OF REEL
B TERR,L *BRANCH ON TAPE ERROR
A @1@,RECWR *ADD 1 TO RECORDS WRITTEN
S @1@,LOOP *SUBTRACT 1 FROM NUMBER
MZ LOOP-1,LOOP *CLEAR ZONE
C @0000@,LOOP *HAVE WE HIT ZERO?
BU WRITE *NO, WRITE ANOTHER
WRITE3 MA @2@,X1 *INCREMENT X1 FOR NEXT COMMAND
BCE RESET,RNDTBL&1&X1,9 *END OF TABLE?
B DOTAP2 *LETS GET THE NEXT
RESET MCW @000@,X1 *RESET X1
B DOTAP2 *LETS GET THE NEXT
*******************************************************************
REWIND SBR REWX&3 *SET RETURN ADDRESS
BCE RT3,D3,Y *THREE TAPES?
BCE RT2,D2,Y *TWO TAPES?
BCE RT1,D1,Y *ONLY ONE TAPE?
H *-3 *JUST IN CASE OF ERROR
RT3 RWD 3 *REWIND TAPE 3
RT2 RWD 2 *REWIND TAPE 2
RT1 RWD 1 *REWIND TAPE 1
REWX B 000 *RETURN ADDRESS
NOP
TERR SBR TERX&3 *SET RETURN ADDRESS
BCE TE1,DNOW,1 *ARE WE WORKING WITH DRIVE 1?
BCE TE2,DNOW,2 *ARE WE WORKING WITH DRIVE 2?
BCE TE3,DNOW,3 *ARE WE WORKING WITH DRIVE 3?
B TERX *SHOULD NOT BE HERE BUT?
TE1 A @1@,ERR1 *INCREMENT ERR COUNT FOR DRIVE 1
B TERX *EXIT
TE2 A @1@,ERR2 *INCREMENT ERR COUNT FOR DRIVE 2
B TERX *EXIT
TE3 A @1@,ERR3 *INCREMENT ERR COUNT FOR DRIVE 3
B TERX *EXIT
TERX B 000 *RETURN ADDRESS
*
*
*
* WE ARE DONE
*
DONE B REWIND *CALL THE REWIND SUBROUTINE
MCW @NUMBER OF RECORDS WRITTEN @,230
MCW RECWR,235 *SET THE NUMBER
W *PRINT
CS 299 *CLEAR PRINT
MCW @TAPE DRIVE ERROR COUNTS @,230
W *PRINT
CS 299 *CLEAR PRINT
MCW ERR3,260 *MOVE IN DATA FOR 3 DRIVES
MCW *CHAIN
MCW *CHAIN
MCW *CHAIN
MCW *CHAIN
MCW *CHAIN
W
B START2,E *IF WE ARE LOOPING
CS 332
CS
CC 1 *TOP OF FORMS
EXIT
*
*************************************************
END START
,008015,022026,030040/019,001L020100 ,047054,061068,072072)08108110220001
,008047/047046 /000H025B022100 4/061046,054061,068072,00104010400002
X1000X2000X3000 L015099,087090,092095,09704010400003
TAPE DEMO PROGRAM VERSION 7.2 03/4/2015L039378,040040,040040,04004010400004
"80000000000000 L015393,380383,387388,38939310400005
000800060000000000000 L021414,395396,397400,40541010400006
TAPE DRIVE 1 00000 TAPE DRIVE 2 00000 L038452,429434,448040,04004010400007
TAPE DRIVE 3 00000 L019471,467040,040040,04004010400008
243134383215212616243126211428241812183L039510)472472,040040,04004010400009
411112832 L009519)511511,040040,04004010400010
323418281238261437151834152524371723222L039558)520520,040040,04004010400011
937261712 L009567)559559,040040,04004010400012
273428133118381727283229173323351318393L039606)568568,040040,04004010400013
617283312 L009615)607607,040040,04004010400014
332811252235372426131113113237323729183L039654)616616,040040,04004010400015
724182226 L009663)655655,040040,04004010400016
371334342338192238183827243728261938262L039702)664664,040040,04004010400017
727262931 L009711)703703,040040,04004010400018
272827312323182231332128141411311626343L039750)712712,040040,04004010400019
524222213 L009759)751751,040040,04004010400020
182736282833261629133134123815213213122L039798)760760,040040,04004010400021
614282614 L009807)799799,040040,04004010400022
151611221511383115361413333126271131292L039846)808808,040040,04004010400023
337161326 L009855)847847,040040,04004010400024
193733343126381239181712193116113129361L039894)856856,040040,04004010400025
617383421 L009903)895895,040040,04004010400026
183123253927113718362418141827221215193L039942)904904,040040,04004010400027
627371634 L009951)943943,040040,04004010400028
333119211526213736343228312225282833353L039990)952952,040040,04004010400029
138182615 L009999)991991,040040,04004010400030
261427283434153735391116233312131422162L039'38)'00'00,040040,04004010400031
718213699M378180N111111.N L025'63)'39'39,'48'55,'62'6310400032
/332/,201B/70EM3782472/299 L026'89,'68'69,'73'78,'85'8610400033
MY532502/299MY942502/299MZ35250 L031/20,'97'98,/02/09,/10/1410400034
2/299MZ762502/299M!172502 L025/45,/22/26,/33/34,/38/4510400035
/299M!58250M!742662/2992M!75387 L031/76,/50/57,/64/65,/69/7010400036
M!76393M!76394M!76395BS07BBS28A!77387 L037S13,/84/91,/98S03,S0704010400037
M!78393M!83409BS37CBS65A!77387M!78393 L037S50,S21S28,S33S37,S4404010400038
M!78394M!88409BS74DBT09A!77387M!78393 L037S87,S58S65,S70S74,S8104010400039
M!78394M!78395M!93409NBT383871MJ322502 L038T25,S95T02,T09T10,T18T2510400040
/2992222B'48N L013T38,T30T31,T32T33,T34T3810400041
MJ36392BV82MJ39089#382089L3790''MJ39089L039T77,T46T50,T57T64,T7104010400042
MJ39094MJ44414BX03FC414409BX03TD4X2396 L038U15,T85T92,T97U04,U0904010400043
BU443961BU563962BU683963.U40BU80393Y L036U51,U24U32,U40U44,04004010400044
BV52BU80394YBV52BU80395YBV52M396V04 L035U86,U56U64,U68U76,U8004010400045
MJ36392D4P3392M%U100'WBX03KBW34LA!77414L039V25,U94V01,V09V14,V1904010400046
S!77392Y391392CJ36392BV01/#J45089 L033V58,V33V40,V47V52,04004010400047
BV714X29BT92MJ39089BT92HW32BW14395Y L035V93,V67V71,V78V82,V8604010400048
BW19394YBW24393Y.W10U%U3RU%U2RU%U1RB000L039W32,W02W10,W14W19,W24W2910400049
NHX02BW663961BW773962BW883963BW99 L033W65,W34W38,W46W54,W6204010400050
A!77433BW99A!77452BW99A!77471BW99B000 L037X02,W73W77,W84W88,W95W9910400051
BV82MJ71230M4142352/299MJ972302 L031X33,X07X14,X21X22,X26X3310400052
/299M471260MMMMM L016X49,X38X45,X46X47,X48X4910400053
2B'63E/332/F1N999999. L021X70,X51X56,X60X61,X63X7010400054
B'48G/332///CK01!0GB!0?S L024X94,X76X80,X81X82,X83X9010400055
,0011B001001,BX99N L018Y12,X99Y00,Y08Y12,04004010400056
SENSE SWITCH B = TAPE DRIVE 1 ONLY L039Y51,040040,040040,04004010400057
L002Y53)Y52Y52,040040,04004010400058
SENSE SWITCH C = TAPE DRIVES 1 & 2 L039Y92,040040,040040,04004010400059
L002Y94)Y93Y93,040040,04004010400060
SENSE SWITCH D = TAPE DRIVES 1 & 2 & 3 L039Z33,040040,040040,04004010400061
L002Z35)Z34Z34,040040,04004010400062
SENSE SWITCH E = LOOP TEST PROGRAM L039Z74,040040,040040,04004010400063
L002Z76)Z75Z75,040040,04004010400064
SENSE SWITCH F = TERMINATE PROGRAM L039!15,040040,040040,04004010400065
L002!17)!16!16,040040,04004010400066
SENSE SWITCH G = RERUN THE PROGRAM AFTEL039!56,040040,040040,04004010400067
R PROGRAM HALT 0N1 L021!77)!57!57,!59!75,!76!7710400068
Y060001200018000 L016!93,!79!84,!89040,04004010400069
SENSE SWITCH ERROR. RESET AND TRY AGAINL039J32,040040,040040,04004010400070
0000000000002NUMBER OF RECORDS WRITTEN L039J71,J37J40,J45J46,04004010400071
TAPE DRIVE ERROR COUNTS SHAY L030K01,J98040,040040,04004010400072
/'48080 0073
BOOTSTRAP FOR CLEAR ,008015,022026,030040/019,001L020100 ,047054,061068,072072)0810811022 1
CLEAR OR BOOTSTRAP ,008047/047046 /000H025B022100 4/061046,054061,068072,0010401040 2
0 PAGE 1
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
101 HEAD MACRO
*************************** START OF HEAD MACRO ************************** GEN
1 AUTOCODER PROGRAM PAGE 2
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
102 JOB AUTOCODER PROGRAM GEN
103 CTL 6611 *6=16,000C;6=16,000T;1=OBJDECK;,1=MODADD GEN
* GEN
104 .READ EQU 001 0001 GEN
105 .PUNCH EQU 101 0101 GEN
106 .PRINT EQU 201 0201 GEN
* GEN
107 ORG 85 0085
108 DCW @X1@ *IDENTIFING FILLER 2 0086 GEN 3
109 X1 DCW 000 *INDEX REGISTER 1 3 0089 GEN 3
110 DCW @X2@ *IDENTIFING FILLER 2 0091 GEN 3
111 X2 DCW 000 *INDEX REGISTER 2 3 0094 GEN 3
112 DCW @X3@ *IDENTIFING FILLER 2 0096 GEN 3
113 X3 DCW 000 *INDEX REGISTER 3 3 0099 GEN 3
* GEN
114 ORG 340 *ORG JUST AFTER PRINT BUFFER 0340
****************************** END OF HEAD MACRO ************************** GEN
115 *
116 TSIZE EQU 004 *SIZE OF TAPE RECORD TO WRITE 0004
117 TBUFF EQU 4000 *PUT THE TAPE BUFFER UP IN HIGH MEMORY 4000
118 *
119 *
120 IDENT DCW @TAPE DEMO PROGRAM VERSION 7.2 03/4/2015@ 39 0378 4
121 GRPMRK DCW @"@ *DEFINE GROUP MARK 1 0379 GMARK 5
122 *
123 RECSIZ DCW 800 3 0382 5
124 TNUMB DCW 0000 4 0386 5
125 SSCNT DCW 0 1 0387 5
126 DUMDRV DCW 0 1 0388 5
127 LOOP DCW 0000 4 0392 5
128 D1 DCW 0 *DID WE USE DRIVE ONE? 1 0393 5
129 D2 DCW 0 *DID WE USE DRIVE TWO? 1 0394 6
130 D3 DCW 0 *DID WE USE DRIVE THREE? 1 0395 6
131 DNOW DCW 0 *WHICH DRIVE ARE WE USING NOW? 1 0396 6
132 TBLKN DSA 800 *800 CHARACTER RECORDS FOR BLANKS 3 0399 800 6 800
133 TRECS DCW @06000@ *6000 8000 CHAR RECS SB 50% OF REEL 5 0404 6
134 MAXREC DCW @00000@ *HOW NMANY TO WRITE 5 0409 6
135 RECWR DCW @00000@ *NUMBER OF RECORDS WRITTEN 5 0414 6
136 DCW @ TAPE DRIVE 1 @ 14 0428 7
137 ERR1 DCW @00000@ *NUMBER OF ERRORS ON DRIVE 1 5 0433 7
138 DCW @ TAPE DRIVE 2 @ 14 0447 7
139 ERR2 DCW @00000@ *NUMBER OF ERRORS ON DRIVE 2 5 0452 7
140 DCW @ TAPE DRIVE 3 @ 14 0466 8
141 ERR3 DCW @00000@ *NUMBER OF ERRORS ON DRIVE 3 5 0471 8
142 RNDTBL EQU * 0471
143 DC @243134383215212616243126211428241812183411112832@ 48 0519 10
144 DC @323418281238261437151834152524371723222937261712@ 48 0567 12
145 DC @273428133118381727283229173323351318393617283312@ 48 0615 14
146 DC @332811252235372426131113113237323729183724182226@ 48 0663 16
147 DC @371334342338192238183827243728261938262727262931@ 48 0711 18
1 AUTOCODER PROGRAM PAGE 3
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
148 DC @272827312323182231332128141411311626343524222213@ 48 0759 20
149 DC @182736282833261629133134123815213213122614282614@ 48 0807 22
150 DC @151611221511383115361413333126271131292337161326@ 48 0855 24
151 DC @193733343126381239181712193116113129361617383421@ 48 0903 26
152 DC @183123253927113718362418141827221215193627371634@ 48 0951 28
153 DC @333119211526213736343228312225282833353138182615@ 48 0999 30
154 DC @261427283434153735391116233312131422162718213699@ 48 1047 32
155 *
156 **********************************************************************
157 *
158 START MCW IDENT,180 *PUT IDENT IN PUNCH BUFFER 7 1048 M 378 180 32 378 180
159 NOP 111,111 *PUT A VALUE IN A AND B 7 1055 N 111 111 32 111 111
160 H *HALT AND WAIT FOR THE OPERATOR 1 1062 . 32
161 START2 NOP 1 1063 N 32
162 CS 332 *CLEAR 332 TO 300 4 1064 / 332 33 332
163 CS *CLEAR 299 TO 200 1 1068 / 33
164 SW 201 *SET WORD MARK FOR PRINTING 4 1069 , 201 33 201
165 *
166 *PRINT HEADING
167 *
168 B SKPRT,E *SKIP IF LOOPING 5 1073 B /70 E 33 1170
169 MCW IDENT,247 7 1078 M 378 247 33 378 247
170 W 1 1085 2 33
171 CS 299 4 1086 / 299 33 299
172 MCW @SENSE SWITCH B = TAPE DRIVE 1 ONLY @,250 7 1090 M Y53 250 34 1853 250
173 W 1 1097 2 34
174 CS 299 4 1098 / 299 34 299
175 MCW @SENSE SWITCH C = TAPE DRIVES 1 & 2 @,250 7 1102 M Y94 250 34 1894 250
176 W 1 1109 2 34
177 CS 299 4 1110 / 299 34 299
178 MCW @SENSE SWITCH D = TAPE DRIVES 1 & 2 & 3 @,250 7 1114 M Z35 250 34 1935 250
179 W 1 1121 2 35
180 CS 299 4 1122 / 299 35 299
181 MCW @SENSE SWITCH E = LOOP TEST PROGRAM @,250 7 1126 M Z76 250 35 1976 250
182 W 1 1133 2 35
183 CS 299 4 1134 / 299 35 299
184 MCW @SENSE SWITCH F = TERMINATE PROGRAM @,250 7 1138 M !17 250 35 2017 250
185 W 1 1145 2 35
186 CS 299 4 1146 / 299 36 299
187 MCW @SENSE SWITCH G = RERUN THE PROGRAM AFTER @,250 7 1150 M !58 250 36 2058 250
188 MCW @PROGRAM HALT @,266 7 1157 M !74 266 36 2074 266
189 W 1 1164 2 36
190 CS 299 4 1165 / 299 36 299
191 W 1 1169 2 36
192 SKPRT MCW @0@,SSCNT *RESET SENSE SWITCH COUNT 7 1170 M !75 387 36 2075 387
193 MCW @N@,D1 *RESET THE DRIVE FLAGS 7 1177 M !76 393 37 2076 393
194 MCW @N@,D2 *RESET THE DRIVE FLAGS 7 1184 M !76 394 37 2076 394
195 MCW @N@,D3 *RESET THE DRIVE FLAGS 7 1191 M !76 395 37 2076 395
196 *
197 B SWB,B *BRANCE IF SS B IS ON 5 1198 B S07 B 37 1207
1 AUTOCODER PROGRAM PAGE 4
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
198 B TSSC *BRANCH TO TEST SS C 4 1203 B S28 37 1228
199 SWB A @1@,SSCNT *ADD 1 TO SS COUNT 7 1207 A !77 387 37 2077 387
200 MCW @Y@,D1 *WE USED DRIVE 1 7 1214 M !78 393 38 2078 393
201 MCW @06000@,MAXREC *WRITE 6000 RECORDS 7 1221 M !83 409 38 2083 409
202 TSSC B SWC,C *BRANCE IF SS C IS ON 5 1228 B S37 C 38 1237
203 B TSSD *BRANCH TO TEST SS D 4 1233 B S65 38 1265
204 SWC A @1@,SSCNT *ADD 1 TO SS COUNT 7 1237 A !77 387 38 2077 387
205 MCW @Y@,D1 *WE USED DRIVE 1 7 1244 M !78 393 38 2078 393
206 MCW @Y@,D2 *WE USED DRIVE 2 7 1251 M !78 394 39 2078 394
207 MCW @12000@,MAXREC *WRITE 12000 RECORDS 7 1258 M !88 409 39 2088 409
208 TSSD B SWD,D *BRANCE IF SS D IS ON 5 1265 B S74 D 39 1274
209 B TSSE *BRANCH TO TEST SS E 4 1270 B T09 39 1309
210 SWD A @1@,SSCNT *ADD 1 TO SS COUNT 7 1274 A !77 387 39 2077 387
211 MCW @Y@,D1 *WE USED DRIVE 1 7 1281 M !78 393 39 2078 393
212 MCW @Y@,D2 *WE USED DRIVE 2 7 1288 M !78 394 40 2078 394
213 MCW @Y@,D3 *WE USED DRIVE 3 7 1295 M !78 395 40 2078 395
214 MCW @18000@,MAXREC *WRITE 18000 RECORDS 7 1302 M !93 409 40 2093 409
215 TSSE NOP *WE DON'T TEST BEYONE HERE 1 1309 N 40
216 BCE RUN,SSCNT,1 *IF WE HAVE NO DRIVES OR TOO MANY 8 1310 B T38 387 1 40 1338 387
217 *****************************************************************
218 * HAD A PROBLEM SO PRINT INSTRUCTIONS
219 *****************************************************************
220 OOPS MCW @SENSE SWITCH ERROR. RESET AND TRY AGAIN@,250 7 1318 M J32 250 40 2132 250
221 W 1 1325 2 40
222 CS 299 *CLEAR PRINT STORAGE 4 1326 / 299 41 299
223 W *SPACE PAPER 1 1330 2 41
224 W *SPACE PAPER 1 1331 2 41
225 W *SPACE PAPER 1 1332 2 41
226 W *SPACE PAPER 1 1333 2 41
227 B START *HALT AND THEN START OVER 4 1334 B '48 41 1048
228 RUN NOP *CLEAN UP OF CODE 1 1338 N 41
229 DOTAP MCW @0000@,LOOP *RESET LOOP COUNTER 7 1339 M J36 392 42 2136 392
230 B REWIND *CALL THE REWIND SUBROUTINE 4 1346 B V82 42 1582
231 MCW @000@,X1 *CLEAR X1 7 1350 M J39 089 42 2139 089
232 MA RECSIZ,X1 *PUT TAPE SIZE IN X1 7 1357 # 382 089 42 382 089
233 LCA GRPMRK,TBUFF&X1 *PUT THE GROUP MARK 7 1364 L 379 0'' 42 379 4000+1
234 * *AND WORD MARK OUT THERE
235 MCW @000@,X1 *CLEAR X1 7 1371 M J39 089 42 2139 089
236 MCW @000@,X2 *CLEAR X2 7 1378 M J39 094 43 2139 094
237 MCW @00000@,RECWR *CLEAR RECORD COUNT 7 1385 M J44 414 43 2144 414
238 DOTAP2 B DONE,F *DONE DOING WHAT YOU 5 1392 B X03 F 43 1703
239 * *ARE DOING IF SS F SET
240 C RECWR,MAXREC *SEE IF WE HAVE WRITTEN THE MAX 7 1397 C 414 409 43 414 409
241 BL DONE *YES WE HAVE 5 1404 B X03 T 43 1703
242 MN RNDTBL&1&X1,DNOW *PICK UP THE DRIVE INDICATOR 7 1409 D 4X2 396 43 472+1 396
243 BCE CK1,DNOW,1 *CHECK IF DRIVE 1 8 1416 B U44 396 1 44 1444 396
244 BCE CK2,DNOW,2 *CHECK IF DRIVE 2 8 1424 B U56 396 2 44 1456 396
245 BCE CK3,DNOW,3 *CHECK IF DRIVE 3 8 1432 B U68 396 3 44 1468 396
246 H *-3 *JUST IN CASE 4 1440 . U40 44 1440
247 CK1 BCE DRVOK,D1,Y *IT IS READY 8 1444 B U80 393 Y 44 1480 393
1 AUTOCODER PROGRAM PAGE 5
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
248 B WRITE3 *BYPASS 4 1452 B V52 45 1552
249 CK2 BCE DRVOK,D2,Y *IT IS READY 8 1456 B U80 394 Y 45 1480 394
250 B WRITE3 *BYPASS 4 1464 B V52 45 1552
251 CK3 BCE DRVOK,D3,Y *IT IS READY 8 1468 B U80 395 Y 45 1480 395
252 B WRITE3 *BYPASS 4 1476 B V52 45 1552
253 DRVOK MCW DNOW,WRITE&3 *MODIFY THE WRITE INSTRUCTION 7 1480 M 396 V04 45 396 1504
254 MCW @0000@,LOOP *RESET LOOP COUNTER 7 1487 M J36 392 46 2136 392
255 MN RNDTBL&2&X2,LOOP *SET UP THE LOOP 7 1494 D 4P3 392 46 473+2 392
256 *
257 *
258 * WRITE TAPE
259 *
260 WRITE WT 1,TBUFF *WRITE THE TAPE RECORD 8 1501 M %U1 00' W 46 %U1 4000
261 *
262 * THE ABOVE INSTRUCTION IS MODIFIED IN REAL TIME
263 *
264 B DONE,K *DONE IF END OF REEL 5 1509 B X03 K 46 1703
265 B TERR,L *BRANCH ON TAPE ERROR 5 1514 B W34 L 46 1634
266 A @1@,RECWR *ADD 1 TO RECORDS WRITTEN 7 1519 A !77 414 46 2077 414
267 S @1@,LOOP *SUBTRACT 1 FROM NUMBER 7 1526 S !77 392 47 2077 392
268 MZ LOOP-1,LOOP *CLEAR ZONE 7 1533 Y 391 392 47 391 392
269 C @0000@,LOOP *HAVE WE HIT ZERO? 7 1540 C J36 392 47 2136 392
270 BU WRITE *NO, WRITE ANOTHER 5 1547 B V01 / 47 1501
271 WRITE3 MA @2@,X1 *INCREMENT X1 FOR NEXT COMMAND 7 1552 # J45 089 47 2145 089
272 BCE RESET,RNDTBL&1&X1,9 *END OF TABLE? 8 1559 B V71 4X2 9 48 1571 472+1
273 B DOTAP2 *LETS GET THE NEXT 4 1567 B T92 48 1392
274 RESET MCW @000@,X1 *RESET X1 7 1571 M J39 089 48 2139 089
275 B DOTAP2 *LETS GET THE NEXT 4 1578 B T92 48 1392
276 *******************************************************************
277 REWIND SBR REWX&3 *SET RETURN ADDRESS 4 1582 H W32 48 1632
278 BCE RT3,D3,Y *THREE TAPES? 8 1586 B W14 395 Y 48 1614 395
279 BCE RT2,D2,Y *TWO TAPES? 8 1594 B W19 394 Y 49 1619 394
280 BCE RT1,D1,Y *ONLY ONE TAPE? 8 1602 B W24 393 Y 49 1624 393
281 H *-3 *JUST IN CASE OF ERROR 4 1610 . W10 49 1610
282 RT3 RWD 3 *REWIND TAPE 3 5 1614 U %U3 R 49 %U3
283 RT2 RWD 2 *REWIND TAPE 2 5 1619 U %U2 R 49 %U2
284 RT1 RWD 1 *REWIND TAPE 1 5 1624 U %U1 R 49 %U1
285 REWX B 000 *RETURN ADDRESS 4 1629 B 000 49 000
286 NOP 1 1633 N 50
287 TERR SBR TERX&3 *SET RETURN ADDRESS 4 1634 H X02 50 1702
288 BCE TE1,DNOW,1 *ARE WE WORKING WITH DRIVE 1? 8 1638 B W66 396 1 50 1666 396
289 BCE TE2,DNOW,2 *ARE WE WORKING WITH DRIVE 2? 8 1646 B W77 396 2 50 1677 396
290 BCE TE3,DNOW,3 *ARE WE WORKING WITH DRIVE 3? 8 1654 B W88 396 3 50 1688 396
291 B TERX *SHOULD NOT BE HERE BUT? 4 1662 B W99 50 1699
292 TE1 A @1@,ERR1 *INCREMENT ERR COUNT FOR DRIVE 1 7 1666 A !77 433 51 2077 433
293 B TERX *EXIT 4 1673 B W99 51 1699
294 TE2 A @1@,ERR2 *INCREMENT ERR COUNT FOR DRIVE 2 7 1677 A !77 452 51 2077 452
295 B TERX *EXIT 4 1684 B W99 51 1699
296 TE3 A @1@,ERR3 *INCREMENT ERR COUNT FOR DRIVE 3 7 1688 A !77 471 51 2077 471
297 B TERX *EXIT 4 1695 B W99 51 1699
1 AUTOCODER PROGRAM PAGE 6
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
298 TERX B 000 *RETURN ADDRESS 4 1699 B 000 51 000
299 *
300 *
301 *
302 * WE ARE DONE
303 *
304 DONE B REWIND *CALL THE REWIND SUBROUTINE 4 1703 B V82 52 1582
305 MCW @NUMBER OF RECORDS WRITTEN @,230 7 1707 M J71 230 52 2171 230
306 MCW RECWR,235 *SET THE NUMBER 7 1714 M 414 235 52 414 235
307 W *PRINT 1 1721 2 52
308 CS 299 *CLEAR PRINT 4 1722 / 299 52 299
309 MCW @TAPE DRIVE ERROR COUNTS @,230 7 1726 M J97 230 52 2197 230
310 W *PRINT 1 1733 2 52
311 CS 299 *CLEAR PRINT 4 1734 / 299 53 299
312 MCW ERR3,260 *MOVE IN DATA FOR 3 DRIVES 7 1738 M 471 260 53 471 260
313 MCW *CHAIN 1 1745 M 53
314 MCW *CHAIN 1 1746 M 53
315 MCW *CHAIN 1 1747 M 53
316 MCW *CHAIN 1 1748 M 53
317 MCW *CHAIN 1 1749 M 53
318 W 1 1750 2 54
319 B START2,E *IF WE ARE LOOPING 5 1751 B '63 E 54 1063
320 CS 332 4 1756 / 332 54 332
321 CS 1 1760 / 54
322 CC 1 *TOP OF FORMS 2 1761 F 1 54
323 EXIT MACRO
********************************** START OF EXIT MACRO ************* GEN
324 EXIT NOP 999,999 *LOAD THE A AND B REGISTERS 7 1763 N 999 999 GEN 54 999 999
325 H *HALT OR I WILL SHOOT 1 1770 . GEN 54
* GEN
326 B START,G *IF G IS ON, RETURN TO START 5 1771 B '48 G GEN 55 1048
327 CS 332 *CLEAR PRINT STORAGE 4 1776 / 332 GEN 55 332
328 CS *CLEAR PRINT STORAGE 1 1780 / GEN 55
329 CS *CLEAR PUNCH STORAGE 1 1781 / GEN 55
330 CS *CLEAR READ STORAGE 1 1782 / GEN 55
* GEN
331 C @SHAY@,14007 *WERE WE LOADED WITH THE LOADER? 7 1783 C K01 !0G GEN 55 2201 14007
332 BE 14000 *YES WE WERE. TURN CONTROL 5 1790 B !0? S GEN 55 14000
* OTHERWISE..... *BACK TO THE LOADER GEN
* GET READY TO BOOT FROM THE FOLLOWING DECK GEN
* GEN
333 SW 001 *SET WORDMARK IN LOCATION 1 4 1795 , 001 GEN 56 001
334 EXRED R *READ FIRST CARD OF NEXT DECK 1 1799 1 GEN 56
335 BCE 001,001,, *IS IT A COMMA? 8 1800 B 001 001 , GEN 56 001 001
* *BRANCH TO THE FIRST INSTRUCTION GEN
336 B EXRED *CHECK THE NEXT ONE 4 1808 B X99 GEN 56 1799
337 NOP 1 1812 N GEN 56
*********************** END OF EXIT MACRO************************* GEN
* GEN
338 *
1 AUTOCODER PROGRAM PAGE 7
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD A-ADDR B-ADDR
339 *************************************************
DCW @SENSE SWITCH B = TAPE DRIVE 1 ONLY @ 41 1853 LIT 58
DCW @SENSE SWITCH C = TAPE DRIVES 1 & 2 @ 41 1894 LIT 60
DCW @SENSE SWITCH D = TAPE DRIVES 1 & 2 & 3 @ 41 1935 LIT 62
DCW @SENSE SWITCH E = LOOP TEST PROGRAM @ 41 1976 LIT 64
DCW @SENSE SWITCH F = TERMINATE PROGRAM @ 41 2017 LIT 66
DCW @SENSE SWITCH G = RERUN THE PROGRAM AFTER @ 41 2058 LIT 68
DCW @PROGRAM HALT @ 16 2074 LIT 68
DCW @0@ 1 2075 LIT 68
DCW @N@ 1 2076 LIT 68
DCW @1@ 1 2077 LIT 68
DCW @Y@ 1 2078 LIT 69
DCW @06000@ 5 2083 LIT 69
DCW @12000@ 5 2088 LIT 69
DCW @18000@ 5 2093 LIT 69
DCW @SENSE SWITCH ERROR. RESET AND TRY AGAIN@ 39 2132 LIT 70
DCW @0000@ 4 2136 LIT 71
DCW @000@ 3 2139 LIT 71
DCW @00000@ 5 2144 LIT 71
DCW @2@ 1 2145 LIT 71
DCW @NUMBER OF RECORDS WRITTEN @ 26 2171 LIT 71
DCW @TAPE DRIVE ERROR COUNTS @ 26 2197 LIT 72
DCW @SHAY@ 4 2201 LIT 72
340 END START / '48 080 1048
1 PAGE 8
0SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS
.PRINT 0201: 0 .PUNCH 0101: 0 .READ 0001: 0 CK1 1444: 0 CK2 1456: 0 CK3 1468: 0
D1 0393: 0 D2 0394: 0 D3 0395: 0 DNOW 0396: 0 DONE 1703: 0 DOTAP 1339: 0
DOTAP2 1392: 0 DRVOK 1480: 0 DUMDRV 0388: 0 ERR1 0433: 0 ERR2 0452: 0 ERR3 0471: 0
EXIT 1763: 0 EXRED 1799: 0 GRPMRK 0379: 0 IDENT 0378: 0 LOOP 0392: 0 MAXREC 0409: 0
OOPS 1318: 0 RECSIZ 0382: 0 RECWR 0414: 0 RESET 1571: 0 REWIND 1582: 0 REWX 1629: 0
RNDTBL 0471: 0 RT1 1624: 0 RT2 1619: 0 RT3 1614: 0 RUN 1338: 0 SKPRT 1170: 0
SSCNT 0387: 0 START 1048: 0 START2 1063: 0 SWB 1207: 0 SWC 1237: 0 SWD 1274: 0
TBLKN 0399: 0 TBUFF 4000: 0 TE1 1666: 0 TE2 1677: 0 TE3 1688: 0 TERR 1634: 0
TERX 1699: 0 TNUMB 0386: 0 TRECS 0404: 0 TSIZE 0004: 0 TSSC 1228: 0 TSSD 1265: 0
TSSE 1309: 0 WRITE 1501: 0 WRITE3 1552: 0 X1 0089: 0 X2 0094: 0 X3 0099: 0
0UNREFERENCED SYMBOLS
.PRINT .PUNCH .READ DOTAP DUMDRV EXIT OOPS TBLKN TNUMB TRECS TSIZE X3
TAPE DEMO PROGRAM VERSION 7.2 03/4/2015
SENSE SWITCH B = TAPE DRIVE 1 ONLY
SENSE SWITCH C = TAPE DRIVES 1 & 2
SENSE SWITCH D = TAPE DRIVES 1 & 2 & 3
SENSE SWITCH E = LOOP TEST PROGRAM
SENSE SWITCH F = TERMINATE PROGRAM
SENSE SWITCH G = RERUN THE PROGRAM AFTER PROGRAM HALT
NUMBER OF RECORDS WRITTEN 18004
TAPE DRIVE ERROR COUNTS
TAPE DRIVE 1 00000 TAPE DRIVE 2 00000 TAPE DRIVE 3 00000
README file for Tape Demo
Saturday, March 07, 2015
Tape Demo is a demonstration program run on the IBM 1401 computer.
The IBM 1401 uses tapes to store large amounts of data.
When processing that data, the each active tape drive would randomly
be sleected and read or write data.
This program makes the dape drices appear to be working very hard.
The program supports the use of one, two or three drives.
When a tape drive is selected, 1 to 9 records are written to the drive.
After a half a reel of tape has been written, the tape drives go into high-speed rewwind.
The program uses the IBM 1401 sense switches to control the actions of the program.
SENSE SWITCH A = (NOT USED)
SENSE SWITCH B = TAPE DRIVE 1 ONLY
SENSE SWITCH C = TAPE DRIVES 1 & 2
SENSE SWITCH D = TAPE DRIVES 1 & 2 & 3
SENSE SWITCH E = LOOP TEST PROGRAM
SENSE SWITCH F = TERMINATE PROGRAM
The program will terminate with a halt.
If you want to run it again, set sense switch H on, and press start.
If you don’t want to run it again, leave sense switch H off and when you press start,
it will look for and read in the next program.
JOB PI DEMO
* HISTORY
* 00 WORKS - 4 BUFFERS
* 05 SHORTEN TO 500 DIGITS
* TIMER SAYS 3.5 MINUTES RUNNING TIME
* PRESENT PURPOSE
* MAKE PSEUDO-CODE OF FUNCTION AND FLOW
* RE-RUNABLE, ANY NON-CONSTANT MUST BE INITIALIZED
* SPEC:
* A) BE ABLE TO REPEATED RUN, BUT HALT DOES NOT GO TO NEXT STEP??
* B) SEPERATE DECKS FOR VARIOUS SIZES WHICH AFFECTS RUNNING TIME
* INITIAL = SIZE 500
*
* C) PRINT 25 CHARACTER LINE AS SOON AS COMPUTED
* DO NOT PRINT SUB LINES, VISITORS DO NOT HEAR THEM
* GENERAL FLOW
* INITIALIZE - ACCUMULATOR, ADDSUB CONTOL, DIVISORS, ...
*
* SO, D0 BUFFFER SIZE 2020 CHARACTERS
* INITIAL DEBUG, BEFORE VARIABLE SIZE WITH THAT
* TRY STANDARD ON 50 DIGITS/LINE, MAY HAVE TO GO TO 20??
*
* PSEUDO-CODE
*
* START INITIALIZE (400)
* COMPUTE 1 ITERATION ATAN (1/5) B5 + 1 DIGIT
* L1 COMPUTE 1 ITERATION ATAN (1/5) B5 + 1 DIGIT
* IF ZB5 < ZB239 THEN L1
* COMPUTE 1 ITERATION ATAN (1/239) B239 + 4 DIGIT
* IF ZB5 > PNTCNT+31 GO TO L1
* CALL PRINTD
* IF PNTCNT < 500 GOTO L1
* PRINT TOP OF FORM
* IF SWITCH G SET, GO TO START
* HALT
* BR START
*
CTL 6611 *6=16,000C;6=16,000T;1=OBJDECK;,1=MODADD
* 1 2 3 4 5 6 7 8
*78901234567890123456789012345678901234567890123456789012345678901234567890
* label | op | OPERATION |xxxxxxx
ORG 87
X1 DSA 0 index register 1
ORG 92
X2 DSA 0 index register 2
ORG 97
X3 DSA 0 index register 3
*
* start storage areas
* small areas
ORG 100 * PUT SMALL STUFF IN PUNCH AREA
ZB5 DCW 000000 * NUMBER OF LEADING ZEROS IN B5
ZB239 DCW 000000 * NUMBER OF LEADING ZEROS IN B239
B5WD DCW 000000 * DIVISOR FOR WORKING AREA FOR B5 OPERATIONS
B239WD DCW 000000 * DIVISOR FOR WORKING AREA FOR B239 OPERATIONS
AF5 DCW 1 * "1"=ADD, "0" OR OTHER = SUBTRACT B5 OPS
AF239 DCW 0 * "1"=ADD, "0" OR OTHER = SUBTRACT B239 OPS
PRTCNT DCW 000000 * ITERATION COUNTER, STARTS AT ZERO, INC 50
LSTCHR DCW 000000 * LAST PRINTED CHAR
LIMPCT DCW 000500 * LIMIT OF PRINT COUNT
C0 DCW 000000
C1 DCW 000001
C2 DCW 000002
C5 DCW 000005
C25 DCW 000025
C239 DCW 000239
C239P2 DCW 057121
LC0L9 DCW 000000000
*
ORG 400
*
START BIN INIT,B * BRANCH IF SENSE SWITCH B ON
*
INIT MCW C0,ZB5 * ZERO LEADING ZEROS
MCW C0,ZB239
MCW C0,PRTCNT
MCW @30@,LSTCHR
T1 B ATN5 * CALL ONE ITTERATION OF +16ATN(1/5)
C ZB239,ZB5 *
BL T1
B ATN239 * CALL ONE ITTERATION OF -4ATN(1/239)
C ZB5,LSTCHR * SEE IF TIME TO PRINT %%%%%%%%%%%%%%
BH T1
B PRINTD * CALL PRINT A LINE
A @25@,LSTCHR
C PRTCNT,LIMPCT
BU T1
H 000 * DONE FOR NOW
H 000
*
*
ATN5 SBR ATN5X&3 * SET UP RETURN
C C0,ZB5 * CHECK FOR 1ST TIME THROUGH
BU PH1L
MCW @000001@,B5WD * INIT INTER DIVISOR
MCW @+@,ACCUM&519 * ZERO ACCUMULATOR
MCW @0@,ACCUM&518
MCW ACCUM&518,ACCUM&517
MCW @0@,B5&518 * INITIALIZE B5
MCW B5&518,B5&517
MCW @80@,B5&8 * SET A HIGH ORDER TO 1*5*16
MCW @006@,X1 * INIT X1 FOR B5
MCW @1@,AF5 * SET ADD B5 FLAG TO ADD FIRST
PH1L MCW @+@,B5&519 * SET POSITIVE SIGN
D C25,B5&X1 * DIVISION OF B5
MCW B5&512,B5&519 * SHIFT QUOTIENT
MCW LC0L9,B5&X1 * REMOVE UNSHIFTED
MCW B5&519,INTER&519 * MOVE QUOTIENT TO INTERMEDIATE
MCW @+@,INTER&519 * SET POSITIVE SIGN
D B5WD,INTER&X1 * DIVIDE INTERMEDIATE
MCW INTER&512,INTER&519 * SHIFT INTERMEDIATE
MCW LC0L9,INTER&X1 * REMOVE UNSHIFTED
MCW @+@,INTER&519 * SET UP BASE
BCE PH1ADD,AF5,1 * COMPARE FOR ADD
PH1SUB MCW @1@,AF5 * SET NEXT ADD
S INTER&519,ACCUM&519 * DO THE SUBTRACTION
B PH1W * GO TO WRAP-UP
PH1ADD A INTER&519,ACCUM&519 * ADD TO ACCUMULATOR
MCW @0@,AF5 * SET NEXT SUBTRACT
PH1W A C2,B5WD * FORM NEXT DIVISOR FOR INTER
PH1BCE BCE PH1X1,B5&X1,0 * CHAR = 0, DONE?
ATN5X B 000 * GO DO ANOTHER LOOP PASS
PH1X1 A C1,ZB5 * INCREMENT # LEADING ZEROS
SBR X1,1&X1 * INCREMENT X1
C ZB5,@510@ * CHECK END
BU PH1BCE * NO, CHECK MORE ZEROS
B ATN5X * DONE WITH PASS 1
*
* -------------------------------------------------------------
ATN239 SBR AT239X&3 * SET UP RETURN EXIT
C C0,ZB239
BU PH2L
MCW @000000@,ZB239 * ZERO ITERATION CNTR
MCW @000001@,B239WD * INIT INTER DIVISOR
MCW C0,ZB239 * CLEAR LEADING ZERO COUNTER
MCW @0@,AF239 * SET ADD B5 FLAG TO SUBTRACE FIRST
* DO NOT ZERO ACCUMULATOR
MCW @0@,B239&518
MCW B239&518,B239&517
MCW @956@,B239&8 * SET A HIGH ORDER TO 1*4*239
MCW @0@,AF239 * SET NEXT SUBTRACT
MCW @006@,X2
PH2L MCW @+@,B239&519 * SET POSITIVE SIGN
D C239P2,B239&X2 * TRIAL ARITH
MCW B239&512,B239&519 * SHIFT QUOTIENT
MCW LC0L9,B239&X2 * REMOVE UNSHIFTED
MCW B239&519,INTER&519 * MOVE QUOTIENT TO NEXT
MCW @+@,INTER&519 * SET POSITIVE SIGN
D B239WD,INTER&X2 DIVIDE INTERMEDIATE
MCW INTER&512,INTER&519 * SHIFT INTERMEDIATE
MCW LC0L9,INTER&X2 * REMOVE UNSHIFTED
MCW @+@,INTER&519 * SET UP BASE
BCE PH2ADD,AF239,1 * COMPARE FOR ADD
PH2SUB MCW @1@,AF239 * SET NEXT ADD
S INTER&519,ACCUM&519 * DO THE SUBTRACTION
B PH2W * GO TO WRAP-UP
PH2ADD A INTER&519,ACCUM&519 * ADD TO ACCUMULATOR
MCW @0@,AF239 * SET NEXT SUBTRACT
PH2W A C2,B239WD * FORM NEXT WORKING DIVISOR
PH2BCE BCE PH2X2,B239&X2,0 * CHAR = 0, DONE?
B AT239X * GO DO ANOTHER LOOP PASS
PH2X2 A @1@,ZB239 * INCREMENT # LEADING ZEROS
SBR X2,1&X2 * INCREMENT X2
B PH2BCE * NO, CHECK MORE ZEROS
AT239X B 000 * DONE WITH PASS 2
* NOW WE PRINT THAT BABY OUT :-))
* PROPOSED FORMAT
* 2
* 0 1 2 3 4 5 6 7 8
* 12345678901234567890123456789012345678901234567890123456789012345678901234567890
* 3. * 10E-00000
* + NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN * 10E-00050
* + NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN * 10E-00100
*
PRINTD SBR PRINTX&3 * SET UP RETURN EXIT
C C0,PRTCNT * NEED INITIALIZATION ?
BU PR1LOP * NO
MCW @008@,X3 * CLEAR PICKUP X
MCW C0,PRTCNT * CLEAR TOTAL CH MOVED
CS 332 * start clearing down to 200, PRINT AREA
CS
MCW @. * 10E-00000@,244
SW 227,265 * SET WORD MARK IN EXPONENT FIELD
MCW ACCUM&X3,231 MOVE 5TH FIELD
SBR X3,5&X3 * STEP X1
W *write the print area to the printer
*
PR1LOP CS 231 * CLEAR PREVIOUS NUMERICS
SW 203,209 * SET WORD MARKS FOR B FIELD
SW 215,221
SW 227,240
A @00025@,244 * ADD 25 TO EXPONENT
MCW ACCUM&X3,207 MOVE 1ST FIELD
SBR X3,5&X3 * STEP X3
MCW ACCUM&X3,213 MOVE 2ND FIELD
SBR X3,5&X3 * STEP X3
MCW ACCUM&X3,219 MOVE 3RD FIELD
SBR X3,5&X3 * STEP X3
MCW ACCUM&X3,225 MOVE 4TH FIELD
SBR X3,5&X3 * STEP X3
MCW ACCUM&X3,231 MOVE 5TH FIELD
SBR X3,5&X3 * STEP X3
W *write the print area to the printer
A @000025@,PRTCNT * ADD 25 TO TOTAL DIGITS
PRINTX B 000
*
* large areas Ron Mak says that blanks process as zeros
ORG 2000
*FLDLEN EQU 520 * LENGTH OF THE 3 BIG FIELDS
B5 DA 1X520 * BASE, 1ST DIVISION HERE
ORG 3000
B239 DA 1X520 * PARALLEL BUFFER FOR ATAN (1/239)
ORG 4000
INTER DA 1X520 * INTERMEDIATE BUFFER, 2ND DIVISION HERE
ORG 5000
ACCUM DA 1X520 * ACCUMULATOR, ANSWER IS FORMED HERE
* 1 2 3 4 5 6 7 8
*78901234567890123456789012345678901234567890123456789012345678901234567890
* label | op | OPERATION |xxxxxxx
*
*** Nov 15
* Machin's method -
* PI = 16arctan(1/5) - 4arctan(1/239)
* An arctan series is 1/n - 1/(3xn^3) + 1/(5xn^5) - ...
*
*** Nov 16
* In any case,
*Lets do arctan(x), x = 1/5
* 0.19739555984988075837004976519479
*then 16ARCTAN(1/5)
* 3.1583289575980921339207962431166
* then aectan(1/239)
* 0.0041840760020747238645382149592855
* times 4
* 0.016736304008298895458152859837142
* Pi =
* 3.1415926535897932384626433832795
* :-))
*
* Set N to 1/x = 5 (this is the fancy footwork :-))
*
* 1) a) form three large as practical equal sized areas in memory.
* lets call them "Accumulator", ACCUM
* "Intermediate", INTER
* "Base of next term" BASET
* b) form smaller working areas
* iteration counter ITCNT used for observation
* starts at zero, counts up after a pass
* divisor of BASET, DIVBAS, usually 5^2 or 239^2
* 5^2 = 25, 239^2 = 57121
* add/subtract control flag, CF , toggled after a pass
* 0 means add, other is subtract
* divisor of INTER is IX2P1 , ITCNT times 2 plus 1
*
* 2) figure where the decimal point will be
* (same relative place in each area)
* ( several characters or words to the "right" of
* the top significance.)
*
* 3) a) zero the ACCUM
* b) ( INTER does not need initialization)
* c) set X (5.0 in our example) into BASET
* d) set counter N to 1
*
* 4) While BASET is non-zero
* a) Divide BASET by X^2 ( 25 in our example ) giving BASET
* b) Divide BASET by (2xN - 1) giving INTER
* c) If N is odd, add Intermediate to Accumulator
* else, subtract Intermediate from Accumulator
* d) Add 1 to N (assure that machine can divide by 2N)
*
* 5) Accumulator is a fine approximation of arctan(x) ;-))
END START * LAST CARD IN DECK, TRANSFER ADDRESS
CLEAR STORAGE 1 ,008015,022026,030037,044,049,053053N000000N00001026 1
CLEAR STORAGE 2 L068116,105106,110117B101/I9I#071029C029056B026/B001/0991,001/001117I0? 2
BOOTSTRAP ,008015,022029,036040,047054,061068,072/061039 ,0010011040 3
0 PI DEMO PAGE 1
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
101 JOB PI DEMO
102 * HISTORY
103 * 00 WORKS - 4 BUFFERS
104 * 05 SHORTEN TO 500 DIGITS
105 * TIMER SAYS 3.5 MINUTES RUNNING TIME
106 * PRESENT PURPOSE
107 * MAKE PSEUDO-CODE OF FUNCTION AND FLOW
108 * RE-RUNABLE, ANY NON-CONSTANT MUST BE INITIALIZED
109 * SPEC:
110 * A) BE ABLE TO REPEATED RUN, BUT HALT DOES NOT GO TO NEXT STEP??
111 * B) SEPERATE DECKS FOR VARIOUS SIZES WHICH AFFECTS RUNNING TIME
112 * INITIAL = SIZE 500
113 *
114 * C) PRINT 25 CHARACTER LINE AS SOON AS COMPUTED
115 * DO NOT PRINT SUB LINES, VISITORS DO NOT HEAR THEM
116 * GENERAL FLOW
117 * INITIALIZE - ACCUMULATOR, ADDSUB CONTOL, DIVISORS, ...
118 *
119 * SO, D0 BUFFFER SIZE 2020 CHARACTERS
120 * INITIAL DEBUG, BEFORE VARIABLE SIZE WITH THAT
121 * TRY STANDARD ON 50 DIGITS/LINE, MAY HAVE TO GO TO 20??
122 *
123 * PSEUDO-CODE
124 *
125 * START INITIALIZE (400)
126 * COMPUTE 1 ITERATION ATAN (1/5) B5 + 1 DIGIT
127 * L1 COMPUTE 1 ITERATION ATAN (1/5) B5 + 1 DIGIT
128 * IF ZB5 < ZB239 THEN L1
129 * COMPUTE 1 ITERATION ATAN (1/239) B239 + 4 DIGIT
130 * IF ZB5 > PNTCNT+31 GO TO L1
131 * CALL PRINTD
132 * IF PNTCNT < 500 GOTO L1
133 * PRINT TOP OF FORM
134 * IF SWITCH G SET, GO TO START
135 * HALT
136 * BR START
137 *
138 CTL 6611 *6=16,000C;6=16,000T;1=OBJDECK;,1=MODADD
139 * 1 2 3 4 5 6 7 8
140 *78901234567890123456789012345678901234567890123456789012345678901234567890
141 * LABEL | OP | OPERATION |XXXXXXX
142 ORG 87 0087
143 X1 DSA 0 INDEX REGISTER 1 3 0089 000 4
144 ORG 92 0092
145 X2 DSA 0 INDEX REGISTER 2 3 0094 000 5
146 ORG 97 0097
147 X3 DSA 0 INDEX REGISTER 3 3 0099 000 6
1 PI DEMO PAGE 2
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
148 *
149 * START STORAGE AREAS
150 * SMALL AREAS
151 ORG 100 * PUT SMALL STUFF IN PUNCH AREA 0100
152 ZB5 DCW 000000 * NUMBER OF LEADING ZEROS IN B5 6 0105 6
153 ZB239 DCW 000000 * NUMBER OF LEADING ZEROS IN B239 6 0111 6
154 B5WD DCW 000000 * DIVISOR FOR WORKING AREA FOR B5 OPERATIONS 6 0117 6
155 B239WD DCW 000000 * DIVISOR FOR WORKING AREA FOR B239 OPERATIO 6 0123 6
156 AF5 DCW 1 * "1"=ADD, "0" OR OTHER = SUBTRACT B5 OPS 1 0124 6
157 AF239 DCW 0 * "1"=ADD, "0" OR OTHER = SUBTRACT B239 O 1 0125 6
158 PRTCNT DCW 000000 * ITERATION COUNTER, STARTS AT ZERO, INC 5 6 0131 7
159 LSTCHR DCW 000000 * LAST PRINTED CHAR 6 0137 7
160 LIMPCT DCW 000500 * LIMIT OF PRINT COUNT 6 0143 7
161 C0 DCW 000000 6 0149 7
162 C1 DCW 000001 6 0155 7
163 C2 DCW 000002 6 0161 7
164 C5 DCW 000005 6 0167 8
165 C25 DCW 000025 6 0173 8
166 C239 DCW 000239 6 0179 8
167 C239P2 DCW 057121 6 0185 8
168 LC0L9 DCW 000000000 9 0194 8
169 *
170 ORG 400 0400
171 *
172 START BIN INIT,B * BRANCH IF SENSE SWITCH B ON 5 0400 B 405 B 9
173 *
174 INIT MCW C0,ZB5 * ZERO LEADING ZEROS 7 0405 M 149 105 9
175 MCW C0,ZB239 7 0412 M 149 111 9
176 MCW C0,PRTCNT 7 0419 M 149 131 9
177 MCW @30@,LSTCHR 7 0426 M V2/ 137 9
178 T1 B ATN5 * CALL ONE ITTERATION OF +16ATN(1/5) 4 0433 B 496 9
179 C ZB239,ZB5 * 7 0437 C 111 105 10
180 BL T1 5 0444 B 433 T 10
181 B ATN239 * CALL ONE ITTERATION OF -4ATN(1/239) 4 0449 B 734 10
182 C ZB5,LSTCHR * SEE IF TIME TO PRINT %%%%%%%%%%%%%% 7 0453 C 105 137 10
183 BH T1 5 0460 B 433 U 10
184 B PRINTD * CALL PRINT A LINE 4 0465 B 964 10
185 A @25@,LSTCHR 7 0469 A V2T 137 10
186 C PRTCNT,LIMPCT 7 0476 C 131 143 11
187 BU T1 5 0483 B 433 / 11
188 H 000 * DONE FOR NOW 4 0488 . 000 11
189 H 000 4 0492 . 000 11
190 *
191 *
192 ATN5 SBR ATN5X&3 * SET UP RETURN 4 0496 H 703 11
193 C C0,ZB5 * CHECK FOR 1ST TIME THROUGH 7 0500 C 149 105 11
194 BU PH1L 5 0507 B 575 / 11
195 MCW @000001@,B5WD * INIT INTER DIVISOR 7 0512 M V2Z 117 12
196 MCW @+@,ACCUM&519 * ZERO ACCUMULATOR 7 0519 M V3' V1Z 12
197 MCW @0@,ACCUM&518 7 0526 M V3/ V1Y 12
1 PI DEMO PAGE 3
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
198 MCW ACCUM&518,ACCUM&517 7 0533 M V1Y V1X 12
199 MCW @0@,B5&518 * INITIALIZE B5 7 0540 M V3/ N18 12
200 MCW B5&518,B5&517 7 0547 M N18 N17 13
201 MCW @80@,B5&8 * SET A HIGH ORDER TO 1*5*16 7 0554 M V3T !08 13
202 MCW @006@,X1 * INIT X1 FOR B5 7 0561 M V3W 089 13
203 MCW @1@,AF5 * SET ADD B5 FLAG TO ADD FIRST 7 0568 M V3X 124 13
204 PH1L MCW @+@,B5&519 * SET POSITIVE SIGN 7 0575 M V3' N19 13
205 D C25,B5&X1 * DIVISION OF B5 7 0582 % 173 !'0 14
206 MCW B5&512,B5&519 * SHIFT QUOTIENT 7 0589 M N12 N19 14
207 MCW LC0L9,B5&X1 * REMOVE UNSHIFTED 7 0596 M 194 !'0 14
208 MCW B5&519,INTER&519 * MOVE QUOTIENT TO INTERMEDIATE 7 0603 M N19 51Z 14
209 MCW @+@,INTER&519 * SET POSITIVE SIGN 7 0610 M V3' 51Z 14
210 D B5WD,INTER&X1 * DIVIDE INTERMEDIATE 7 0617 % 117 0'' 15
211 MCW INTER&512,INTER&519 * SHIFT INTERMEDIATE 7 0624 M 51S 51Z 15
212 MCW LC0L9,INTER&X1 * REMOVE UNSHIFTED 7 0631 M 194 0'' 15
213 MCW @+@,INTER&519 * SET UP BASE 7 0638 M V3' 51Z 15
214 BCE PH1ADD,AF5,1 * COMPARE FOR ADD 8 0645 B 671 124 1 15
215 PH1SUB MCW @1@,AF5 * SET NEXT ADD 7 0653 M V3X 124 16
216 S INTER&519,ACCUM&519 * DO THE SUBTRACTION 7 0660 S 51Z V1Z 16
217 B PH1W * GO TO WRAP-UP 4 0667 B 685 16
218 PH1ADD A INTER&519,ACCUM&519 * ADD TO ACCUMULATOR 7 0671 A 51Z V1Z 16
219 MCW @0@,AF5 * SET NEXT SUBTRACT 7 0678 M V3/ 124 16
220 PH1W A C2,B5WD * FORM NEXT DIVISOR FOR INTER 7 0685 A 161 117 16
221 PH1BCE BCE PH1X1,B5&X1,0 * CHAR = 0, DONE? 8 0692 B 704 !'0 0 17
222 ATN5X B 000 * GO DO ANOTHER LOOP PASS 4 0700 B 000 17
223 PH1X1 A C1,ZB5 * INCREMENT # LEADING ZEROS 7 0704 A 155 105 17
224 SBR X1,1&X1 * INCREMENT X1 7 0711 H 089 0'1 17
225 C ZB5,@510@ * CHECK END 7 0718 C 105 V4' 17
226 BU PH1BCE * NO, CHECK MORE ZEROS 5 0725 B 692 / 17
227 B ATN5X * DONE WITH PASS 1 4 0730 B 700 18
228 *
229 * -------------------------------------------------------------
230 ATN239 SBR AT239X&3 * SET UP RETURN EXIT 4 0734 H 963 18
231 C C0,ZB239 7 0738 C 149 111 18
232 BU PH2L 5 0745 B 813 / 18
233 MCW @000000@,ZB239 * ZERO ITERATION CNTR 7 0750 M V4W 111 18
234 MCW @000001@,B239WD * INIT INTER DIVISOR 7 0757 M V5S 123 18
235 MCW C0,ZB239 * CLEAR LEADING ZERO COUNTER 7 0764 M 149 111 19
236 MCW @0@,AF239 * SET ADD B5 FLAG TO SUBTRACE FIRST 7 0771 M V3/ 125 19
237 * DO NOT ZERO ACCUMULATOR
238 MCW @0@,B239&518 7 0778 M V3/ E18 19
239 MCW B239&518,B239&517 7 0785 M E18 E17 19
240 MCW @956@,B239&8 * SET A HIGH ORDER TO 1*4*239 7 0792 M V5V ?08 19
241 MCW @0@,AF239 * SET NEXT SUBTRACT 7 0799 M V3/ 125 20
242 MCW @006@,X2 7 0806 M V3W 094 20
243 PH2L MCW @+@,B239&519 * SET POSITIVE SIGN 7 0813 M V3' E19 20
244 D C239P2,B239&X2 * TRIAL ARITH 7 0820 % 185 ?!0 20
245 MCW B239&512,B239&519 * SHIFT QUOTIENT 7 0827 M E12 E19 20
246 MCW LC0L9,B239&X2 * REMOVE UNSHIFTED 7 0834 M 194 ?!0 21
247 MCW B239&519,INTER&519 * MOVE QUOTIENT TO NEXT 7 0841 M E19 51Z 21
1 PI DEMO PAGE 4
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
248 MCW @+@,INTER&519 * SET POSITIVE SIGN 7 0848 M V3' 51Z 21
249 D B239WD,INTER&X2 DIVIDE INTERMEDIATE 7 0855 % 123 0!' 21
250 MCW INTER&512,INTER&519 * SHIFT INTERMEDIATE 7 0862 M 51S 51Z 21
251 MCW LC0L9,INTER&X2 * REMOVE UNSHIFTED 7 0869 M 194 0!' 22
252 MCW @+@,INTER&519 * SET UP BASE 7 0876 M V3' 51Z 22
253 BCE PH2ADD,AF239,1 * COMPARE FOR ADD 8 0883 B 909 125 1 22
254 PH2SUB MCW @1@,AF239 * SET NEXT ADD 7 0891 M V3X 125 22
255 S INTER&519,ACCUM&519 * DO THE SUBTRACTION 7 0898 S 51Z V1Z 22
256 B PH2W * GO TO WRAP-UP 4 0905 B 923 23
257 PH2ADD A INTER&519,ACCUM&519 * ADD TO ACCUMULATOR 7 0909 A 51Z V1Z 23
258 MCW @0@,AF239 * SET NEXT SUBTRACT 7 0916 M V3/ 125 23
259 PH2W A C2,B239WD * FORM NEXT WORKING DIVISOR 7 0923 A 161 123 23
260 PH2BCE BCE PH2X2,B239&X2,0 * CHAR = 0, DONE? 8 0930 B 942 ?!0 0 23
261 B AT239X * GO DO ANOTHER LOOP PASS 4 0938 B 960 23
262 PH2X2 A @1@,ZB239 * INCREMENT # LEADING ZEROS 7 0942 A V3X 111 24
263 SBR X2,1&X2 * INCREMENT X2 7 0949 H 094 0!1 24
264 B PH2BCE * NO, CHECK MORE ZEROS 4 0956 B 930 24
265 AT239X B 000 * DONE WITH PASS 2 4 0960 B 000 24
266 * NOW WE PRINT THAT BABY OUT :-))
267 * PROPOSED FORMAT
268 * 2
269 * 0 1 2 3 4 5 6 7
270 * 1234567890123456789012345678901234567890123456789012345678901234567890123
271 * 3. * 10E-00000
272 * + NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN * 10E-00050
273 * + NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN * 10E-00100
274 *
275 PRINTD SBR PRINTX&3 * SET UP RETURN EXIT 4 0964 H /41 24
276 C C0,PRTCNT * NEED INITIALIZATION ? 7 0968 C 149 131 24
277 BU PR1LOP * NO 5 0975 B '28 / 24
278 MCW @008@,X3 * CLEAR PICKUP X 7 0980 M V5Y 099 25
279 MCW C0,PRTCNT * CLEAR TOTAL CH MOVED 7 0987 M 149 131 25
280 CS 332 * START CLEARING DOWN TO 200, PRINT AREA 4 0994 / 332 25
281 CS 1 0998 / 25
282 MCW @. * 10E-00000@,244 7 0999 M V7/ 244 25
283 SW 227,265 * SET WORD MARK IN EXPONENT FIELD 7 1006 , 227 265 25
284 MCW ACCUM&X3,231 MOVE 5TH FIELD 7 1013 M '?' 231 26
285 SBR X3,5&X3 * STEP X1 7 1020 H 099 0?5 26
286 W *WRITE THE PRINT AREA TO THE PRINTER 1 1027 2 26
287 *
288 PR1LOP CS 231 * CLEAR PREVIOUS NUMERICS 4 1028 / 231 26
289 SW 203,209 * SET WORD MARKS FOR B FIELD 7 1032 , 203 209 26
290 SW 215,221 7 1039 , 215 221 26
291 SW 227,240 7 1046 , 227 240 27
292 A @00025@,244 * ADD 25 TO EXPONENT 7 1053 A V7W 244 27
293 MCW ACCUM&X3,207 MOVE 1ST FIELD 7 1060 M '?' 207 27
294 SBR X3,5&X3 * STEP X3 7 1067 H 099 0?5 27
295 MCW ACCUM&X3,213 MOVE 2ND FIELD 7 1074 M '?' 213 27
296 SBR X3,5&X3 * STEP X3 7 1081 H 099 0?5 28
297 MCW ACCUM&X3,219 MOVE 3RD FIELD 7 1088 M '?' 219 28
1 PI DEMO PAGE 5
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
298 SBR X3,5&X3 * STEP X3 7 1095 H 099 0?5 28
299 MCW ACCUM&X3,225 MOVE 4TH FIELD 7 1102 M '?' 225 28
300 SBR X3,5&X3 * STEP X3 7 1109 H 099 0?5 28
301 MCW ACCUM&X3,231 MOVE 5TH FIELD 7 1116 M '?' 231 29
302 SBR X3,5&X3 * STEP X3 7 1123 H 099 0?5 29
303 W *WRITE THE PRINT AREA TO THE PRINTER 1 1130 2 29
304 A @000025@,PRTCNT * ADD 25 TO TOTAL DIGITS 7 1131 A V8S 131 29
305 PRINTX B 000 4 1138 B 000 29
306 *
307 * LARGE AREAS RON MAK SAYS THAT BLANKS PROCESS AS ZEROS
308 ORG 2000 2000
309 *FLDLEN EQU 520 * LENGTH OF THE 3 BIG FIELDS
310 B5 DA 1X520 * BASE, 1ST DIVISION HERE 2000 2519
311 ORG 3000 3000
312 B239 DA 1X520 * PARALLEL BUFFER FOR ATAN (1/239) 3000 3519
313 ORG 4000 4000
314 INTER DA 1X520 * INTERMEDIATE BUFFER, 2ND DIVISION HERE 4000 4519
315 ORG 5000 5000
316 ACCUM DA 1X520 * ACCUMULATOR, ANSWER IS FORMED HERE 5000 5519
317 * 1 2 3 4 5 6 7 8
318 *78901234567890123456789012345678901234567890123456789012345678901234567890
319 * LABEL | OP | OPERATION |XXXXXXX
320 *
321 *** NOV 15
322 * MACHIN'S METHOD -
323 * PI = 16ARCTAN(1/5) - 4ARCTAN(1/239)
324 * AN ARCTAN SERIES IS 1/N - 1/(3XN^3) + 1/(5XN^5) - ...
325 *
326 *** NOV 16
327 * IN ANY CASE,
328 *LETS DO ARCTAN(X), X = 1/5
329 * 0.19739555984988075837004976519479
330 *THEN 16ARCTAN(1/5)
331 * 3.1583289575980921339207962431166
332 * THEN AECTAN(1/239)
333 * 0.0041840760020747238645382149592855
334 * TIMES 4
335 * 0.016736304008298895458152859837142
336 * PI =
337 * 3.1415926535897932384626433832795
338 * :-))
339 *
340 * SET N TO 1/X = 5 (THIS IS THE FANCY FOOTWORK :-))
341 *
342 * 1) A) FORM THREE LARGE AS PRACTICAL EQUAL SIZED AREAS IN MEMORY.
343 * LETS CALL THEM "ACCUMULATOR", ACCUM
344 * "INTERMEDIATE", INTER
345 * "BASE OF NEXT TERM" BASET
346 * B) FORM SMALLER WORKING AREAS
347 * ITERATION COUNTER ITCNT USED FOR OBSERVATION
1 PI DEMO PAGE 6
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
348 * STARTS AT ZERO, COUNTS UP AFTER A PASS
349 * DIVISOR OF BASET, DIVBAS, USUALLY 5^2 OR 239^2
350 * 5^2 = 25, 239^2 = 57121
351 * ADD/SUBTRACT CONTROL FLAG, CF , TOGGLED AFTER A PASS
352 * 0 MEANS ADD, OTHER IS SUBTRACT
353 * DIVISOR OF INTER IS IX2P1 , ITCNT TIMES 2 PLUS 1
354 *
355 * 2) FIGURE WHERE THE DECIMAL POINT WILL BE
356 * (SAME RELATIVE PLACE IN EACH AREA)
357 * ( SEVERAL CHARACTERS OR WORDS TO THE "RIGHT" OF
358 * THE TOP SIGNIFICANCE.)
359 *
360 * 3) A) ZERO THE ACCUM
361 * B) ( INTER DOES NOT NEED INITIALIZATION)
362 * C) SET X (5.0 IN OUR EXAMPLE) INTO BASET
363 * D) SET COUNTER N TO 1
364 *
365 * 4) WHILE BASET IS NON-ZERO
366 * A) DIVIDE BASET BY X^2 ( 25 IN OUR EXAMPLE ) GIVING BASET
367 * B) DIVIDE BASET BY (2XN - 1) GIVING INTER
368 * C) IF N IS ODD, ADD INTERMEDIATE TO ACCUMULATOR
369 * ELSE, SUBTRACT INTERMEDIATE FROM ACCUMULATOR
370 * D) ADD 1 TO N (ASSURE THAT MACHINE CAN DIVIDE BY 2N)
371 *
372 * 5) ACCUMULATOR IS A FINE APPROXIMATION OF ARCTAN(X) ;-))
DCW @30@ 2 5521 LIT 30
DCW @25@ 2 5523 LIT 30
DCW @000001@ 6 5529 LIT 30
DCW @+@ 1 5530 LIT 30
DCW @0@ 1 5531 LIT 30
DCW @80@ 2 5533 LIT 31
DCW @006@ 3 5536 LIT 31
DCW @1@ 1 5537 LIT 31
DCW @510@ 3 5540 LIT 31
DCW @000000@ 6 5546 LIT 31
DCW @000001@ 6 5552 LIT 31
DCW @956@ 3 5555 LIT 31
DCW @008@ 3 5558 LIT 32
DCW @. * 10E-00000@ 13 5571 LIT 32
DCW @00025@ 5 5576 LIT 32
DCW @000025@ 6 5582 LIT 32
373 END START * LAST CARD IN DECK, TRANSFER ADDRESS / 400 080
1 PI DEMO PAGE 7
0SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS
ACCUM 5000 AF239 125 AF5 124 AT239X 960 ATN239 734 ATN5 496 ATN5X 700
B239 3000 B239WD 123 B5 2000 B5WD 117 C0 149 C1 155 C2 161
C239 179 C239P2 185 C25 173 C5 167 INIT 405 INTER 4000 LC0L9 194
LIMPCT 143 LSTCHR 137 PH1ADD 671 PH1BCE 692 PH1L 575 PH1SUB 653 PH1W 685
PH1X1 704 PH2ADD 909 PH2BCE 930 PH2L 813 PH2SUB 891 PH2W 923 PH2X2 942
PR1LOP 1028 PRINTD 964 PRINTX 1138 PRTCNT 131 START 400 T1 433 X1 89
X2 94 X3 99 ZB239 111 ZB5 105
,008015,022026,030037,044,049,053053N000000N00001026 0001
L068116,105106,110117B101/I9I#071029C029056B026/B001/0991,001/001117I0?0002
,008015,022029,036040,047054,061068,072/061039 ,00100110400003
000 L003089,040040,040040,04004010400004
000 L003094,040040,040040,04004010400005
00000000000000000000000000010 L029125,100106,112118,12412510400006
000000000000000500000000000001000002 L036161,132138,144150,15604010400007
000005000025000239057121000000000 L033194,168174,180186,04004010400008
B405BM149105M149111M149131MV2/137B496 L037436,405412,419426,43304010400009
C111105B433TB734C105137B433UB964AV2T137L039475,444449,453460,46546910400010
C131143B433/.000.000H703C149105B575/ L036511,483488,492496,50050710400011
MV2Z117MV3'V1ZMV3/V1YMV1YV1XMV3/N18 L035546,519526,533540,04004010400012
MN18N17MV3T!08MV3W089MV3X124MV3'N19 L035581,554561,568575,04004010400013
%173!'0MN12N19M194!'0MN1951ZMV3'51Z L035616,589596,603610,04004010400014
%1170''M51S51ZM1940''MV3'51ZB6711241 L036652,624631,638645,04004010400015
MV3X124S51ZV1ZB685A51ZV1ZMV3/124A161117L039691,660667,671678,68504010400016
B704!'00B000A155105H0890'1C105V4'B692/ L038729,700704,711718,72504010400017
B700H963C149111B813/MV4W111MV5S123 L034763,734738,745750,75704010400018
M149111MV3/125MV3/E18ME18E17MV5V?08 L035798,771778,785792,04004010400019
MV3/125MV3W094MV3'E19%185?!0ME12E19 L035833,806813,820827,04004010400020
M194?!0ME1951ZMV3'51Z%1230!'M51S51Z L035868,841848,855862,04004010400021
M1940!'MV3'51ZB9091251MV3X125S51ZV1Z L036904,876883,891898,04004010400022
B923A51ZV1ZMV3/125A161123B942?!00B960 L037941,909916,923930,93804010400023
AV3X111H0940!1B930B000H/41C149131B'28/ L038979,949956,960964,96897510400024
MV5Y099M149131/332/MV7/244,227265 L033'12,987994,998999,'0604010400025
M'?'231H0990?52/231,203209,215221 L033'45,'20'27,'28'32,'3904010400026
,227240AV7W244M'?'207H0990?5M'?'213 L035'80,'53'60,'67'74,04004010400027
H0990?5M'?'219H0990?5M'?'225H0990?5 L035/15,'88'95,/02/09,04004010400028
M'?'231H0990?52AV8S131B000 L026/41,/23/30,/31/38,!00?0010400029
3025000001+0 L012V3/,00''0',V2SV2U,V3'V3/10400030
800061510000000000001956 L024V5V,V3UV3X,V3YV4/,V4XV5T10400031
008. * 10E-0000000025000025 L027V8S,V5ZV7S,V7X040,04004010400032
/400080 0033
00003. * 10E-00000
14159 26535 89793 23846 26433. * 10E-00025
83279 50288 41971 69399 37510. * 10E-00050
58209 74944 59230 78164 06286. * 10E-00075
20899 86280 34825 34211 70679. * 10E-00100
82148 08651 32823 06647 09384. * 10E-00125
46095 50582 23172 53594 08128. * 10E-00150
48111 74502 84102 70193 85211. * 10E-00175
05559 64462 29489 54930 38196. * 10E-00200
44288 10975 66593 34461 28475. * 10E-00225
64823 37867 83165 27120 19091. * 10E-00250
45648 56692 34603 48610 45432. * 10E-00275
66482 13393 60726 02491 41273. * 10E-00300
72458 70066 06315 58817 48815. * 10E-00325
20920 96282 92540 91715 36436. * 10E-00350
78925 90360 01133 05305 48820. * 10E-00375
46652 13841 46951 94151 16094. * 10E-00400
33057 27036 57595 91953 09218. * 10E-00425
61173 81932 61179 31051 18548. * 10E-00450
07446 23799 62749 56735 18857. * 10E-00475
52724 89122 79381 83011 94912. * 10E-00500
JOB Pi Program
CTL 3311
******************************************************************
* Display Pi program by Ken Shirriff
* Based on Lincoln's Birthday Program
* by Ronald Mak
* Using 500 digits of Pi generated by Ed Thelen
*
* Original version: February 1969
* Resurrected: February 2005
******************************************************************
ORG 87
X1 DSA 0 index register 1
ORG 92
X2 DSA 0 index register 2
ORG 97
X3 DSA 0 index register 3
*
ORG 333
*
* Enough digits of Pi
*
GETTYS DCW 0
DC @3.1415926535897932384626433832795028841@
DC @971693993751058209749445923078164062862@
DC @089986280348253421170679821480865132823@
DC @066470938446095505822317253594081284811@
DC @174502841027019385211055596446229489549@
DC @303819644288109756659334461284756482337@
DC @867831652712019091456485669234603486104@
DC @543266482133936072602491412737245870066@
DC @063155881748815209209628292540917153643@
DC @678925903600113305305488204665213841469@
DC @519415116094330572703657595919530921861@
DC @173819326117931051185480744623799627495@
DC @6735188575272489122793818301194912@
*
*
* Program start. Set index register X1 to point to the
* first print map value, and index register X2 to point
* to the first character of the Gettysburg Address.
* Index register X3 will later point into the print area.
*
START SBR X1,MAP point X1 to print map
SBR X2,GETTYS&1 point X2 to Gettysburg address
*
* Loop once per print map value. First check if it's the
* end of the print map. If the map value is negative, then
* print out the current line and start a new one.
*
LOOP MCW 0&X1,MAPVAL MAPVAL = curent map value
SBR X1,2&X1 point X1 to the next value
C @00@,MAPVAL if MAPVAL = 0
BE DONE then DONE
*
BWZ TEST,MAPVAL,2 if MAPVAL < 0, then
MZ @ @,MAPVAL MAPVAL = abs(MAPVAL)
W print out current line
CS 299 clear the print area
SBR X3,240 point X3 to print area
*
* Each line alternates between 'skip' and 'take'.
*
TEST BCE DOSKIP,NEXTDO,0 if 'skip' then do skip
*
* Do 'take': Take MAPVAL number of letters from the Gettysburg
* Address and append them to the current print line.
*
*
*
DOTAKE MN 0&X2,0&X3 append letter to print line
MZ 0&X2,0&X3
S @1@,MAPVAL MAPVAL = MAPVAL - 1
SBR X3,1&X3 point X3 to next print position
*
NEXTCH SBR X2,1&X2 point X2 to next Gettysburg char
C &00,MAPVAL if MAPVAL > 0
BH DOTAKE then take some more chars
MCW SKIP,NEXTDO else next do 'skip'
B LOOP
*
* Do 'skip': Skip MAPVAL number of blanks in the print line.
*
DOSKIP A MAPVAL,X3 X3 = X3 + MAPVAL
MCW TAKE,NEXTDO next do 'take'
B LOOP
*
* Done with all print map values. Print the final line and quit.
*
DONE W
FINIS H FINIS
H
*
SKIP DCW 0 'skip' code
TAKE DCW 1 'take' code
NEXTDO DCW 0 what to do next in the line
MAPVAL DCW 00 print map value
*
* The print map. A negative number denotes the start of a new
* line, and its absolute value becomes the initial 'skip' value.
* Each line's map values alternate between 'skip' and 'take'
* values. The final zero denotes the end of the print map.
* Map values must each be two digits in length.
*
MAP DCW -38
DCW 02
DCW -11
DCW 29
DCW -07
DCW 33
DCW -05
DCW 35
DCW -03
DCW 36
DCW -02
DCW 37
DCW -01
DCW 06
DCW 05
DCW 05
DCW 08
DCW 08
DCW -02
DCW 01
DCW 09
DCW 05
DCW 08
DCW 08
DCW -12
DCW 05
DCW 08
DCW 08
DCW -12
DCW 05
DCW 08
DCW 08
DCW -12
DCW 04
DCW 09
DCW 08
DCW -11
DCW 05
DCW 09
DCW 08
DCW -11
DCW 05
DCW 09
DCW 08
DCW -11
DCW 05
DCW 09
DCW 08
DCW -11
DCW 05
DCW 09
DCW 08
DCW -11
DCW 05
DCW 09
DCW 08
DCW -10
DCW 06
DCW 09
DCW 08
DCW -10
DCW 05
DCW 10
DCW 08
DCW -10
DCW 05
DCW 10
DCW 08
DCW -09
DCW 06
DCW 10
DCW 08
DCW -09
DCW 06
DCW 10
DCW 08
DCW -08
DCW 06
DCW 11
DCW 09
DCW -08
DCW 06
DCW 11
DCW 14
DCW -07
DCW 07
DCW 11
DCW 14
DCW -07
DCW 06
DCW 13
DCW 12
DCW -06
DCW 07
DCW 14
DCW 09
DCW -06
DCW 05
DCW 17
DCW 06
*
END START
CLEAR STORAGE 1 ,008015,022026,030037,044,049,053053N000000N00001026 1
CLEAR STORAGE 2 L068116,105106,110117B101/I9I#071029C029056B026/B001/0991,001/001117I0? 2
BOOTSTRAP ,008015,022029,036040,047054,061068,072/061039 ,0010011040 3
0 PI PROGRAM PAGE 1
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
101 JOB PI PROGRAM
102 CTL 3311
103 ******************************************************************
104 * DISPLAY PI PROGRAM BY KEN SHIRRIFF
105 * BASED ON LINCOLN'S BIRTHDAY PROGRAM
106 * BY RONALD MAK
107 * USING 500 DIGITS OF PI GENERATED BY ED THELEN
108 *
109 * ORIGINAL VERSION: FEBRUARY 1969
110 * RESURRECTED: FEBRUARY 2005
111 ******************************************************************
112 ORG 87 0087
113 X1 DSA 0 INDEX REGISTER 1 3 0089 000 4
114 ORG 92 0092
115 X2 DSA 0 INDEX REGISTER 2 3 0094 000 5
116 ORG 97 0097
117 X3 DSA 0 INDEX REGISTER 3 3 0099 000 6
118 *
119 ORG 333 0333
120 *
121 * ENOUGH DIGITS OF PI
122 *
123 GETTYS DCW 0 1 0333 7
124 DC @3.1415926535897932384626433832795028841@ 39 0372 8
125 DC @971693993751058209749445923078164062862@ 39 0411 9
126 DC @089986280348253421170679821480865132823@ 39 0450 10
127 DC @066470938446095505822317253594081284811@ 39 0489 11
128 DC @174502841027019385211055596446229489549@ 39 0528 12
129 DC @303819644288109756659334461284756482337@ 39 0567 13
130 DC @867831652712019091456485669234603486104@ 39 0606 14
131 DC @543266482133936072602491412737245870066@ 39 0645 15
132 DC @063155881748815209209628292540917153643@ 39 0684 16
133 DC @678925903600113305305488204665213841469@ 39 0723 17
134 DC @519415116094330572703657595919530921861@ 39 0762 18
135 DC @173819326117931051185480744623799627495@ 39 0801 19
136 DC @6735188575272489122793818301194912@ 34 0835 20
137 *
138 *
139 * PROGRAM START. SET INDEX REGISTER X1 TO POINT TO THE
140 * FIRST PRINT MAP VALUE, AND INDEX REGISTER X2 TO POINT
141 * TO THE FIRST CHARACTER OF THE GETTYSBURG ADDRESS.
142 * INDEX REGISTER X3 WILL LATER POINT INTO THE PRINT AREA.
143 *
144 START SBR X1,MAP POINT X1 TO PRINT MAP 7 0836 H 089 999 21
145 SBR X2,GETTYS&1 POINT X2 TO GETTYSBURG ADDRESS 7 0843 H 094 334 21
146 *
147 * LOOP ONCE PER PRINT MAP VALUE. FIRST CHECK IF IT'S THE
1 PI PROGRAM PAGE 2
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
148 * END OF THE PRINT MAP. IF THE MAP VALUE IS NEGATIVE, THEN
149 * PRINT OUT THE CURRENT LINE AND START A NEW ONE.
150 *
151 LOOP MCW 0&X1,MAPVAL MAPVAL = CURENT MAP VALUE 7 0850 M 0'0 997 21
152 SBR X1,2&X1 POINT X1 TO THE NEXT VALUE 7 0857 H 089 0'2 21
153 C @00@,MAPVAL IF MAPVAL = 0 7 0864 C /99 997 21
154 BE DONE THEN DONE 5 0871 B 987 S 22
155 *
156 BWZ TEST,MAPVAL,2 IF MAPVAL < 0, THEN 8 0876 V 903 997 2 22
157 MZ @ @,MAPVAL MAPVAL = ABS(MAPVAL) 7 0884 Y S00 997 22
158 W PRINT OUT CURRENT LINE 1 0891 2 22
159 CS 299 CLEAR THE PRINT AREA 4 0892 / 299 22
160 SBR X3,240 POINT X3 TO PRINT AREA 7 0896 H 099 240 22
161 *
162 * EACH LINE ALTERNATES BETWEEN 'SKIP' AND 'TAKE'.
163 *
164 TEST BCE DOSKIP,NEXTDO,0 IF 'SKIP' THEN DO SKIP 8 0903 B 969 995 0 23
165 *
166 * DO 'TAKE': TAKE MAPVAL NUMBER OF LETTERS FROM THE GETTYSBURG
167 * ADDRESS AND APPEND THEM TO THE CURRENT PRINT LINE.
168 *
169 *
170 *
171 DOTAKE MN 0&X2,0&X3 APPEND LETTER TO PRINT LINE 7 0911 D 0!0 0?0 23
172 MZ 0&X2,0&X3 7 0918 Y 0!0 0?0 23
173 S @1@,MAPVAL MAPVAL = MAPVAL - 1 7 0925 S S01 997 23
174 SBR X3,1&X3 POINT X3 TO NEXT PRINT POSITION 7 0932 H 099 0?1 23
175 *
176 NEXTCH SBR X2,1&X2 POINT X2 TO NEXT GETTYSBURG CHAR 7 0939 H 094 0!1 24
177 C &00,MAPVAL IF MAPVAL > 0 7 0946 C S03 997 24
178 BH DOTAKE THEN TAKE SOME MORE CHARS 5 0953 B 911 U 24
179 MCW SKIP,NEXTDO ELSE NEXT DO 'SKIP' 7 0958 M 993 995 24
180 B LOOP 4 0965 B 850 24
181 *
182 * DO 'SKIP': SKIP MAPVAL NUMBER OF BLANKS IN THE PRINT LINE.
183 *
184 DOSKIP A MAPVAL,X3 X3 = X3 + MAPVAL 7 0969 A 997 099 24
185 MCW TAKE,NEXTDO NEXT DO 'TAKE' 7 0976 M 994 995 25
186 B LOOP 4 0983 B 850 25
187 *
188 * DONE WITH ALL PRINT MAP VALUES. PRINT THE FINAL LINE AND QUIT.
189 *
190 DONE W 1 0987 2 25
191 FINIS H FINIS 4 0988 . 988 25
192 H 1 0992 . 25
193 *
194 SKIP DCW 0 'SKIP' CODE 1 0993 25
195 TAKE DCW 1 'TAKE' CODE 1 0994 25
196 NEXTDO DCW 0 WHAT TO DO NEXT IN THE LINE 1 0995 26
197 MAPVAL DCW 00 PRINT MAP VALUE 2 0997 26
1 PI PROGRAM PAGE 3
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
198 *
199 * THE PRINT MAP. A NEGATIVE NUMBER DENOTES THE START OF A NEW
200 * LINE, AND ITS ABSOLUTE VALUE BECOMES THE INITIAL 'SKIP' VALUE.
201 * EACH LINE'S MAP VALUES ALTERNATE BETWEEN 'SKIP' AND 'TAKE'
202 * VALUES. THE FINAL ZERO DENOTES THE END OF THE PRINT MAP.
203 * MAP VALUES MUST EACH BE TWO DIGITS IN LENGTH.
204 *
205 MAP DCW -38 2 0999 26
206 DCW 02 2 1001 26
207 DCW -11 2 1003 26
208 DCW 29 2 1005 26
209 DCW -07 2 1007 26
210 DCW 33 2 1009 27
211 DCW -05 2 1011 27
212 DCW 35 2 1013 27
213 DCW -03 2 1015 27
214 DCW 36 2 1017 27
215 DCW -02 2 1019 27
216 DCW 37 2 1021 27
217 DCW -01 2 1023 28
218 DCW 06 2 1025 28
219 DCW 05 2 1027 28
220 DCW 05 2 1029 28
221 DCW 08 2 1031 28
222 DCW 08 2 1033 28
223 DCW -02 2 1035 28
224 DCW 01 2 1037 29
225 DCW 09 2 1039 29
226 DCW 05 2 1041 29
227 DCW 08 2 1043 29
228 DCW 08 2 1045 29
229 DCW -12 2 1047 29
230 DCW 05 2 1049 29
231 DCW 08 2 1051 30
232 DCW 08 2 1053 30
233 DCW -12 2 1055 30
234 DCW 05 2 1057 30
235 DCW 08 2 1059 30
236 DCW 08 2 1061 30
237 DCW -12 2 1063 30
238 DCW 04 2 1065 31
239 DCW 09 2 1067 31
240 DCW 08 2 1069 31
241 DCW -11 2 1071 31
242 DCW 05 2 1073 31
243 DCW 09 2 1075 31
244 DCW 08 2 1077 31
245 DCW -11 2 1079 32
246 DCW 05 2 1081 32
247 DCW 09 2 1083 32
1 PI PROGRAM PAGE 4
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
248 DCW 08 2 1085 32
249 DCW -11 2 1087 32
250 DCW 05 2 1089 32
251 DCW 09 2 1091 32
252 DCW 08 2 1093 33
253 DCW -11 2 1095 33
254 DCW 05 2 1097 33
255 DCW 09 2 1099 33
256 DCW 08 2 1101 33
257 DCW -11 2 1103 33
258 DCW 05 2 1105 33
259 DCW 09 2 1107 34
260 DCW 08 2 1109 34
261 DCW -10 2 1111 34
262 DCW 06 2 1113 34
263 DCW 09 2 1115 34
264 DCW 08 2 1117 34
265 DCW -10 2 1119 34
266 DCW 05 2 1121 35
267 DCW 10 2 1123 35
268 DCW 08 2 1125 35
269 DCW -10 2 1127 35
270 DCW 05 2 1129 35
271 DCW 10 2 1131 35
272 DCW 08 2 1133 35
273 DCW -09 2 1135 36
274 DCW 06 2 1137 36
275 DCW 10 2 1139 36
276 DCW 08 2 1141 36
277 DCW -09 2 1143 36
278 DCW 06 2 1145 36
279 DCW 10 2 1147 36
280 DCW 08 2 1149 37
281 DCW -08 2 1151 37
282 DCW 06 2 1153 37
283 DCW 11 2 1155 37
284 DCW 09 2 1157 37
285 DCW -08 2 1159 37
286 DCW 06 2 1161 37
287 DCW 11 2 1163 38
288 DCW 14 2 1165 38
289 DCW -07 2 1167 38
290 DCW 07 2 1169 38
291 DCW 11 2 1171 38
292 DCW 14 2 1173 38
293 DCW -07 2 1175 38
294 DCW 06 2 1177 39
295 DCW 13 2 1179 39
296 DCW 12 2 1181 39
297 DCW -06 2 1183 39
1 PI PROGRAM PAGE 5
0 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD
298 DCW 07 2 1185 39
299 DCW 14 2 1187 39
300 DCW 09 2 1189 39
301 DCW -06 2 1191 40
302 DCW 05 2 1193 40
303 DCW 17 2 1195 40
304 DCW 06 2 1197 40
305 *
DCW @00@ 2 1199 LIT 40
DCW @ @ 1 1200 LIT 40
DCW @1@ 1 1201 LIT 40
DCW &00 2 1203 LIT 41
306 END START / 836 080
1 PI PROGRAM PAGE 6
0SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS
DONE 987 DOSKIP 969 DOTAKE 911 FINIS 988 GETTYS 333 LOOP 850 MAP 999
MAPVAL 997 NEXTCH 939 NEXTDO 995 SKIP 993 START 836 TAKE 994 TEST 903
X1 89 X2 94 X3 99