diff --git a/software/BALGOL/BALGOL-Main.baca b/software/BALGOL/BALGOL-Main.baca index 554bd23..2065663 100644 --- a/software/BALGOL/BALGOL-Main.baca +++ b/software/BALGOL/BALGOL-Main.baca @@ -29,7 +29,7 @@ 34 0 0010 SPO E+,4 SUM CHECK NONZERO 35 0 0011 MPB 4 T,10 CAUSES TYPEOUT AND HALT 36 0 0012 F424 9669,0,9669 - 37 0 0013 KDB B- PRESS START TO TRY AGAIN + 37 0 0013 LDB B- PRESS START TO TRY AGAIN 38 0 0014 BUN A- 39 0 0015 *C DFL *+1,11,1 FIVE TIMES 40 0 0016 *G F424 4000,42,B- TEN BLOCKS @@ -178,7 +178,7 @@ 01 83 0 0179 CHAR HLT 0 LAST CHARACTER READ FROM CARD 01 84 0 0180 CNTRI HLT 0 COUNTER FOR INSTRUCTIONS IN TARGET BUFFER 01 85 0 0181 CNTRF HLT 96 COUNTER FOR FIX-UPS IN BUFFER - 01 86 0 0182 D LT 0 EXPONENT OF NUMBER + 01 86 0 0182 D HLT 0 EXPONENT OF NUMBER 01 87 0 0183 WRTF RTF 4 *,0 RECORD TRANSFER CONSTANT FOR WRITE SUBROUTINE 01 88 0 0184 DESCR HLT 0 OUTPUT INSTRUCTION 01 89 0 0185 EXPLN HLT 0 SYMBOL ADDRESSES OF INSTRUCTION @@ -247,7 +247,7 @@ 02 52 0 0252 VIMAG HLT 0 CURRENT V-OPERAND 02 53 0 0253 V DEFN V1-1 - SWITCHES SET BY TRANSLATOR + SWITCHES SET BY TRANSLATOR 02 56 0 0253 SW2 HLT 0 PROCESSING SCALE FACTOR 02 57 0 0254 SW3 HLT 0 DECIMAL POINT SENSED IN CONSTANT 02 58 0 0255 SW6 HLT 0 WE MIGHT WANT IMPLIED MULTIPLICATION @@ -312,7 +312,7 @@ 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 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 @@ -327,7 +327,7 @@ 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 35 0 0327 CRY F2442 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 @@ -371,29 +371,29 @@ 03 76 0 0365 MEMMD F2447 1,ARACM,MEMST TRACE MODE RESERVED WORDS - 03 79 0 0366 SUBGN F2426 7001,0,SUBR + 03 79 0 0366 SUBGN F4246 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 81 0 0369 UNTGN F4246 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 83 0 0371 INPGN F4246 7004,0,INNMD 03 84 0 0372 CNST $INPUT$ - 03 85 0 0373 RETGN F2426 7001,0,RETN + 03 85 0 0373 RETGN F4246 7001,0,RETN 03 86 0 0374 CNST $RETURN$ - 03 87 0 0376 IFGN F2426 7691,0,IF + 03 87 0 0376 IFGN F4246 7691,0,IF 03 88 0 0377 CNST $IF$ - 03 89 0 0378 IMPGN F2420 7001,20,1209 + 03 89 0 0378 IMPGN F4240 7001,20,1209 03 90 0 0379 CNST $IMPL$ - 03 91 0 0380 ORGN F2426 7001,0,OR + 03 91 0 0380 ORGN F4246 7001,0,OR 03 92 0 0381 CNST $OR$ - 03 93 0 0382 GOGN F2426 7001,0,GO + 03 93 0 0382 GOGN F4246 7001,0,GO 03 94 0 0383 CNST $GO$ - 03 95 0 0384 OUTGN F2426 7004,0,OUTMD + 03 95 0 0384 OUTGN F4246 7004,0,OUTMD 03 96 0 0385 CNST $OUTPUT$ - 03 97 0 0387 EITGN F2426 7001,0,ETHR + 03 97 0 0387 EITGN F4246 7001,0,ETHR 03 98 0 0388 CNST $EITHER$ - 03 99 0 0390 BOOGN F2426 7004,0,INTMD + 03 99 0 0390 BOOGN F4246 7004,0,INTMD 04 00 0 0391 CNST $BOOLEAN$ - 04 01 0 0393 COMGN F2426 7001,0,COMNT + 04 01 0 0393 COMGN F4246 7001,0,COMNT 04 02 0 3094 CNST $COMMENT$ 04 03 0 0396 LEQGN F4248 7001,01,12 04 04 0 0397 CNST $LEQ$ @@ -407,7 +407,7 @@ 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 15 0 0411 FORGN F4246 7004,0,FORMD 04 16 0 0412 CNST $FOR$ 04 17 0 0413 PROGN F4246 7004,0,PRCMD 04 18 0 0414 CNST $PROCEDURE$ @@ -532,7 +532,7 @@ 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 40 0 0544 TOGN F4246 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 @@ -859,7 +859,7 @@ 08 64 0 0850 SCNI LDR S2 08 65 0 0851 STR S1 MOVE SCANNING WINDOWS TO RIGHT 08 66 0 0852 LDR K2 ACROSS SOURCE STRING - 08 67 0 0853 TR K1 + 08 67 0 0853 STR K1 08 68 0 0854 SCN2 STP INPTX 08 69 0 0855 BUN INPT GET NEXT CHARACTER FROM CARD 08 70 0 0856 SCN3 DEFN * @@ -1358,7 +1358,7 @@ 013 63 0 1291 DLB V8,64,0 013 64 0 1292 STP LIBRX BRING IN THE LABEL PROCESSOR ROUTINE 013 65 0 1293 BUN LIBRF -013 66 0 1294 LDB L,64,0 +013 66 0 1294 DLB L,64,0 013 67 0 1295 STB MNTR,04 013 68 0 1296 CAD L IF THIS IS A NUMERIC LABEL 013 69 0 1297 BSA *+2,0 ATTACH A MINUS SIGN TO IT @@ -1818,7 +1818,7 @@ 018 24 0 1721 NEWT CAD TEMPS RECORD CURRENT SET OF TEMPORARY -018 25 0 1722 SAL 4 STORAGE CELLS IN SAVET STACK +018 25 0 1722 SLA 4 STORAGE CELLS IN SAVET STACK 018 26 0 1723 CLL TEMPS AND MARK THE TEMPS STACK EMPTY 018 27 0 1724 BUN INS @@ -2190,7 +2190,7 @@ 021 94 0 2042 STP ASMBX 021 95 0 2043 BUN ASMBL,BUNFR 021 96 0 2044 STP CMPLX COMPILE INPUT OR OUTPUT, IF THIS -021 97 0 2045 UPSLN F424 CRA.01,WMG FOR APPEARED THERE. +021 97 0 2045 UPSLN F424 CRA,01,WMG FOR APPEARED THERE. 021 98 0 2046 *E STP REMX,EXEC FIX UP ALL THE BUNS TO THIS FOR LOOP 021 99 0 2047 BUN REM,C+ 022 00 0 2048 *A STP DECNX DROP THE FOR MODE @@ -2596,4 +2596,796 @@ 026 00 0 2407 MONT DFL THI,62,71 MONITOR STATEMENT. 026 01 0 2408 IFL TAG,00,1 026 02 0 2409 IFL CHI,00,1 PREPARE FOR NUMERIC LABELS -025 03 0 2410 STP EXCTR +026 03 0 2410 STP EXCTR +026 04 0 2411 BUN SCAN GET NEXT ITEM FROM SCANNER. +026 05 0 2412 CFA SMCLN +026 06 0 2413 BCU *+5 IF IT IS A SEMICOLON WE EXIT +026 07 0 2414 DFL THI,62,29 +026 08 0 2415 STB S+,61 +026 09 0 2416 CLL TAG +026 10 0 2417 BUN ANALZ +026 11 0 2418 BFA *+2,01,0 IF IT IS NOT AN OPERAND WE RECYCLE +026 12 0 2419 BUN MONT+1 +026 13 0 2420 DLB L,64,0 +026 14 0 2421 LDR - 0 +026 15 0 2422 BFR *+2,21,3 +026 16 0 2423 DFL - 0,22,87 MARK OPERAND AS MONITORED,UNCLASSIFIED +026 17 0 2424 *S BUN A+,0299 +026 18 0 2425 DFL - 0,12,60 OR IF PROCESSING DUMP, +026 19 0 2426 LDB DUMBS AS A VARIABLE TO BE DUMPED +026 20 0 2427 IFL - 0,45,1 +026 21 0 2428 BUN MONT+1 +026 22 0 2429 *A DFL - 0,12,80 +026 23 0 2430 LDB ARTHG +026 24 0 2431 STP LIBRX PUT MONITOR SUBROUTINE INTO PROGRAM +026 25 0 2432 BUN LIBRF +026 26 0 2433 BUN MONT+1 +026 27 0 +026 28 0 +026 29 0 2434 SUBR IFL TAG,00,1 SUBROUTINE +026 30 0 2435 DFL NU,62,29 +026 31 0 2436 IFL DELTA,00,4 +026 32 0 2437 STP ASMBX +026 33 0 2438 BUN ASMBL,BUNFR COMPILE BUN FORWARD +026 34 0 2439 STP INSX,FUNS PUT LOCN INTO FUNS +026 35 0 2440 BUN INS2 (RETURN WILL LOOK AT THIS) +026 36 0 2441 STP EXCTR +026 37 0 2442 BUN SCAN GET NAME OF SUBROUTINE FROM SCANNER +026 38 0 2443 STP TRTGX +026 39 0 2444 BUN TRTG DEFINE IT +026 40 0 2445 STP NEWTX,SAVET +026 41 0 2446 BUN NEWT SAVE TEMP STORAGES +026 42 0 2447 CAD CRS +026 43 0 2448 BUN EXIT COMPILE CIRCLE S. + + +026 46 0 2449 EXTRN STP EXCTR EXTERNAL. +026 47 0 2450 BUN SCAN +026 48 0 2451 IFL EPSLN,00,1 +026 49 0 2452 STA V2 +026 50 0 2453 IFL TAG,00,1 +026 51 0 2454 DFL PEH,62,6 DONT LOOK ON LEVEL ZERO WHEN DOING +026 52 0 2455 STP EXCTR A DECLARATION +026 53 0 2456 BUN SCAN GET NAME FROM SCANNER +026 54 0 2457 IFL PEH,62,6 +026 55 0 2458 DLB V2,64,0 IS IT AN EXT STATEMENT OR EXT PROCEDURE +026 56 0 2459 DBB A+,PRCMD +026 57 0 2460 STP TRTGX EXTERNAL STATEMENT +026 58 0 2461 BUN TRTGZ DEFINE IT +026 59 0 2462 CAD BUF RECORD ITS SEGMENT NUMBER +026 60 0 2463 DLB L,64,0 (THE OVERLAY WILL FIX UP ANY +026 61 0 2464 DFL - 0,12,20 +026 62 0 2465 STP INSX +026 63 0 2466 BUN INS1 +026 64 0 2467 IFL ALEPH,62,6 SEGMENT NUMBER) +026 65 0 2468 STP ASMBX +026 66 0 2469 BUN SMBL,BUNZ COMPILE BUN FORWARD +026 67 0 2470 BUN NORM +026 68 0 2471 *A DLB L,64,0 EXTERNAL PROCEDURE +026 69 0 2472 STB - 0,66 MARK AS 83 CODE. +026 70 0 2473 IFL - 0,22,83 +026 71 0 2474 LDR NRM SCAN OFF THE PARAMETERS. + + +026 74 0 2475 PRCNT STR C+,04 (R/04 IS EXIT LINE) +026 75 0 2476 CLL V2 +026 76 0 2477 STP INPTX BYPASS PARTS OF CARD +026 77 0 2478 BUN INPT UNTIL WE HAVE AN EXTRA RIGHT PARENTHESIS +026 78 0 2479 BFA B+,02,04 +026 79 0 2480 BFA A+,02,24 +026 80 0 2481 BUN INPT +026 81 0 2482 *A IFL V2,00,2 +026 82 0 2483 *B DFL V2,00,1 +026 83 0 2484 BRP INPUT +026 84 0 2485 *C BUN * + + +026 87 0 2486 PROCD CLL RR3 WORD PROCEDURE SENSED. +026 88 0 2487 LDR VARB +026 89 0 2488 STR FRSTP,04 SET FRSTP TO LOCATION OF 1ST PARAMETER +026 90 0 2489 LDR PR3 +026 91 0 2490 STR PR1 SAVE PREFIX LIST +026 92 0 2491 CLL PR3 +026 93 0 2492 LDR CHI +026 94 0 2493 CLL CHI SHUT OFF LABEL PROCESSING +026 95 0 2494 STR CHI3 +026 96 0 2495 STP XSUBX INITIALIZE THE DECLARATION +026 97 0 2496 BUN XSUB (THIS PART COMMON TO PROC AND FUNCTION) +026 98 0 2497 STA LEVEL SET LEVEL = KC +026 99 0 2498 STB - 0,21 +027 00 0 2499 IFL - 0,21,3 MARK TYPE OF THIS PROCEDURE UNSPECIFIED +027 01 0 2500 NRM BUN NORM + + +027 04 0 2501 FUNC STP XSUBX WORD FUNCTION SENSED. +027 05 0 2502 BUN XSUB DO INITIAL STEPS +027 06 0 2503 DFL - 0,11,2 SET TAU DIGIT = 6 +027 07 0 2504 IFL FNSW,00,1 +027 08 0 2505 CAD TOP COMPILE NAME OF THIS FUNCTION +027 09 0 2506 BUN EXIT + + +027 12 0 2507 PRCCM STP YSUBX RECORD PARAMETER +027 13 0 2508 BUN YSUB1 +027 14 0 2509 BUN NORM + + +027 17 0 2510 ARAPM LDB OPRND ARRAY NAME APPEARS AS PARAMETER +027 18 0 2511 CAD - 0 +027 19 0 2512 SLT 2 +027 20 0 2513 STA ARMS,44 PUT NAME INTO ARMS +027 21 0 2514 STP YSUBX +027 22 0 2515 BUN YSUB2 MARK IT AS PARAMETER +027 23 0 2516 BUN NORM + + +027 26 0 2517 INTG CLL RR2 INTEGER DECLARATION +027 27 0 2518 IFL RR2,21,1 SET TYPE = FIXED +027 28 0 2519 BUN ARRAY + + +027 31 0 2520 BOOL DEFN INTG BOOLEAN DECLARATION (SAME) + + +027 34 0 2520 FLTG CLL RR2 FLOATING,REAL. SET TYPE = FLOATING +027 35 0 2521 ARRAY IFL DELTA,00,5 +027 36 0 2522 STP CMPLX ARRAY DECLARATION +027 37 0 2523 BUN LEFT + + +027 40 0 2524 DCLCM BUN NORM DECLARATIONS ARE HANDLED BY SCANNER + + +027 43 0 2525 ARDEC IFL IOTA,00,1 START TO DECLARE AN ARRAY, JUST AFTER A( +027 44 0 2526 CAD XONE+1 OF A(I,J,K,L) IS SENSED +027 45 0 2527 STA ARRI INITIALIZE ARRI,ARRL TO 1 +027 46 0 2528 STA ARRL +027 47 0 2529 CAD CRF +027 48 0 2530 BUN EXIT + + +027 51 0 2531 ARACM STP NULSX ARRAY DECLARATION COMMA SENSED +027 52 0 2532 BUN NULSB TREAT AS )( BUT PRESERVE ARRAY MODE +027 53 0 2533 LDB IOTA +027 54 0 2534 IBB NORM,9999 IF THIS IS A COMMA BETWEEN DIMENSINOS, +027 55 0 2535 CAD CRG IT IS A CIRCLE-G OPERATOR +027 56 0 2536 BUN EXIT + + +027 59 0 2537 ARFCM IFL RHO,62,29 ARRAY FILL IS ALL HANDLED BY SCANNER +027 60 0 2538 BUN NORM (IN USUAL WAY) SEE NUMBER SUBROUTINE + + + + +027 65 0 2539 SEMIC STP COMPLX SEMICOLON IS THOUGHT OF A )( +027 66 0 2540 BUN RIGHT +027 67 0 2541 STP CMPLX THIS INNOCENT-LOOKING THING MAY CAUSE +027 68 0 2542 BUN LEFT ALL SORTS OF THINGS TO HAPPEN. +027 69 0 2543 SEMIX BUN * + + +027 72 0 2544 QSUB STP CMPLX FINISH SETTING V=E +027 73 0 2545 BUN RIGHT +027 74 0 2546 STP ASMBX ASSEMBLE STP FORWARD +027 75 0 2547 BUN ASMBL,STPFR +027 76 0 2548 CLL DEX +027 77 0 2549 IFL PI,00,1 +027 78 0 2550 STP ASMBX BUN FORWARD +027 79 0 2551 BUN ASMBL,BUNFR +027 80 0 2552 CLL PI +027 81 0 2553 QSUBX BUN * + + +027 84 0 2554 RUN LDR K2 INTERRUPT NORMAL SCANNING. +027 85 0 2555 STR K3,04 +027 86 0 2556 LDR S2 RUN BACK THE VARIABLE PART +027 87 0 2557 STR S3,04 OF THE FOR STATEMENT AGAIN +027 88 0 2558 LDR SCAN +027 89 0 2559 STR SCNXX,04 +027 90 0 2560 LDR FV +027 91 0 2561 STR STFOL,04 +027 92 0 2562 IFL THETA,62,29 +027 93 0 2563 BUN SCN7 +027 94 0 2564 RUNXX DFL THETA,62,29 AFTER THE = SIGN COMES, +027 95 0 2565 LDR K3 RESTORE NORMAL SCANNING PROCEDURE. +027 96 0 2566 STR K2,04 +027 97 0 2567 LDR S3 +027 98 0 2568 STR S2,04 +027 99 0 2569 LDR SCNXX +028 00 0 2570 STR SCAN,04 +028 01 0 2571 RUNX BUN * + + +028 04 0 2572 FSUB1 STP REMX,OPRND +028 05 0 2573 BUN REM2,*+2 PULL LEFT PARENTHESIS +028 06 0 2574 G6 F424 7039,0,* +028 07 0 2575 STP CMPLX +028 08 0 2576 BUN LEFT PUT ANOTHER ONE ON +028 09 0 2577 FSUB2 CLL DEX +028 10 0 2578 STP RUNX RUN BACK V = +028 11 0 2579 BUN RUN +028 12 0 2580 STP CMPLX +028 13 0 2581 BUN WMG,CRB +028 14 0 2582 FSUBX BUN * + + THROW AWAY TOP OF STACK,SUBSTITUTE CRN +028 17 0 2583 USUB STP REMX,OP +028 18 0 2584 BUN REM,PRSB +028 19 0 2585 G8 F424 1053,0,* + + +028 22 0 2586 PRSB LDB PRSBX +028 23 0 2587 DLB - 9998,44,0 PRSB SENDS SPECIFIED OPERATOR TO COMPILER +028 24 0 2588 CAD - 0 +028 25 0 2589 STP CMPLX AND THEN DOES NULSB +028 26 0 2590 BUN WMG1 +028 27 0 2591 NULSB LDB MODE NULSB IS A SEMICOLON WHICH PROTECTS +028 28 0 2592 IFL - 0,22,1 THE MODE STACK +028 29 0 2593 STP SEMIX +028 30 0 2594 BUN SEMIC +028 31 0 2595 LDB MODE +028 32 0 2596 DFL - 0,22,1 +028 33 0 2597 PRSBX BUN * +028 34 0 2598 USUBX DEFN PRSBX +028 35 0 2598 NULSX DEFN PRSBX + + +028 38 0 2598 OLDT STP REMX,TEMPS THROW OUT ALL TEMP STORAGES +028 39 0 2599 BUN REM,OLDT CURRENTLY BEING USED, THEY CANT +028 40 0 2600 *A STP REMX,SAVET BE USED ANY MORE +028 41 0 2601 BUN REM,*+2 +028 42 0 2602 G7 F424 1565,0,* REINSTATE OLD SET +028 43 0 2603 SRA 4 +028 44 0 2604 STA TEMPS,04 +028 45 0 2605 BUN GENRX + + +028 48 0 2606 GETMP STP REMX,TEMPS SET AN AVAILABLE TEMP STORAGE CELL +028 49 0 2607 BUN REM,GETMX +028 50 0 2608 CAD VARB EITHER FROM TEMPS STACK +028 51 0 2609 SLA 4 OR A NEW ONE,IF THAT STACK HAS BEEN +028 52 0 2610 DFL VARB,04,1 CLEANED OUT. +028 53 0 2611 GETMX BUN GETMX + + +028 56 0 2612 XSUB STP ASMBX COMMON PART OF BEGINNING OF PROCEDURE +028 57 0 2613 BUN ASMBL,BUNFR AND FUNCTION DECLARATIONS +028 58 0 2614 STP INSX,FUNS FIRST COMPILE FORWARD REFERENCE AROUND +028 59 0 2615 BUN INS2 +028 60 0 2616 STP NEWTX,SAVET PUT LOCN ONTO FUN-STACK +028 61 0 2617 BUN NEWT STASH AWAY CURRENT SET OF TEMP STORAGE +028 62 0 2618 STP EXCTR +028 63 0 2619 BUN SCAN GET NAME OF PROCEDURE FROM SCANNER +028 64 0 2620 STA TOP +028 65 0 2621 STP CMPLX COMPILE CIRCLE-P OPERATOR +028 66 0 2622 BUN WMG,CRP +028 67 0 2623 IFL PARSW,00,1 +028 68 0 2624 IFL KC,00,1 +028 69 0 2625 STP CMPLX AND A LEFT PARENTHESIS +028 70 0 2626 BUN LEFT +028 71 0 2627 STP CMPLX AND A CIRCLE Q +028 72 0 2628 BUN WMG,CRQ +028 73 0 2629 CAD VARB +028 74 0 2630 SRT 4 +028 75 0 2631 STR NOPAV,44 ASSEMBLE +028 76 0 2632 STP ASMBX (LOC OF PARAMETER 1) NOP 0000 +028 77 0 2633 BUN ASMBL,NOPAV +028 78 0 2634 IFL PHI,00,1 +028 79 0 2635 DLB L,64,0 +028 80 0 2636 CAD KC RECORD NUMBER OF THIS PROCEDURE +028 81 0 2637 STA - 0,04 +028 82 0 2638 DFL - 0,82,1 +028 83 0 2639 XSUBX BUN * + + +028 86 0 2640 YSUB1 LDB KAPPA COLLECTING PARAMETERS +028 87 0 2641 CLL KAPPA +028 88 0 2642 DBB A+,1 HAVE EMPTY SUBSCRIPTS APPEARED +028 89 0 2643 LDB FUNS OR DO WE HAVE A CALL BY VALUE +028 90 0 2644 CAD - 0 +028 91 0 2645 BSA A+,1 +028 92 0 2646 YSUB2 DLB L,64,00 IF NOT, +028 93 0 2647 IFL - 0,12,10 MARK PARAMETER AS CALL BY NAME +028 94 0 2648 LDB FUNS +028 95 0 2649 CAD - 0 +028 96 0 2650 BSA *+2,3 +028 97 0 2651 BUN *+2 +028 98 0 2652 IFL TAG,00,1 PUT TAG ON AFTER 2ND SEMICOLON +028 99 0 2653 SRA 4 +029 00 0 2654 LSA 0 +029 01 0 2655 STP INSX,PAREF PUT CALL BY NAME PARAMETERS ONTO +029 02 0 2656 BUN INS PAREF STACK.WE WILL USE THIS +029 03 0 2657 CAD - 0 +029 04 0 2658 SLA 4 LATER TO FIX UP REFERENCES TO THEM +029 05 0 2659 STA - 0 SHIFT LINK FIELD AROUND(SHREWD MOVE) +029 06 0 2660 PRFSW F4241 1210,01,1 IN PAREF LINK FIELD IS 64-FIELD +029 07 0 2661 *A STP REMX,OPRND +029 08 0 2662 BUN REM,*+2 +029 09 0 2663 FUR HLT 4 +029 10 0 2664 SRA 4 ASSIGN PARAMETER LOCATION +029 11 0 2665 STA *+3,04 +029 12 0 2666 CAD VARB +029 13 0 2667 SLA 4 +029 14 0 2668 STA *,64 +029 15 0 2669 DLB TOP,64,0 KEEP COUNT OF NUMBER OF +029 16 0 2670 DFL - 0,82,99 PARAMETERS FOR FUTURE CHECKING +029 17 0 2671 DFL VARB,04,1 +029 18 0 2672 LDB FUNS KEEP COUNT OF NUMBER OF +029 19 0 2673 IFL - 0,22,1 PARAMETERS IN FUNS. +029 20 0 2674 YSUBX BUN * + + + + +029 25 0 2675 CMPL BFA VRBL,01,0 THIS HERE IS THE COMPILER +029 26 0 2676 BFA WMG1,01,1 +029 27 0 2677 BFA LEFT,01,2 CHECK KIND OF QUANTITY.. +029 28 0 2678 RIGHT STP REMX,OP OPERAND,OPERATOR,LEFT PAREN, OR RIGHT PAR +029 29 0 2679 BUN REM,E+ PROCESS RIGHT PARENTHESIS.. +029 30 0 2680 STP WEMX +029 31 0 2681 BUN WEM,LEFT +029 32 0 2682 CNST 34652540000 (EXTRA RIGHT PARENTHESIS) +029 33 0 2683 *E CFA LPAR,67 +029 34 0 2684 BCE B+ DO ALL OPERATIONS OUTSTANDING SINCE +029 35 0 2685 STP BENRX LAST LEFT PARENTHESIS +029 36 0 2686 BUN GENR +029 37 0 2687 BUN RIGHT +029 38 0 2688 *B STP DECNX CHANGE PARENTHESIS COUNT +029 39 0 2689 BUN DECN ON THIS MODE +029 40 0 2690 LCCT BUN *+4 +029 41 0 2691 LDR LOCN +029 42 0 2692 STR IMAGE-1,64 +029 43 0 2693 IFL LCCT,62,29 +029 44 0 2694 CMPLX BUN * +029 45 0 2695 VRBL1 STA PAR +029 46 0 2696 VRBL STP INSX,OPRND PROCESS OPERAND.. +029 47 0 2697 BUN INS SIMPLY PUT IT ON OPERAND STACK +029 48 0 2698 BUN CMPLX +029 49 0 2699 LEFT LDB PHI PROCESS LEFT PARENTHESIS.. +029 50 0 2700 CLL PHI +029 51 0 2701 DBB CMPLX,1 EXIT, IF EXPECTING A LEFT PARENTHESIS +029 52 0 2702 LDB MODE +029 53 0 2703 IFL - 0,22,1 INCREASE PARENTHESIS COUNT ON THIS MODE +029 54 0 2704 FORTY CLA 40 +029 55 0 2705 BUN A+ AND INSERT LEFT PARENTHESIS IN OP STACK +029 56 0 2706 WMG LDB CMPLX +029 57 0 2707 DLB - 9999,44,0 PROCESS OPERATOR.. +029 58 0 2708 CAD - 0 +029 59 0 2709 WMG1 LDB OP +029 60 0 2710 LDR - 0 +029 61 0 2711 BFR A+,66,0 IF TOP OF OPERATOR STACK IS A LEFT +029 62 0 2712 STA SAVOP PARENTHESIS, +029 63 0 2713 CFA - 0,22 OR HIERARCHY OF NEW OP IS HIGHER THAN +029 64 0 2714 BCH A+ THAT OF THE TOP OF THE OP STACK, +029 65 0 2715 BCL B+ MERELY PLACE NEW OP ONTO THE STACK. +029 66 0 2716 BSA *+2,0 +029 67 0 2717 BUN A+ ON EQUAL HIERRARCHY DO THE SAME +029 68 0 2718 BFA *+2,31,0 EXCEPT ON ORDINARY BINARY OPERATIONS +029 69 0 2719 BUN A+ +029 70 0 2720 LDB OPRND FOR THESE, CHECK IF EITHER THE +029 71 0 2721 LDR - 0 LAST OR THE SECOND-LAST OPERAND IS IN +029 72 0 2722 BFR B+,11,0 THE ACCUMULATOR, AND IF SO +029 73 0 2723 LDB - 0 PERFORM THE OPERATION IMMEDIATELY +029 74 0 2724 LDR - 0 +029 75 0 2725 BFR B+,11,0 +029 76 0 2726 *A STP INSX,OP +029 77 0 2727 BUN INS +029 78 0 2728 *C BUN CMPLX +029 79 0 2729 *B STP REMX,OP IN THE CASE OF LOWER HIERARCHY, +029 80 0 2730 BUN REM,*+2 EXECUTE THE LAST OPERATOR +029 81 0 2731 NPCN NOP 0 +029 82 0 2732 STP GENRX GO TO ITS GENERATOR +029 83 0 2733 BUN GENR +029 84 0 2734 CAD SAVOP +029 85 0 2735 BUN WMG1 AND RECYCLE + + +029 88 0 2736 ASMBL LDB ASMBX THE ASSEMBLER. +029 89 0 2737 DLB - 9999,44,0 +029 90 0 2738 ASMBZ CAD - 0 +029 91 0 2739 ASMBY CLL INSTR +029 92 0 2740 CLL INSTP +029 93 0 2741 STA INSTR,00 +029 94 0 2742 STA INSTP,00 +029 95 0 2743 STA G +029 96 0 2744 LDR XI +029 97 0 2745 BZR A+ +029 98 0 2746 CLL AI OMIT SLT10 INSTRUCTION, IF STA OR SRT10 +029 99 0 2747 BFA B+,62,40 FOLLOWS +030 00 0 2748 CFA SRT10,07 +030 01 0 2749 BCU A+ +030 02 0 2750 DFL LOCN,64,1 +030 03 0 2751 BUN ASMBX +030 04 0 2752 *B DFL LOCN,64,1 +030 05 0 2753 IFL INSTR,41,1 (CHANGE STA TO STR) +030 06 0 2754 IFL INSTP,41,1 +030 07 0 2755 *A CFA +9999999999 +030 08 0 2756 BCH C+ +030 09 0 2757 LDB INSTR ASSEMBLE WITH V(I) IF THE +030 10 0 2758 LDR - V SIGN IS 0,1,2, OR 3 +030 11 0 2759 BFR D+,11,5 +030 12 0 2760 *E STP LASMX IN ORDINARY CASES, GO TO THE +030 13 0 2761 BUN LASMB LITTLE ASSEMBLER. +030 14 0 2762 BUN ASMBX +030 15 0 2763 *D DLB - V,64,0 WHOOPS, ITS AN ARRAY NAME. +030 16 0 2764 LDR - 0 WE PROBABLY HAVE TO GET ITS INDEX +030 17 0 2765 STA GP IN REGISTER B +030 18 0 2766 BFR F+,11,7 IF THE ARRAY HAS ALREADY BEEN INDEXED, +030 19 0 2767 BFR E-,11,5 SKIP THIS PHASE, IF THE SUBSCRIPT IS +030 20 0 2768 IFL - 0,11,1 CONSTANT,GO TO LITTLE ASSEMBLER +030 21 0 2769 STB TEMP +030 22 0 2770 LDB - 0 GET THE SUBSCRIPT VALUE +030 23 0 2771 CAD - 0 IT CANT BE AN ACCUMULATOR SYMBOL +030 24 0 2772 DLB - 0,64,0 +030 25 0 2773 LDR - 0 +030 26 0 2774 BFA Q+,11,3 IS IT A TEMP STORAGE +030 27 0 2775 BFR Q+,11,6 IS IT ANOTHER ARRAY +030 28 0 2776 STP ASSNX OTHERWISE PREPARE A PLACE FOR IT IN +030 29 0 2777 BUN ASSN MEMORY +030 30 0 2778 CFA DEX,67 IF IT HASNT YET BEEN ASSIGNED +030 31 0 2779 STA DEX,67 +030 32 0 2780 BCU G+ IS THE INDEX IN THE B REGISTER +030 33 0 2781 LDB TEMP +030 34 0 2782 STP REMX IF SO,REMOVE REFERENCE TO IT +030 35 0 2783 BUN REM1,F+ +030 36 0 2784 G99 F424 9629,0,0 +030 37 0 2785 *Q CLL DEX SET CONTENTS OF REGISTER B TO UNKNOWN +030 38 0 2786 *G LDB TEMP HERE A TRICKY PART. +030 39 0 2787 STP REMX PUT THE SUBSCRIPT ONTO THE XVP STACK +030 40 0 2788 BUN REM1,*+2 IF IT IS ANOTHER ARRAY WHICH MUST BE +030 41 0 2789 BUN H+ CALLED,KEEP THIS UP UNTIL WE GET +030 42 0 2790 STP INSX,XVP TO A NON-ARRAY. +030 43 0 2791 BUN INS +030 44 0 2792 DLB - 0,64,0 +030 45 0 2793 BFA H+,11,3 +030 46 0 2794 CAD - 0 +030 47 0 2795 BFA REM1,11,6 +030 48 0 2796 *H CAD LDBV9 +030 49 0 2797 *H STA INSTR COMPILE A SERIES OF LDB S +030 50 0 2798 CLL G UNTIL THE INDEX IS FINALLY IN REGISTER B +030 51 0 2799 STP REMX,XVP +030 52 0 2800 BUN REM,I+ +030 53 0 2801 *F CAD INSTP THE INSTRUCTION IS TO BE B-MODIFIED +030 54 0 2802 LSA 1 +030 55 0 2803 STA INSTR +030 56 0 2804 LDR GP +030 57 0 2805 STR G +030 58 0 2806 BUN E- GO TO THE LITTLE ASSEMBLER +030 59 0 2807 *I STA V9 +030 60 0 2808 STP LASMX +030 61 0 2809 BUN LASMB +030 62 0 2810 CSU LDBV9 +030 63 0 2811 BUN H- +030 64 0 2812 *C BSA G4P,4 ABSOLUTE MACHINE ADDRESS +030 65 0 2813 BSA G6P,6 ADDRESS RELATIVE TO THIS LOCATION +030 66 0 2814 BSA G7P,7 ADDRESS TO BE BLANKED OUT +030 67 0 2815 BSA G8P,8 FORWARD REFERENCE ADDRESS +030 68 0 2816 IFL INSTR,12,10 (B-MODIFICATION ON SIGNS OF 5 OR 9) +030 69 0 2817 BSA G8P,9 B-MODIFIED FORWARD REFERENCE +030 70 0 2818 GEXIT STP WRITX +030 71 0 2819 BUN WRIT2 +030 72 0 2820 ASMBX BUN * +030 73 0 2821 G4P LDR INSTR SET FLAG IF THIS IS SLT10 INSTRUCTION +030 74 0 2822 CFR SLT10,07 +030 75 0 2823 BCU GEXIT +030 76 0 2824 IFL XI,00,1 +030 77 0 2825 BUN GEXIT +030 78 0 2826 G6P CAD LOCN +030 79 0 2827 SRA 4 +030 80 0 2828 ADA INSTR +030 81 0 2829 STA INSTR,04 +030 82 0 2830 BUN GEXIT +030 83 0 2831 G8P CAD LOCN +030 84 0 2832 LSA 4 +030 85 0 2833 LDR PSI +030 86 0 2834 BZR *+2 +030 87 0 2835 LSA 7 INCREMENTED FORWARD REFERENCE +030 88 0 2836 DLB OP,44,0 +030 89 0 2837 LDR PI PUT FORWARD REFERENCE OPERATOR +030 90 0 2838 BZR *+2 ONTO EITHER OPERATOR STACK, OR +030 91 0 2839 DLB EXEC,44,0 (THE STP,BUN S OF FOR) ONTO EXEC-STACK +030 92 0 2840 STP INSX +030 93 0 2841 BUN INS1 +030 94 0 2842 G7P IFL WRTSW,41,4 +030 95 0 2843 BUN GEXIT + + +030 98 0 2844 LASMB LDB INSTR LITTLE ASSEMBLER. +030 99 0 2845 LDR - V +031 00 0 2846 DLB - B,64,0 ASSEMBLE AN OPERAND FOR ME +031 01 0 2847 CAD - 0 +031 02 0 2848 STA VIMAG WHAT KIND OF AN OPERAND +031 03 0 2849 BFR T3,11,3 A TEMP STORAGE +031 04 0 2850 BFR T1,11,1 A SIMPLE VARIABLE +031 05 0 2851 BFR T2,11,2 A CONSTANT +031 06 0 2852 BFR T4,11,4 A LIBRARY,EXTERNAL PROCEDURE +031 07 0 2853 BFR T5,11,5 AN ARRAY +031 08 0 2854 BFR T4,11,8 A PROCEDURE OR FUNCTION +031 09 0 2855 T9 LDR - 1 +031 10 0 2856 BFR *+2,11,0 +031 11 0 2857 STR EXPLN +031 12 0 2858 STP INSX A LABEL +031 13 0 2859 BFA H+,64,0 IF IT HASNT BEEN DEFINED YET, +031 14 0 2860 BUN T4 RECORD PLACE FOR FORWARD REFERENCE +031 15 0 2861 T1 BSA T4+1,8 IS IT A DIMENSION PARAMETER +031 16 0 2862 LDR - 1 +031 17 0 2863 BUN *+2 +031 18 0 2864 T2 LDR DICT+33 +031 19 0 2865 STR EXPLN +031 20 0 2866 STP ASSNX ASSIGN PLACE FOR VARIABLE OR CONSTANT +031 21 0 2867 BFA ASSN1,64,0 IF NOT THERE ALREADY +031 22 0 2868 BUN T4+1 +031 23 0 2869 T3 CLL VIMAG +031 24 0 2870 STR VIMAG,00 FREE UP TEMP STORAGE CELL FOR +031 25 0 2871 CAD G FUTURE USE UNLESS G = 1 OR 3 +031 26 0 2872 BSA LASMX,3 +031 27 0 2873 BSA T4-2,1 +031 28 0 2874 SLT 10 +031 29 0 2875 STP INSX,TEMPS +031 30 0 2876 BUN INS +031 31 0 2877 CAD TCONS +031 32 0 2878 STA EXPLN +031 33 0 2879 T4 CAD VIMAG INSERT NEW ADDRESS INTO INSTRUCTION +031 34 0 2880 SRA 4 +031 35 0 2881 STA INSTR,04 +031 36 0 2882 STP INSX +031 37 0 2883 BSA H+,9 +031 38 0 2884 BSA *+2,8 +031 39 0 2885 BUN *+2 +031 40 0 2886 BFA H+,51,8 +031 41 0 2887 *F ADD XZERO+1 +031 42 0 2888 BSA B+,1 +031 43 0 2889 CAD G +031 44 0 2890 BSA LASMX-1,3 G=3 MEANS THIS IS ONLY AN INDEX PSEUDO-OP +031 45 0 2891 *G STP WRITX +031 46 0 2892 BUN WRIT2 +031 47 0 2893 CLL EXPLN +031 48 0 2894 LASMX BUN * +031 49 0 2895 *B EXT EX0 CHECK IF THIS ADDRESS IS A +031 50 0 2896 SUB FRSTP NAME PARAMETER WHICH MUST BE FIXED +031 51 0 2897 SLA 8 UP AT RUNNING TIME +031 52 0 2898 LDB PAREF +031 53 0 2899 *E CFA - 0,22 +031 54 0 2900 BCE H+ +031 55 0 2901 DLB - 0,64,0 +031 56 0 2902 BUN E- +031 57 0 2903 T5 LDR G ARRAY - IF G NEQ 1 OR 3 +031 58 0 2904 BFR T4,12,10 RETURN THE INCREMENT WORD TO +031 59 0 2905 BFR T4,12,30 AVAILABLE STORAGE, WE ARE DONE WITH IT +031 60 0 2906 CAD AVAIL +031 61 0 2907 STB AVAIL +031 62 0 2908 STA - 0,04 +031 63 0 2909 LDB VIMAG +031 64 0 2910 CAD - 1 +031 65 0 2911 BUN T4-1 +031 66 0 2912 *H CAA BUF +031 67 0 2913 SLA 4 +031 68 0 2914 EXT GTAB0+5 +031 69 0 2915 ADD LOCN +031 70 0 2916 BUN INS1 +031 71 0 2917 TCONS CNST $TEMP$ + + + +031 75 0 2918 WRIT2 CAD LOCN WRITE SUBROUTINE - PUTS INSTRUCTION +031 76 0 2919 SRA 4 INTO OUTPUT BUFFER. +031 77 0 2920 IFL LOCN,64,1 WRIT2 ENTRY - PUT INSTRUCTION OUT FOR +031 78 0 2921 LDR INSTR LOCATION LOCN AND INCREMENT LOCN +031 79 0 2922 WRIT3 STA WRTF,04 WRIT3 ENTRY - LOCATION IS IN RA(04) +031 80 0 2923 SUB PREV AND INSTRUCTION IS IN REGISTER R +031 81 0 2924 LDB CNTR1 +031 82 0 2925 BFA E+,04,0 +031 83 0 2926 SUB XONE+1 DOES THIS LOCATION EQUAL THE PREVIOUS ONE +031 84 0 2927 BFA F+,04,0 (IF SO WE WILL ERASE THE PREVIOUS ONE) +031 85 0 2928 STB LRTF,04 OR IS IT ONE HIGHER +031 86 0 2929 CAD WRTF IF NOT,WE WILL PUT OUT A NEW RECORD TRANS +031 87 0 2930 STA - BUF+1 +031 88 0 2931 IFL CNTRI,00,1 +031 89 0 2932 *F LDB LRTF +031 90 0 2933 IFL - BUF+1,32,1 THE 32-FIELD CONTAINS THE NUMBER OF +031 91 0 2934 WRIT7 IFL CNTRI,00,1 SEQUENTIAL WORDS TO LOAD +031 92 0 2935 LDB CNTRI +031 93 0 2936 *E STR - BUF +031 94 0 2937 STR DESCR +031 95 0 2938 BCS *+2,2 +031 96 0 2939 BUN *+3 +031 97 0 2940 WRTSW STP 4 9898,0300 +031 98 0 2941 BUN 4 9898,WRTF +031 99 0 2942 STB WRTSW,41 +032 00 0 2943 LDR WRTF +032 01 0 2944 STR PREV,04 +032 02 0 2945 WRIT6 LDR CNTRI IS THE BUFFER FULL NOW +032 03 0 2946 CFR CNTRF +032 04 0 2947 BCL WRITX IF NOT,EXIT +032 05 0 2948 WRIT5 LBC NN IF SO, CALCULATE CHECK SUM +032 06 0 2949 *C CLA BUF+2 +032 07 0 2950 SUB - BUF+99 +032 08 0 2951 IBB *-1,1 +032 09 0 2952 BOF *+1 +032 10 0 2953 STA BUF+99 +032 11 0 2954 MOW 4 BUF,OT,1 WRITE ONE BLOCK +032 12 0 2955 IFL BUF,00,1 +032 13 0 2956 CLL CNTRI +032 14 0 2957 CLL CNTRF INITIALIZE FOR NEXT BLOCK +032 15 0 2958 IFL CNTRF,00,96 +032 16 0 2959 WRIT4 CLL BUF+1 +032 17 0 2960 LDB C- +032 18 0 2961 RTF BUF+1,98 +032 19 0 2962 WRITX BUN * +032200 +032210 +032220 +032 23 0 2963 GENXK STB V1,12 MARK V1 AS IN A-REGISTER +032 24 0 2964 GENXB CAD V1 V1 = RESULT +032 25 0 2965 GENXX STP INSX,OPRND PUT RESULT OF SOME GENERATED QUANTITY +032 26 0 2966 BUN INS IN OPERAND STACK AND RECORD IN +032 27 0 2967 LDB OPRND SER THE POSITION WHERE STORED +032 28 0 2968 LDR - 0 IF IT IS AN ACCUMULATOR SYMBOL. +032 29 0 2969 BFR A+,11,0 +032 30 0 2970 BUN GENRX (HINT..SER IS USED TO CONTROL PLACEMENT +032 31 0 2971 *A STB SER INTO TEMP STORAGE) +032 32 0 2972 GENRX BUN * +032 33 0 2973 CAD BUNZ +032 34 0 2974 GENXY STP ASMBX ASSEMBLE FINAL INSTRUCTION AND EXIT. +032 35 0 2975 BUN ASMBY +032 36 0 2976 BUN GENRX + + +032 39 0 2977 GENR STA OPRTN GENERATORS.BRANCH ACCORDING TO KIND OF OP +032 40 0 2978 BSA GEN2,2 UNARY OP +032 41 0 2979 BSA GEN3,3 NULLARY OP +032 42 0 2980 BSA GFWRF,4 FORWARD REFERENCE +032 43 0 2981 BSA GBWRF,5 BACKWARD REFERENCE +032 44 0 2982 BSA GFWRF,7 INCREMENTED FORWARD REFERENCE +032 45 0 2983 STP OBTNX BINARY OP +032 46 0 2984 BUN OBTN1 GET V1 OPERAND +032 47 0 2985 STP OBTNX +032 48 0 2986 BUN OBTN2 GET V2 OPERAND +032 49 0 2987 CAD OPRTN +032 50 0 2988 BSA GEN3,1 SPECIAL BINARY OP +032 51 0 2989 BSA GRELN,8 RELATIONAL OP +032 52 0 2990 BFA A+,64,0 +032 53 0 2991 GENAG STP ARTHX PLUS TIME OR DIVIDE, ETC. +032 54 0 2992 BUN ARTHG +032 55 0 2993 CAD ACCUM +032 56 0 2994 BUN GENXX +032 57 0 2995 *A LDB MODE GIVEN A PLUS OPERATION WHICH TAKES +032 58 0 2996 CAD - 0 PLACE ON PARENTHESIS LEVEL ONE OF AN +032 59 0 2997 CFA TEST,67 ARRAY SUBSCRIPT AND WHERE ONE OF THE +032 60 0 2998 BCU GENAG TWO OPERANDS IS A FIXED POINT CONSTANT +032 61 0 2999 CAD V1 +032 62 0 3000 BFA B+,22,21 IF ALL THIS IS TRUE WE DONT COMPILE +032 63 0 3001 LDR V2 EXTRA INSTRUCTIONS, WE ADD IT TO THE +032 64 0 3002 BFR *+2,22,21 BASE ADDRESS OF THE ARRAY. +032 65 0 3003 BUN GENAG +032 66 0 3004 STR V1 +032 67 0 3005 STA V2 +032 68 0 3006 SLT 10 +032 69 0 3007 *B DLB V1,64,0 +032 70 0 3008 LDR - 1 UNLESS THE CONSTANT IS BIGGER THAN +1 +032 71 0 3009 SRT 0 IN WHICH CASE WE COULD GET INTO TROUBLE +032 72 0 3010 CFR XONE+1 LOADING B WITH A NEGATIVE QUANTITY. +032 73 0 3011 BCH GENAG +032 74 0 3012 LDB ARAS IF THE ARRAY IS A CALL-BY-NAME +032 75 0 3013 DLB - 0,64,0 WITHIN A PROCEDURE WE CANT DO THIS +032 76 0 3014 GENDX SRT 0 INCREMENTATION EITHER +032 77 0 3015 TS001 CLA +032 78 0 3016 ADD - 0 +032 79 0 3017 BSA GENAG,1 +032 80 0 3018 SLT 10 ADD THIS TO THE INCREMENT WORD (MOD10000) +032 81 0 3019 SLA 4 +032 82 0 3020 ADA - 0 +032 83 0 3021 STA - 0,64 +032 84 0 3022 GENX2 CAD V2 +032 85 0 3023 BUN GENXX PUT OPERAND FOR UNARY OP INTO V1 +032 86 0 3024 GEN2 STP OBTNX +032 87 0 3025 BUN OBTN1 OPRTN/64 IS THE NAME OF THE GENERATOR +032 88 0 3026 GEN3 DLB OPRTN,64,0 FOR THIS OPERATOR +032 89 0 3027 BUN - 0 +032 90 0 3028 TEST F244 1,NDXCM,0 + + + +032 94 0 3029 GREL2 STP WEMX +032 95 0 3030 BUN WEM,*+2 +032 96 0 3031 CNST 30167200000 IMPROPER ASSIGNMENT OPERATION +032 97 0 3032 CLL OPRTN CHANGE OPERATION TO EQL +032 98 0 3033 GRELN CSU V1 RELATIONS EQL,GTR, ETC. +032 99 0 3034 STA V1 +033 00 0 3035 CAD OPRTN +033 01 0 3036 STA OPRTM +033 02 0 3037 DFL YETH,62,10 CHANGE TO FIXED POINT SUBTRACT OPERATION +033 03 0 3038 CLL OPRTN +033 04 0 3039 STB BOF,61 +033 05 0 3040 STP ARTHX +033 06 0 3041 BUN ARTHG +033 07 0 3042 IFL YETH,62,10 +033 08 0 3043 BSA *+2,0 +033 09 0 3044 IFL OPRTM,64,1 +033 10 0 3045 BFA D+,11,0 IF RESULT IS NOT IN REGISTER A,GET IT +033 11 0 3046 LSA 0 +033 12 0 3047 STA V1 +033 13 0 3048 STP CADX +033 14 0 3049 BUN CAD1 ASSEMBLE BOF *+2 IF NECESSARY +033 15 0 3050 *D STP ASMBX +033 16 0 3051 BOF BUN ASMBL,BOF2 +033 17 0 3052 *D LDB OP CHECK HOW WE ARE USING THIS RELATION +033 18 0 3053 LDR - 0 +033 19 0 3054 BFR A+,67,00 IS IT IN A BOOLEAN EXPRESSION +033 20 0 3055 IFL OPRTM,64,2 +033 21 0 3056 CFR OPIF,67 IS IT IN AN IF CLAUSE +033 22 0 3057 BCE C+ +033 23 0 3058 IFL OPRTM,64,2 IS IT IN AN UNTIL CLAUSE +033 24 0 3059 CFR CRU,67 +033 25 0 3060 BCE C+ +033 26 0 3061 STP WEMX IF NOT IT IS AN IMPROPER +033 27 0 3062 BUN WEM,CMPLX RELATIONAL OPERATION +033 28 0 3063 CNST 30157200000 +033 29 0 3064 *A STP INTRX +033 30 0 3065 BUN B+ +033 31 0 3066 BUN GENXX +033 32 0 3067 *C CAD AVAIL REMOVE IF OR UNTIL FROM OP STACK +033 33 0 3068 STB AVAIL,04 +033 34 0 3069 STA - 0 +033 35 0 3070 STR OP,04 +033 36 0 3071 STP INTRX +033 37 0 3072 BUN B+ +033 38 0 3073 GREL1 CLL PSI IF, UNTIL FINISHED.. MAKE A COMPOUND +033 39 0 3074 IFL PHI,00,01 STATEMENT. +033 40 0 3075 BUN CMPLX +033 41 0 3076 *B DLB OPRTM,64,0 +033 42 0 3077 CAD - GTAB3 +033 43 0 3078 BUN INTRP + + +033 46 0 3079 GEXPN CAD V1 POWER GENERATOR. V2*V1 +033 47 0 3080 CLL XI +033 48 0 3081 CFA V10,67 IF V1 IS 2 +033 49 0 3082 BCE Q+ +033 50 0 3083 LDR V2 OR 2.0 WITH V2 FLOATING, +033 51 0 3084 CFA V11,67 +033 52 0 3085 BCU *+2 WE WILL MAKE THIS INTO A MULTIPLY +033 53 0 3086 BFR Q+,21,0 OTHERWISE IF V1 IS NEGATED +033 54 0 3087 BSA A+,0 +033 55 0 3088 STP ACCX EMPTY THE A-REGISTER +033 56 0 3089 BUN ACC3 +033 57 0 3090 STP CADX AND CAD V1, SRT 10. +033 58 0 3091 BUN CAD1 +033 59 0 3092 *B CAD SRT10 +033 60 0 3093 BUN C+ ELSE, IF IT IS IN THE A REGISTER, SRT 10. +033 61 0 3094 *A BFA B-,11,0 +033 62 0 3095 CAD LDRV1 IN OTHER CASES, LDR V1 +033 63 0 3096 *C STP ASMBX +033 64 0 3097 BUN ASMBY THEN CAD V2 +033 65 0 3098 STP CADX +033 66 0 3099 BUN CAD2 SEPARATE FOUR CASES +033 67 0 3100 *D CLB FIX TO FIX = 0 +033 68 0 3101 CAD V1 FIX TO FLT = 1 +033 69 0 3102 BFA *+2,21,1 FLT TO FIX = 2 +033 70 0 3103 IBB *+1,1 FLT TO FLT = 3 +033 71 0 3104 CAD V2 +033 72 0 3105 BFA *+2,21,1 +033 73 0 3106 IBB *+1,2 +033 74 0 3107 STB D-,04 GENERATE STP BUN TO APPROPRIATE SUBRUTINE +033 75 0 3108 LDR - NUTBL SET UP TO PRINT THE NAME +033 76 0 3109 STP LINKX +033 77 0 3110 IBB LINK-1,EXPF +033 78 0 3111 LDB D- COMPUTE TYPE OF RESULT +033 79 0 3112 CAD - EXPA +033 80 0 3113 EXPA BUN GENX,0100 +033 81 0 3114 *Q CAA V2 +033 82 0 3115 STA V2 THE SQUARE CASE +033 83 0 3116 STA V1 +033 84 0 3117 BFA T+,11,2 +033 85 0 3118 STP ACCX FREE A REGISTER +033 86 0 3119 BUN ACC3 +033 87 0 3120 CAD V2 IF V2 WAS IN THE A REGISTER, IT WILL +033 88 0 3121 BFA T+,11,0 HAVE BEEN STORED OUT +033 89 0 3122 CSA CADV1 OTHERWISE WE WANT TO CADV1 AND PREVENT +033 90 0 3123 STP ASMBX DOUBLE-INDEXING IF V1 IS AN ARRAY +033 91 0 3124 BUN ASMBY +033 92 0 3125 STB V1,11 +033 93 0 3126 *T CAD DOT MLTIPLY V2.V2 +033 94 0 3127 STA OPRTN +033 95 0 3128 BUN GENAG diff --git a/software/tools/BAC-Assembler.html b/software/tools/BAC-Assembler.html new file mode 100644 index 0000000..f7b785e --- /dev/null +++ b/software/tools/BAC-Assembler.html @@ -0,0 +1,557 @@ + +
+ +++ + + + + +