From 936eedd6be8a5092ea91078e0c4848a246fb3077 Mon Sep 17 00:00:00 2001 From: Dex Date: Mon, 19 Oct 2020 20:39:30 +0200 Subject: [PATCH] Proof INTER-BANK_COMMUNICATION #594 (#730) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matěj Havránek Co-authored-by: James Harris --- Luminary099/INTER-BANK_COMMUNICATION.agc | 76 ++++++++++++------------ 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/Luminary099/INTER-BANK_COMMUNICATION.agc b/Luminary099/INTER-BANK_COMMUNICATION.agc index de167df..6def155 100644 --- a/Luminary099/INTER-BANK_COMMUNICATION.agc +++ b/Luminary099/INTER-BANK_COMMUNICATION.agc @@ -28,8 +28,8 @@ # 16:27 JULY 14, 1969 # Page 998 -# THE FOLLOWING ROUTINE CAN BE USED TO CALL A SUBROUTINE IN ANOTHER BANK. IN THE BANKCALL VERSION, THE -# CADR OF THE SUBROUTINE IMMEDIATELY FOLLOWS THE TC BANKCALL INSTRUCTION, WITH C(A) AND C(L) PRESERVED. +# THE FOLLOWING ROUTINE CAN BE USED TO CALL A SUBROUTINE IN ANOTHER BANK. IN THE BANKCALL VERSION, THE +# CADR OF THE SUBROUTINE IMMEDIATELY FOLLOWS THE TC BANKCALL INSTRUCTION, WITH C(A) AND C(L) PRESERVED. BLOCK 02 COUNT* $$/BANK @@ -38,7 +38,7 @@ BANKCALL DXCH BUF2 # SAVE INCOMING A,L. CA 0 INCR Q # SO WE RETURN TO THE LOC. AFTER THE CADR. -# SWCALL IS IDENTICAL TO BANKCALL, EXCEPT THAT THE CADR ARRIVES IN A. +# SWCALL IS IDENTICAL TO BANKCALL, EXCEPT THAT THE CADR ARRIVES IN A. SWCALL TS L LXCH FBANK # SWITCH BANKS, SAVING RETURN. @@ -53,23 +53,23 @@ SWRETURN XCH BUF2 +1 # COMES HERE TO RETURN TO CALLER. C(A,L) XCH BUF2 +1 TC BUF2 -# THE FOLLOWING ROUTINE CAN BE USED AS A UNILATERAL JUMP WITH C(A,L) PRESERVED AND THE CADR IMMEDIATELY +# THE FOLLOWING ROUTINE CAN BE USED AS A UNILATERAL JUMP WITH C(A,L) PRESERVED AND THE CADR IMMEDIATELY # FOLLOWING THE TC POSTJUMP INSTRUCTION. POSTJUMP XCH Q # SAVE INCOMING C(A). INDEX A # GET CADR. CA 0 -# BANKJUMP IS THE SAME AS POSTJUMP, EXCEPT THAT THE CADR ARRIVES IN A. +# BANKJUMP IS THE SAME AS POSTJUMP, EXCEPT THAT THE CADR ARRIVES IN A. BANKJUMP TS FBANK MASK LOW10 XCH Q # RESTORING INPUT C(A) IF THIS WAS A Q+10000 INDEX Q # POSTJUMP. -PRIO12 TCF 10000 # PRIO12 = TCF 10000 = 12000 +PRIO12 TCF 10000 # PRIO12 = TCF 10000 = 12000 # Page 999 -# THE FOLLOWING ROUTINE GETS THE RETURN CADR SAVED BY SWCALL OR BANKCALL AND LEAVES IT IN A. +# THE FOLLOWING ROUTINE GETS THE RETURN CADR SAVED BY SWCALL OR BANKCALL AND LEAVES IT IN A. MAKECADR CAF LOW10 MASK BUF2 @@ -80,9 +80,9 @@ SUPDACAL TS MPTEMP XCH FBANK # SET FBANK FOR DATA. EXTEND ROR SUPERBNK # SAVE FBANK IN BITS 15-11, AND - XCH MPTEMP # SUPERBANK IN BITS 7-5. + XCH MPTEMP # SUPERBANK IN BITS 7-5. MASK LOW10 - XCH L # SAVE REL. ADR. IN BANK, FETCH SUPERBITS + XCH L # SAVE REL. ADR. IN BANK, FETCH SUPERBITS. INHINT # BECAUSE RUPT DOES NOT SAVE SUPERBANK. EXTEND WRITE SUPERBNK # SET SUPERBANK FOR DATA. @@ -97,7 +97,7 @@ SUPDACAL TS MPTEMP RETURN # 24 WDS. DATACALL 516 MU, SUPDACAL 432 MU # Page 1000 -# THE FOLLOWING ROUTINES ARE IDENTICAL TO BANKCALL AND SWCALL EXCEPT THAT THEY ARE USED IN INTERRUPT. +# THE FOLLOWING ROUTINES ARE IDENTICAL TO BANKCALL AND SWCALL EXCEPT THAT THEY ARE USED IN INTERRUPT. IBNKCALL DXCH RUPTREG3 # USES RUPTREG3,4 FOR DP RETURN ADDRESS. INDEX Q @@ -118,9 +118,10 @@ ISWRETRN XCH RUPTREG4 TC RUPTREG3 # 2. USPRCADR ACCESSES INTERPRETIVE CODING IN OTHER THAN THE USER'S FBANK. THE CALLING SEQUENCE IS AS FOLLOWS: -# L TC USPRCADR -# L+1 CADR INTPRETX # INTPRETX IS THE INTERPRETIVE CODING -# # RETURN IS TO L+2 + +# L TC USPRCADR +# L+1 CADR INTPRETX INTPRETX IS THE INTERPRETIVE CODING +# RETURN IS TO L+2 USPRCADR TS LOC # SAVE A CA BIT8 @@ -136,40 +137,41 @@ USPRCADR TS LOC # SAVE A TCF Q+10000 # Page 1001 -# THERE ARE FOUR POSSIBLE SETTINGS FOR CHANNEL 07. (CHANNEL 07 CONTAINS SUPERBANK SETTING.) +# THERE ARE FOUR POSSIBLE SETTINGS FOR CHANNEL 07. (CHANNEL 07 CONTAINS SUPERBANK SETTING.) +# PSEUDO-FIXED OCTAL PSEUDO +# SUPERBANK SETTING S-REG. VALUE BANK NUMBERS ADDRESSES +# ---------- ------- ------------ ------------ ------------ # -# PSEUDO-FIXED OCTAL PSEUDO -# SUPERBANK SETTING S-REG. VALUE BANK NUMBERS ADDRESSES -# --------- ------- ------------ ------------ --------- -# SUPERBANK 3 OXX 2000 - 3777 30 - 37 70000 - 107777 (WHERE XX CAN BE ANYTHING AND +# SUPERBANK 3 OXX 2000 - 3777 30 - 37 70000 - 107777 (WHERE XX CAN BE ANYTHING AND # WILL USUALLY BE SEEN AS 11) -# SUPERBANK 4 100 2000 - 3777 40 - 47 110000 - 127777 (AS FAR AS IT CAN BE SEEN, +# SUPERBANK 4 100 2000 - 3777 40 - 47 110000 - 127777 (AS FAR AS IT CAN BE SEEN, # ONLY BANKS 40-43 WILL EVER BE # AND ARE PRESENTLY AVAILABLE) -# SUPERBANK 5 101 2000 - 3777 50 - 57 130000 - 147777 (PRESENTLY NOT AVAILABLE TO +# SUPERBANK 5 101 2000 - 3777 50 - 57 130000 - 147777 (PRESENTLY NOT AVAILABLE TO # THE USER) -# SUPERBANK 6 110 2000 - 3777 60 - 67 150000 - 167777 (PRESENTLY NOT AVAILABLE TO +# SUPERBANK 6 110 2000 - 3777 60 - 67 150000 - 167777 (PRESENTLY NOT AVAILABLE TO # THE USER) -# *** THIS ROUTINE MAY BE CALLED BY ANY PROGRAM LOCATED IN BANKS 00 - 27. I.E., NO PROGRAM LIVING IN ANY -# SUPERBANK SHOULD USE SUPERSW. *** +# *** THIS ROUTINE MAYBE CALLED BY ANY PROGRAM LOCATED IN BANKS 00 - 27. I.E., NO PROGRAM LIVING IN ANY +# SUPERBANK SHOULD USE SUPERSW. *** # -# SUPERSW MAY BE CALLED IN THIS FASHION: -# CAF ABBCON WHERE -- ABBCON BBCON SOMETHING -- -# TCR SUPERSW (THE SUPERBNK BITS ARE IN THE BBCON) -# ... ... -# . . -# . . -# OR IN THIS FASHION: -# CAF SUPERSET WHERE SUPERSET IS ONE OF THE FOUR AVAILABLE -# TCR SUPERSW SUPERBANK BIT CONSTANTS: -# ... ... SUPER011 OCTAL 60 -# . . SUPER100 OCTAL 100 -# . . SUPER101 OCTAL 120 -# SUPER110 OCTAL 140 +# SUPERSW MAYBE CALLED IN THIS FASHION: +# +# CAF ABBCON WHERE -- ABBCON BBCON SOMETHIN -- +# TCR SUPERSW (THE SUPERBNK BITS ARE IN THE BBCON) +# ... ... +# . . +# . . +# OR IN THIS FASHION : +# CAF SUPERSET WHERE SUPERSET IS ONE OF THE FOUR AVAILABLE +# TCR SUPERSW SUPERBANK BIT CONSTANTS: +# ... ... SUPER011 OCTAL 60 +# . . SUPER100 OCTAL 100 +# . . SUPER101 OCTAL 120 +# SUPER110 OCTAL 140 SUPERSW EXTEND WRITE SUPERBNK # WRITE BITS 7-6-5 OF THE ACCUMULATOR INTO # CHANNEL 07 TC Q # TC TO INSTRUCTION FOLLOWING - # TC SUPERSW + # TC SUPERSW