diff --git a/README.md b/README.md index 624a95d..5e663ee 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,14 @@ The ElectroData Division of Burroughs went on to create a number of successful s The main goal of this project is creation of a web browser-based emulator for the 220. -A second goal is reconstruction of the BALGOL Algol-58 compiler written for the 220 by a team from Burroughs that included Joel Erdwinn, Jack Merner, Donald Knuth, Dave Dahm, and Clark Oliphint. +A second goal is reconstruction of the Burroughs Algebraic Compiler (BALGOL), an Algol-58 compiler written for the 220 by a team from Burroughs that included Joel Erdwinn, Jack Merner, Donald Knuth, Dave Dahm, and Clark Oliphint. The contents of this project are licensed under the [MIT License](http://www.opensource.org/licenses/mit-license.php). | Related Sites | URL | | ------------- | ----- | | Emulator hosting site | http://www.phkimpel.us/ElectroData/220/ | +| Burroughs 205/220 blog | http://datatron.blogspot.com | | Datatron 205 site | http://www.phkimpel.us/ElectroData/205/ | | Documents at bitsavers | http://bitsavers.org/pdf/burroughs/electrodata/220/ | diff --git a/software/BALGOL/BALGOL-Main.baca b/software/BALGOL/BALGOL-Main.baca index 9695bdc..67da71c 100644 --- a/software/BALGOL/BALGOL-Main.baca +++ b/software/BALGOL/BALGOL-Main.baca @@ -308,4 +308,443 @@ 03 13 0 0305 CRJ F2442 00,GCRJ,1 12 INPUT LABEL COMMA 03 14 0 0306 SMCLN F2446 00,SEMI,5 13 $ SEMICOLON 03 15 0 0307 EXPN F2441 14,GEXPN,1 14 * EXPONENTIATION - 03 16 0 0308 \ No newline at end of file + 03 16 0 0308 CRK F2443 00,GCRK,1 15 OUTPUT LABEL COMMA + 03 17 0 0309 TEMP1 CNST 0 NOT USED + 03 18 0 0310 CRM F2443 00,GCRM,1 17 MONITOR + 03 19 0 0311 CRN F2441 00,GCRN,1 18 PARAMETRIC ARRAY + 03 20 0 0312 CRO F2441 41, GCRO,1 19 FUNCTION CALL + 03 21 0 0313 HYPH F2443 14,GHYPH,1 20 - NEGATION + 03 22 0 0314 SOLD F2440 11,0024,1 21 / DIVISION + 03 23 0 0315 CRP F2443 00,GCRP,1 22 PROCEDURE + 03 24 0 0316 KOMA F2446 00,COMMA,5 23 , COMMA + 03 25 0 0317 LAPR F2440 00,0000,2 24 ( LEFT PARENTHESIS + 03 26 0 0318 CRQ F2443 00,GCRQ,1 25 PROCEDURE + 03 27 0 0319 CRR F2441 40,GCRR,1 26 ARRAY + 03 28 0 0320 CRS F2443 00,GCRS,1 27 SUBROUTINE + 03 29 0 0321 CRT F2442 00,GCRT,1 28 GO TO + 03 30 0 0322 CRU F2442 00,GCRU,1 29 UNTIL + 03 31 0 0323 CRV F2443 00,FCRV,1 30 SEGMENT + 03 32 0 0324 CRW F2443 00,GCRW,1 31 OTHERWISE + 03 33 0 0325 CRX F2443 00,GCRX,1 32 FOR + 03 34 0 0326 SBST F2446 00,EQUL,5 33 = ASSIGNMENT + 03 35 0 0327 CRY F2242 00,GCRY,1 34 FIX + 03 36 0 0328 CRZ F2442 00,GCRZ,1 35 STOP + 03 37 0 0329 TEMP3 CNST 0 NOT USED + 03 38 0 0330 BREF F2445 00,0000,1 37 BACKWARD REFERENCE + 03 39 0 0331 TOP CNST 0 NOT USED + 03 40 0 0332 CWNED F2446 00,END,1 39 END + 03 41 0 0333 CWNDX F2446 00,NDXMD,4 40 ARRAY CALL + 03 42 0 0334 CWARD F2446 00,ARDEC,1 41 ARRAY DECLARATION + 03 43 0 0335 CWEMP F2446 00,EMPTY,5 42 EMPTY SUBSCRIPT + 03 44 0 0336 CWLAB F2446 00,LABMD,4 43 LABEL IN DECLARATION + 03 45 0 0337 CWAPM F2446 00,ARAPM,1 44 ARRAY PARAMETER + 03 46 0 0338 CWCLN F2446 00,FUNMD,4 45 FUNCTION,PROCEDURE CALL + 03 47 0 0339 BOR F2440 22,0203,1 46 BOOLEAN OR + 03 48 0 0340 OPIF F2442 00,GIF,1 47 IF + 03 49 0 0341 RGEQ F2448 01,0024,1 48 GEQ + 03 50 0 0342 RLEQ F2448 01,0012,1 49 LEQ + 03 51 0 0343 OPMAX F2440 00,0100,1 50 MAX + 03 52 0 0344 OPMIN F2440 00,0112,1 51 MIN + 03 53 0 0345 CROY F2443 22,GCROW,1 52 TRACE + + VARIOUS MODES + 03 56 0 0346 ARAMD F244 0,ARACM,ARRAY ARRAY DECLARATION MODE + 03 57 0 0347 ARFMD F244 0,ARFCM,ARFGM ARRAY-FILL MODE + 03 58 0 0348 DCLMD DEFN * TYPE DECLARATION MODES + 03 59 0 0348 INTMD F244 0,DCLCM,INTG INTEGER DECLARATION MODE + 03 60 0 0349 FLTMD F244 0,DCLCM,FLTG FLOATING DECLARATION MODE + 03 61 0 0350 FORMD F244 1,FORCM,FOR FOR MODE (PROCESSING ITERATION LIST) + 03 62 0 0351 FRMMD F2449 0,FRMCM,FRMT FORMAT DECLARATION MODE + 03 63 0 0352 FUNMD F244 0,FUNCM,COLON FUNCTION MODE (SETTING UP PARAMETERS) + 03 64 0 0353 INNMD F2449 1,PUTCM,INPUT INPUT DECLARATION MODE + 03 65 0 0354 MAXMD F244 0,MAXCM,NORM MAX MODE + 03 66 0 0355 MINMD F244 0,MINCM,NORM MIN MODE + 03 67 0 0356 MODMD F244 0,MODCM,NORM MOD MODE + 03 68 0 0357 NDXMD F244 0,NDXCM,INDEX INDEX MODE (PROCESSING SUBSCRIPTS) + 03 69 0 0358 NRMMD F2441 10,0,0 NORMAL MODE + 03 70 0 0359 OUTMD F2449 1,PUTCM,OUTPT OUTPUT DECLARATION MODE + 03 71 0 0360 PRCMD F244 0,PRCCM,PROCD PROCEDURE DECLARATION MODE + 03 72 0 0361 SWMD F244 0,SWCM,SWTCH SWITCH MODE + 03 73 0 0362 FNCMD F244 0,PRCCM,FUNC FUNCTION DECLARATION MODE + 03 74 0 0363 LABMD F2442 0,LABCM,LABEL LABEL MODE (OUTSIDE OF I-O,FORMAT MODES) + 03 75 0 0364 EXTMD F2448 1,FRMCM,EXTRN EXTERNAL MODE + 03 76 0 0365 MEMMD F2447 1,ARACM,MEMST TRACE MODE + + RESERVED WORDS + 03 79 0 0366 SUBGN F2426 7001,0,SUBR + 03 80 0 0367 CNST $SUBROUTINE$ + 03 81 0 0369 UNTGN F2426 7001,0,UNTIL (DO A SLA 4 ON THESE CODES) + 03 82 0 0370 CNST $UNTIL$ TO GET THEIR TRUE SIGNIFICANCE) + 03 83 0 0371 INPGN F2426 7004,0,INNMD + 03 84 0 0372 CNST $INPUT$ + 03 85 0 0373 RETGN F2426 7001,0,RETN + 03 86 0 0374 CNST $RETURN$ + 03 87 0 0376 IFGN F2426 7691,0,IF + 03 88 0 0377 CNST $IF$ + 03 89 0 0378 IMPGN F2420 7001,20,1209 + 03 90 0 0379 CNST $IMPL$ + 03 91 0 0380 ORGN F2426 7001,0,OR + 03 92 0 0381 CNST $OR$ + 03 93 0 0382 GOGN F2426 7001,0,GO + 03 94 0 0383 CNST $GO$ + 03 95 0 0384 OUTGN F2426 7004,0,OUTMD + 03 96 0 0385 CNST $OUTPUT$ + 03 97 0 0387 EITGN F2426 7001,0,ETHR + 03 98 0 0388 CNST $EITHER$ + 03 99 0 0390 BOOGN F2426 7004,0,INTMD + 04 00 0 0391 CNST $BOOLEAN$ + 04 01 0 0393 COMGN F2426 7001,0,COMNT + 04 02 0 3094 CNST $COMMENT$ + 04 03 0 0396 LEQGN F4248 7001,01,12 + 04 04 0 0397 CNST $LEQ$ + 04 05 0 0398 FORMG F4246 7004,0,FRMMD + 04 06 0 0399 CNST $FORMAT$ + 04 07 0 0401 MINGN F4246 7404,0,MINMD + 04 08 0 0402 CNST $MIN$ + 04 09 0 0403 NEQGN F4248 7001,01,6 + 04 10 0 0404 CNST $NEQ$ + 04 11 0 0405 FLOGN F4246 7004,0,FLTMD + 04 12 0 0406 CNST $FLOATING$ + 04 13 0 0408 INTGN F4246 7004,0,INTMD + 04 14 0 0409 CNST $INTEGER$ + 04 15 0 0411 FORGN C4246 7004,0,FORMD + 04 16 0 0412 CNST $FOR$ + 04 17 0 0413 PROGN F4246 7004,0,PRCMD + 04 18 0 0414 CNST $PROCEDURE$ + 04 19 0 0416 MAXGN F4246 7404,0,MAXMD + 04 20 0 0417 CNST $MAX$ + 04 21 0 0418 FINGN F4246 7001,0,FINSH + 04 22 0 0419 CNST $FINISH$ + 04 23 0 0421 PCSGN F4242 7401,41,GPCS + 04 24 0 0422 CNST $PCS$ + 04 25 0 0423 SEGGN F4246 7001,0,SGMT + 04 26 0 0424 CNST $SEGMENT$ + 04 27 0 0426 OVEGN F4246 7001,0,OVRLY + 04 28 0 0427 CNST $OVERLAY$ + 04 29 0 0429 ENTGN F4246 7001,0,ENTER + 04 30 0 0430 CNST $ENTER$ + 04 31 0 0431 GTRGN F4248 7001,01,18 + 04 32 0 0432 CNST $GTR$ + 04 33 0 0433 ARRGN F4246 7004,0,ARAMD + 04 34 0 0434 CNST $ARRAY$ + 04 35 0 0435 OTHGN F4246 7005,0,WISE + 04 36 0 0436 CNST $OTHERWISE$ + 04 37 0 0438 FUNGN F4246 7004,0,FNCMD + 04 38 0 0439 CNST $FUNCTION$ + 04 39 0 0441 NOTGN F4242 7001,24,GBNOT + 04 40 0 0442 CNST $NOT$ + 04 41 0 0443 LSSGN F4248 7001,01,30 + 04 42 0 0444 CNST $LSS$ + 04 43 0 0445 MONGN F4246 7001,0,MONT + 04 44 0 0446 CNST $MONITOR$ + 04 45 0 0448 SWIGN F4246 7004,0,SWMD + 04 46 0 0449 CNST $SWITCH$ + 04 47 0 0451 STOGN F4246 7001,0,STOP + 04 48 0 0452 CNST $STOP$ + 04 49 0 0453 FIXGN F244 06,FIX,0 + 04 50 0 0454 GSEG F244 14,SEGGN,0 + 04 51 0 0455 GNARR F244 10,ARRGN,0 + 04 52 0 0456 ANDGN F4240 7001,23,0200 + 04 53 0 0457 CNST $AND$ + 04 54 0 0458 EXTGN F4246 7004,0,EXTMD + 04 55 0 0459 CNST $EXTERNAL$ + 04 56 0 0461 REAL F4246 7004,00,FLTMD + 04 57 0 0462 CNST $REAL $ + 04 58 0 0463 DUMPE F4246 7001,0,DUMP + 04 59 0 0464 CNST $DUMP$ + 04 60 0 0465 MEMRY F4246 7004,0,MEMMD + 04 61 0 0466 CNST $TRACE$ + 04 62 0 0467 STAX F2446 73,0199,0 THERE ARE MORE RESERVED WORD CODES + 04 63 0 0468 CNST $STATEMENT$ SCATTERED THROUGH TABSC + + + 04 66 0 0470 TABSC F4248 8888,30,R1 AA + 04 67 0 0471 F4248 8888,30,R1 AN TABLE OF ADMISSIBLE + 04 68 0 0472 F4248 8888,30,R3 A) CHARACTER PAIRS AND + 04 69 0 0473 F4248 8888,30,R2 A( CORRESPONDING R-ROUTINES + 04 70 0 0474 F4248 8888,30,R17 A, IN SCANNER + 04 71 0 0475 F4248 8888,30,R3 A$ + 04 72 0 0476 F4248 8888,30,R3 A, + 04 73 0 0477 F4248 8888,30,R3 A* + 04 74 0 0478 F4248 8888,30,R11 A- + 04 75 0 0479 F4248 8888,30,R3K AP A=ALPHA + 04 76 0 0480 F4248 8888,30,R4 NA N=NUMBER + 04 77 0 0481 F4248 8888,30,R5 NN P=PLUS,DIVIDE,OR EQUALS + 04 78 0 0482 F4248 8888,30,R6 N) + 04 79 0 0483 F4248 8888,30,R19 N( + 04 80 0 0484 F4248 8888,30,R20 N. + 04 81 0 0485 F4248 8888,30,R6 N$ + 04 82 0 0486 F4248 8888,30,R6 N, + 04 83 0 0487 F4248 8888,30,R22 N* + 04 84 0 0488 F4248 8888,30,R18 N- + 04 85 0 0489 F4248 8888,30,R6 NP + 04 86 0 0490 F4248 8888,30,R7P )A + 04 87 0 0491 F4248 8888,30,R21 )N + 04 88 0 0492 F4248 8888,30,R8 )) + 04 89 0 0493 F4248 8888,30,R10 )( + 04 90 0 0494 F4248 8888,30,R8 ). + 04 91 0 0495 F4248 8888,30,R8 )$ + 04 92 0 0496 F4248 8888,30,R8 ), + 04 93 0 0497 F4248 8888,30,R8 )* + 04 94 0 0498 F4248 8888,30,R12 )- + 04 95 0 0499 F4248 8888,30,R8 )P + 04 96 0 0500 F4248 8888,30,R7 (A + 04 97 0 0501 F4248 8888,30,R23 (N + 04 98 0 0502 F4248 8888,30,R25 () + 04 99 0 0503 F4248 8888,30,R8 (( + 05 00 0 0504 F244 14,COMGN,0 (. ILLEGAL + 05 01 0 0505 F4248 8888,30,R26 ($ + 05 02 0 0506 F4248 8888,30,R25 (, + 05 03 0 0507 F244 06,LEQGN,0 (* ILLEGAL + 05 04 0 0508 F4248 8888,30,R8 (- + 05 05 0 0509 F4248 8888,30,R9 (P + 05 06 0 0510 F4248 8888,30,R7 .A + 05 07 0 0511 F4248 8888,30,R23 .N + 05 08 0 0512 F244 06,NEQGN,0 .) ILLEGAL + 05 09 0 0513 F4248 8888,30,R8 .( + 05 10 0 0514 F244 14,INTGN,TABSC+72 .. ILLEGAL + 05 11 0 0515 F244 18,PROGN,0 .$ ILLEGAL + 05 12 0 0516 F244 12,FINGN,*+1 ., ILLEGAL + 05 13 0 0517 F244 06,PCSGN,FIXGN .* ILLEGAL + 05 14 0 0518 F4248 8888,30,R8 .- + 05 15 0 0519 F4248 8888,30,R9 .P + 05 16 0 0520 F4248 8888,30,R7 $A + 05 17 0 0521 F4248 8888,30,R23 $N + 05 18 0 0522 F4248 8888,30,R27 $) + 05 19 0 0523 F4248 8888,30,R8 $( + 05 20 0 0524 F244 20,SUBGN,0 $. ILLEGAL + 05 21 0 0525 F4248 8888,30,R26 $$ + 05 22 0 0526 SIGGN F4242 7401,41,GSIGN $, ILLEGAL + 05 23 0 0527 CNST $SIGN$ $* ILLEGAL + 05 24 0 0528 F4248 8888,30,R8 $- + 05 25 0 0529 F4248 8888,30,R9 $P + 05 26 0 0530 F4248 8888,30,R7 ,A + 05 27 0 0531 F4248 8888,30,R23 ,N + 05 28 0 0532 F4248 8888,30,R25 ,) + 05 29 0 0533 F4248 8888,30,R8 ,( + 05 30 0 0534 EQIGN F4240 7001,21,0206 ,. ILLEGAL + 05 31 0 0535 CNST $EQUIV$ ,$ ILLEGAL + 05 32 0 0536 F4248 8888,30,R25 ,, + 05 33 0 0537 F244 08,SIGGN,0 ,* ILLEGAL + 05 34 0 0538 F4248 8888,30,R8 ,- + 05 35 0 0539 F4248 8888,30,R9 ,P + 05 36 0 0540 F4248 8888,30,R7 *A + 05 37 0 0541 F4248 8888,30,R23 *N + 05 38 0 0542 F2441 10,FONE,TABSC+82 *) ILLEGAL + 05 39 0 0543 F4248 8888,30,R8 *( + 05 40 0 0544 TOGN F2426 7001,0,T0 *. ILLEGAL + 05 41 0 0545 CNST $TO$ *$ ILLEGAL + 05 42 0 0546 BEGGN F4240 7002,0,0 *, ILLEGAL + 05 43 0 0547 CNST $BEGIN$ ** ILLEGAL + 05 44 0 0548 F4248 8888,30,R8 *- + 05 45 0 0549 F4248 8888,30,R9 *P + 05 46 0 0550 F4248 8888,30,R7 -A + 05 47 0 0551 F4248 8888,30,R23 -N + 05 48 0 0552 F244 10,FLOAT,0 -) ILLEGAL + 05 49 0 0553 F4248 8888,30,R8 -( + 05 50 0 0554 ENDGN F4246 7001,0,END -. ILLEGAL + 05 51 0 0555 CNST $END$ -$ ILLEGAL + 05 52 0 0556 ABSGN F4242 7401,41,GABSF -, ILLEGAL + 05 53 0 0557 CNST $ABS$ -* ILLEGAL + 05 54 0 0558 GEQGN F4248 7001,01,0024 -- ILLEGAL + 05 55 0 0559 CNST $GEQ$ -P ILLEGAL + 05 56 0 0560 F4248 8888,30,R7 PA + 05 57 0 0561 F4248 8888,30,R23 PN + 05 58 0 0562 F2440 08,STOGN,0 P) ILLEGAL + 05 59 0 0563 F4248 8888,30,R8 P( + 05 60 0 0564 MODGN F4246 7404,0,MODMD P. ILLEGAL + 05 61 0 0565 CNST $MOD$ P$ ILLEGAL + 05 62 0 0566 EQLGN F4248 7001,01,0 P, ILLEGAL + 05 63 0 0567 CNST $EQL$ P* ILLEGAL + 05 64 0 0568 F4248 8888,30,R8 P- + 05 65 0 0569 F4248 8888,30,R9 PP + + + 05 68 0 0570 VOCAB DEFN * TABLE OF 220 OPERATIONS WE CAN DO + 05 69 0 0570 CADV1 CNST 00000100001 01 + 05 70 0 0571 CADV2 CNST 00000100002 02 + 05 71 0 0572 CADX1 CNST 00000100004 03 + 05 72 0 0573 CADF1 CNST 00000100005 04 + 05 73 0 0574 CADL1 CNST 60000100001 05 + 05 74 0 0575 CSUV1 CNST 00000110001 06 SIGN OF -,1, OR 3.. + 05 75 0 0576 CSUV2 CNST 00000110002 07 ADDRESS I IS TO BE REPLACED BY + 05 76 0 0577 ADDV1 CNST 00000120001 08 V(I) AND IF V(I) IS AN + 05 77 0 0578 ADDV2 CNST 00000120002 09 ARRAY WE MUST ALSO COMPUTE + 05 78 0 0579 ADDL1 CNST 60000120001 10 ITS SUBSCRIPT AND LOAD B + 05 79 0 0580 FADV1 CNST 00000220001 11 + 05 80 0 0581 FADV2 CNST 00000220002 12 + 05 81 0 0582 SUBV1 CNST 00000130001 13 SIGN OF 1.. DONT RELEASE + 05 82 0 0583 SUBV2 CNST 00000130002 14 TEMPORARY STORAGE CELL. + 05 83 0 0584 SUBX1 CNST 00000130004 15 IF V(I) IS AN ARRAY DONT RELEASE + 05 84 0 0585 FSUV1 CNST 00000230001 16 THE INCREMENT WORD + 05 85 0 0586 FSUV2 CNST 00000230002 17 + 05 86 0 0587 MULV1 CNST 00000140001 18 + 05 87 0 0588 MULV2 CNST 00000140002 19 SIGN OF 3.. THIS IS A PSEUDO-OP. + 05 88 0 0589 FMUV1 CNST 00000240001 20 WE GET READY TO CALCULATE V(I) + 05 89 0 0590 FMUV2 CNST 00000240002 21 BUT DONT ACTUALLY FINISH + 05 90 0 0591 DIVV1 CNST 00000150001 22 + 05 91 0 0592 DIVV2 CNST 00000150002 23 + 05 92 0 0593 FDVV1 CNST 00000250001 24 SIGN OF 4.. ADDRESS IS ABSOLUTE + 05 93 0 0594 SHIFT CNST 40000000000 25 SIGN OF 5.. SAME, B-MODIFIED + 05 94 0 0595 CFAV1 CNST 10000180001 26 + 05 95 0 0596 CFAV2 CNST 10000180002 27 + 05 96 0 0597 EXTV1 CNST 00000170001 28 SIGN OF 6.. ADDRESS IS RELATIVE + 05 97 0 0598 EXTV2 CNST 00000170002 29 TO LOCATION + 05 98 0 0599 STAV1 CNST 00000400001 30 + 05 99 0 0600 STAV2 CNST 00000400002 31 + 06 00 0 0601 STAT1 CNST 10000400001 32 SIGN OF 7,8, OR 9.. + 06 01 0 0602 STAT2 CNST 10000400002 33 ADDRESS IS BLANKED OUT + 06 02 0 0603 STAL2 CNST 61110400002 34 + 06 03 0 0604 STAI CNST 40410400000 35 + 06 04 0 0605 STAAB CNST 50000400000 36 SIGN OF 8.. FORWARD REFERENCE + 06 05 0 0606 BUNV1 CNST 00000300001 37 IS PUT ON STACK + 06 06 0 0607 BUNV2 CNST 00000300002 38 SIGN OF 9.. SAME, INCREMENTED + 06 07 0 0608 BUNV3 CNST 00000300003 39 + 06 08 0 0609 BUNZ CNST 70000300400 40 + 06 09 0 0610 BUNBZ CNST 50000300000 41 + 06 10 0 0611 BUNI CNST 40000300000 42 + 06 11 0 0612 BUN3V CNST 00000300003 43 + 06 12 0 0613 BUNL2 CNST 60000300002 44 + 06 13 0 0614 BSALN CNST 60001330003 45 + 06 14 0 0615 BSALT CNST 60000330003 46 + 06 15 0 0616 BZAL2 CNST 60000360002 47 + 06 16 0 0617 BZAL3 CNST 60000360003 48 + 06 17 0 0618 BZAL4 CNST 60000360004 49 + 06 18 0 0619 BNZAF CNST 80101369999 50 + 06 19 0 0620 NOPZ CNST 70000010000 51 + 06 20 0 0621 NOPV1 CNST 00000100001 52 + 06 21 0 0622 NOPV2 CNST 00000010002 53 + 06 22 0 0623 NOPAV F424 0,01,TOP-V 54 + 06 23 0 0624 SLT10 CNST 40001490010 55 + 06 24 0 0625 SLTZ CNST 40001490000 56 + 06 25 0 0626 SLT30 CNST 40001490030 57 + 06 26 0 0627 SRT10 CNST 40001480010 58 + 06 27 0 0628 SRTZ CNST 40001480000 59 + 06 28 0 0629 SLA9 CNST 40000490009 60 + 06 29 0 0630 LDBI CNST 40000420000 61 + 06 30 0 0631 LDBL0 CNST 60000420000 62 + 06 31 0 0632 LBCV1 CNST 00001420001 63 + 06 32 0 0633 DLBV2 CNST 04400280002 64 + 06 33 0 0634 LSA0 CNST 40000430000 65 + 06 34 0 0635 LSA1 CNST 40001430000 66 + 06 35 0 0636 LSA9 CNST 40009430000 67 + 06 36 0 0637 STPZ CNST 70000440000 68 + 06 37 0 0638 STPV2 CNST 00000440002 69 + 06 38 0 0639 STPV3 CNST 00000440003 70 + 06 39 0 0640 BCSL2 CNST 60000380002 71 + 06 40 0 0641 CLA CNST 40001450002 72 + 06 41 0 0642 IBBI CNST 40002200000 73 + 06 42 0 0643 LDRV1 CNST 00000410001 74 + 06 43 0 0644 HLTZ CNST 40137007310 75 + 06 44 0 0645 CAAV1 CNST 00001100001 76 + 06 45 0 0646 CSAV1 CNST 00001110001 77 + 06 46 0 0647 NDXV1 CNST 30000000001 78 + 06 47 0 0648 NDXV2 CNST 30000000002 79 + 06 48 0 0649 BCHL2 CNST 60000340002 80 + 06 49 0 0650 BCLL2 CNST 60001340002 81 + 06 50 0 0651 BCUL2 CNST 60011350002 82 + 06 51 0 0652 ADDX1 CNST 00000120004 83 + 06 52 0 0653 CLLV2 CNST 00000460002 84 + 06 53 0 0654 BZAFR CNST 80000369999 85 + 06 54 0 0655 BSAFN CNST 80001339999 86 + 06 55 0 0656 BSAFP CNST 80000339999 87 + 06 56 0 0657 BUNFR CNST 80000309999 88 + 06 57 0 0658 STPA F4244 0,44,LODOX 89 + 06 58 0 0659 BUNA F4244 0,30,LODOV 90 + 06 59 0 0660 BFILR CNST 60101360002 91 + 06 60 0 0661 BUNFB CNST 90000309999 92 + 06 61 0 0662 STPFR CNST 80000449999 93 + 06 62 0 0663 STAT3 CNST 10000400003 94 + 06 63 0 0664 LDBV9 CNST 00000420009 95 + 06 64 0 0665 CSUV4 CNST 00000110004 96 + 06 65 0 0666 CLR0 CNST 40002450000 97 + 06 66 0 0667 BOF2 CNST 61111310002 98 + + MACRO-OPERATION TABLES + 06 69 0 0668 LOCN * OP V1 V2 RESULT + 06 70 0 0668 GTAB0 CNST 10900000000 + A V X ADDV2 X=FIXED + 06 71 0 0669 CNST 11400000000 + A V- X SUBV2 F=FLOATING + 06 72 0 0670 CNST 31400000000 + A- V X- SUBV2 A=IN ACCUMULATOR + 06 73 0 0671 CNST 30900000000 + A- V- X- ADDV2 V=NOT IN ACCUMULATOR + 06 74 0 0672 CNST 10800000000 + V A X ADDV1 -=NEGATED + 06 75 0 0673 CNST 31300000000 + V A- X- SUBV1 + 06 76 0 0674 CNST 11300000000 + V- A X SUBV1 + 06 77 0 0675 CNST 30800000000 + V- A- X- ADDV1 + 06 78 0 0676 CNST 10109000000 + V V X CADV1 ADDV2 + 06 79 0 0677 CNST 10708000000 + V V- X CSUV2 ADDV1 + 06 80 0 0678 CNST 10213000000 + V- V X CADV2 SUBV1 + 06 81 0 0679 CNST 10713000000 + V- V- X CSUV2 SUBV1 + 06 82 0 0680 CNST 21200000000 + A V F FADV2 + 06 83 0 0681 CNST 21700000000 + A V- F FSUV2 + 06 84 0 0682 CNST 41700000000 + A- V F- FSUV2 + 06 85 0 0683 CNST 41200000000 + A- V- F- FADV2 + 06 86 0 0684 CNST 21100000000 + V A F FADV2 + 06 87 0 0685 CNST 41600000000 + V A- F- FSUB1 + 06 88 0 0686 CNST 21600000000 + V- A F FSUV1 + 06 89 0 0687 CNST 41100000000 + V- A- F- FADV1 + 06 90 0 0688 CNST 20112000000 + V V F CADV1 FADV2 + 06 91 0 0689 CNST 20711000000 + V V- F CSUV2 FADV1 + 06 92 0 0690 CNST 20216000000 + V- V F CADV2 VSUV1 + 06 93 0 0691 CNST 20176000000 + V- V- F CSUV2 FSUV1 + 06 94 0 0692 CNST 13202582200 / A V X STAT1 CADV2 SRT10 DIVV1 + 06 95 0 0693 CNST 13207582200 / A V- X STAT1 CSUV2 SRT10 DIVV1 + 06 96 0 0694 CNST 13207582200 / A- V X STAT1 CSUV2 SRT10 DIVV1 + 06 97 0 0695 CNST 13202582200 / A- V- X STAT1 CADV2 SRT10 DIVV1 + 06 98 0 0696 CNST 15822000000 / V A X SRT10 DIVV1 + 06 99 0 0697 CNST 35822000000 / V A- X- SRT10 DIVV1 + 07 00 0 0698 CNST 35822000000 / V- A X- SRT10 DIVV1 + 07 01 0 0699 CNST 15822000000 / V- A- X SRT10 DIVV1 + 07 02 0 0700 CNST 10258220000 / V V X CADV2 SRT10 DIVV1 + 07 03 0 0701 CNST 10758220000 / V V- X CSUV2 SRT10 DIVV1 + 07 04 0 0702 CNST 10758220000 / V- V X CSUV2 SRT10 DIVV1 + 07 05 0 0703 CNST 10258220000 / V- V- X CADV2 SRT10 DIVV1 + 07 06 0 0704 CNST 23202972400 / A V F STAT1 CADV2 CLR FDVV1 + 07 07 0 0705 CNST 23207972400 / A V- F STAT1 CSUV2 CLR FDVV1 + 07 08 0 0706 CNST 23207972400 / A- V F STAT1 CSUV2 CLR FDVV1 + 07 09 0 0707 CNST 23202972400 / A- V- F STAT1 CADV2 CLR FDVV1 + 07 10 0 0708 CNST 29724000000 / V A F CLR FDVV1 + 07 11 0 0709 CNST 49724000000 / V A- F- CLR FDVV1 + 07 12 0 0710 CNST 4972400000 / V- A F- CLR FDVV1 + 07 13 0 0711 CNST 29724000000 / V- A- F CLR FDVV1 + 07 14 0 0712 CNST 20297240000 / V V F CADV2 CLR FDVV1 + 07 15 0 0713 CNST 20797240000 / V V- F CSUV2 CLR FDVV1 + 07 16 0 0714 CNST 20797240000 / V- V F CSUV2 CLR FDVV1 + 07 17 0 0715 CNST 20297240000 / V- V- F CADV2 CLR FDVV1 + 07 18 0 0716 CNST 11955000000 . A V X MULV2 SLT10 + 07 19 0 0717 CNST 31955000000 . A V- X- MULV2 SLT10 + 07 20 0 0718 CNST 31955000000 . A- V X- MULV2 SLT10 + 07 21 0 0719 CNST 11955000000 . A- V- X MULV2 SLT10 + 07 22 0 0720 CNST 11855000000 . V A X MULV1 SLT10 + 07 23 0 0721 CNST 31855000000 . V A- X- MULV1 SLT10 + 07 24 0 0722 CNST 31855000000 . V- A X- MULV1 SLT10 + 07 25 0 0723 CNST 11855000000 . V- A- X MULV1 SLT10 + 07 26 0 0724 CNST 10218550000 . V V X CADV2 MULV1 SLT10 + 07 27 0 0725 CNST 10718550000 . V V- X CSUV2 MULV1 SLT10 + 07 28 0 0726 CNST 10718550000 . V- V X CSUV2 MULV1 SLT10 + 07 29 0 0727 CNST 10218550000 . V- V- X CADV2 MULV1 SLT10 + 07 30 0 0728 CNST 22100000000 . A V F FMUV2 + 07 31 0 0729 CNST 42100000000 . A V- F- FMUV2 + 07 32 0 0730 CNST 42100000000 . A- V F- FMUV2 + 07 33 0 0731 CNST 22100000000 . A- V- F FMUV2 + 07 34 0 0732 CNST 22000000000 . V A F FMUV1 + 07 35 0 0733 CNST 42000000000 . V A- F- FMUV1 + 07 36 0 0734 CNST 42000000000 . V- A F- FMUV1 + 07 37 0 0735 CNST 22000000000 . V- A- F FMUV1 + 07 38 0 0736 CNST 20220000000 . V V F CADV2 FMUV1 + 07 39 0 0737 CNST 20720000000 . V F- F CSUV2 FMUV1 + 07 40 0 0738 CNST 20720000000 . V- V F CUSV2 FMUV1 + 07 41 0 0739 CNST 20220000000 . V- V- F CADV2 FMUV1 + + 07 43 0 0740 GTAB1 CNST 52780020000 MAX A V CFAV2 BCHL2 CADV2 + 07 44 0 0741 CNST 53207268001 MAX A V- STAT1 CSUV2 CFAV1 BCHL2 CADV1 + 07 45 0 0742 CNST 53206278002 MAX A- V STAT1 CSUV1 CFAV2 BCHL2 CADV2 + 07 46 0 0743 CNST 62781020000 MAX A- V- - CFAV2 BCLL2 CADV2 + 07 47 0 0744 CNST 52680010000 MAX V A CFAV1 BCHL2 CADV1 + 07 48 0 0745 CNST 53307268001 MAX V A- STAT2 CSUV2 CFAV1 BCHL2 CADV1 + 07 49 0 0746 CNST 53306278002 MAX V- A STAT2 CSUV1 CFAV2 BCHL2 CADV2 + 07 50 0 0747 CNST 62681010000 MAX V- A- - CFAV1 BCLL2 CADV1 + 07 51 0 0748 CNST 50127800200 MAX V V CADV1 CFAV2 BCHL2 CADV2 + 07 52 0 0749 CNST 50726800100 MAX V V- CSUV2 CFAV1 BCHL2 CADV1 + 07 53 0 0750 CNST 50627800200 MAX V- V CSUV1 CFAV2 BCHL2 CADV2 + 07 54 0 0751 CNST 60127810200 MAX V- V- - CADV2 CFAV2 BCHL2 CADV2 + 07 55 0 0752 CNST 52781020000 MIN A V CFAV2 BCLL2 CADV2 diff --git a/software/BALGOL/README.txt b/software/BALGOL/README.txt index e3cd823..1971f0a 100644 --- a/software/BALGOL/README.txt +++ b/software/BALGOL/README.txt @@ -8,8 +8,8 @@ format, with carriage-return/line-feed delimiters. BALGOL-Main.baca - Assembly listing of the BALGOL compiler mainline module, transcribed - by Paul Kimpel from + Assembly listing of the BALGOL compiler main-line module, + transcribed by Paul Kimpel from http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/ PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.