IPBMOPC867

(George Source)

Macros used: COOR4, ERROR, FREECORE, LONGOFF, LONGSTOP, MHUNTW, NAME, NBREAKIN, REPEAT, SEG, SEGENTRY, SETUPCORE, UP, UPPLUS

IPBMOPC867.txt
2278 ...      SEG      IPBMOPC,84,COMM - IPB,,G501  
22#B ...[   
22FJ ...[ (C)  COPYRIGHT INTERNATIONAL COMPUTERS LIMITED 1982.  
22LQ ...[     THIS EXCLUDES CODE UNDER #SKI G501
22RY ...[   
22^=    #LIS  K0IPBMOPC>K0IPB>K0ALLGEO>K0GREATGEO   
2357 ...#OPT G501 = 0   
2394 ...#SKI G501&1 
23#^ ...# WITH UGUG EDIT M501 (3-SHIFT INPUT ON MOP)
23DW          SEGENTRY K1IPBMOPC,SK1IPBMOPC 
23GD          SEGENTRY K2IPBMOPC,SK2IPBMOPC 
23GS          SEGENTRY   K3IPBMOPC,SK3IPBMOPC   
23H8          SEGENTRY  K4IPBMOPC,SK4IPBMOPC
23HJ         SEGENTRY   K5IPBMOPC,SK5IPBMOPC
23J2    WHLDY          3600*24/K9*1000  
23M6          SEGENTRY K52IPBMOPC   
23Q=    ZJTWAIT        60000/K9 
23TB    ZJTMI          60000/K9 
23YG    ZMIN           60+3/FONINTP 
23^2    SCAN           #76217610
23^G    SCANCEL        6HCANCEL 
2422          SEGENTRY K50IPBMOPC          [TRANSERR - RESTORE TIME MACRO   
242G    SERROR         +34  
2432                   34HTRANSMISSION ERROR - PLEASE REPEAT
243L    [   
246Q    [   
249W    ZLNOF LONGOFF   
24*2          EXIT  3  0
24*5    #   
24*8    #     GET AMXOR/IOUT BLOCK FOR OUTPUT ; ON ENTRY X3 POINTS TO AMXOR/ADCB
24*?    #     BLOCK ; PUT MESSAGE CHAR CT.IN X4 ; HEADER IN X5 ; CALL ON X7 
24*B    #   
24*F    SETU  SBX   7  FX1  
24*J          SLL   5  12                  [HEADER AND DISCARD MASK 
24*M          ADX   5  4
24*Q          ADN   4  IDATA-A1*4+3        [TOTAL COUNT OF CHARS
24*T          SRL   4  2
24*Y          SETUPCORE 4,2,AMXOR,IOUT,1
24B3          MHUNTW   3,AMXOR,ADCB 
24B6          STO   5  IPBIDE+1(2)  
24B9          SLC   5  5                   [B4 SET IF 'READY' OUTPUT
24B#          ERN   5  1
24BC          ANDN  5  1
24BG          STO   5  IMOPTY(2)           [WAKE ACTIVITY AFTER NON-READY OUTPUT
24BH ...      BNZ   5  SECHO
24BJ ...      LDX   0  ICURSOR(3)   
24BK ...      BNG   0  SECHO
24BL ...      SLL   0  1
24BM ...      BPZ   0  SECHO
24BN ...      LDX   0  BIT11
24BP ...#UNS ANOECHO
24BQ ...      ORS   0  IPBIDE+1(2)  
24BR ...SECHO   
24BS ...      STOZ     IBSW(2)  
24BT ...      LDX   0  IDENTNO(3)   
24BW ...      STO   0  IPBIDE(2)
24BX ...      LDN   5  IDATA(2) 
24B^          ADX   7  FX1  
24C4          EXIT  7  0
24C7    #   
24C=    #     CHANGE ETX ON END OF OUTPUT TO CANCEL IN CASE REINPUTTING ON TAPE 
24C*    #   
24CD    TOCA  BCHX  1  £
24CH          BCHX  1  £
24CL          LDN   4  #10  
24CP          BCHX  1  £
24CS          SBN   1  1
24CX          DCH   4  0(1) 
24D2          EXIT  0  0
24D6    [   
24XQ    [ ENTERED BY DOWN FROM IPBMOP TO WAIT FOR CONTINUE OUTPUT   
25X2    [ X3 CONTAINS TIME WE STARTED WAITING   
266S    [ OR IF X5 -VE WAIT FOR TIMED OUT CONSOLE TO BE RESTARTED   
26BL    [   
26W=    SK1IPBMOPC  
26X3          BPZ   5  TVDU 
26XS    [                                CALCULATE TIME FOR WAIT
26YK          LDX   0  ZMIN(1)  
26^B          MPY   0  IPMOPWAIT
2727    YLNST LONGSTOP TOBRK,VTUP,,,1   
272Y    [                                UPPLUS 1 IF RESTARTED  
273P    WOPAG UPPLUS   1
274G    TOBRK CALL  3  ZLNOF
275?          BRN      WOPAG
2764    VTUP  LDX   1  CLONG3(2)
276T          SBN   1  2
277L          BNG   1  YSUP 
278C    [                                  J IF TIME UP ELSE CONTINUE WAITING   
2798          BDX   1  YLNST
279^    YSUP  CALL  3  ZLNOF
27=Q    [                                  UPPLUS 2 IF TIME UP  
27?H          UPPLUS   2
27##    TVDU
27*5    [                                  WAIT FOR CONTINUE OUTPUT 
27*W          LDX   7  3
27FR          LDX   4  ZJTMI(1) 
27KN          MPY   4  IPMOPWAIT
27PK          ADX   5  ZJTWAIT(1)   
27TG          NGN   6  #1001
28*6          BRN      SETZZ
28SQ    SETAZ COOR4    CONTVDUWT
29#B    SETZZ   
29S2          MHUNTW   3,AMXOR,ADCB 
2=?L          LDN   0  #200 
2=R=          ANDX  0  IWAIT(3) 
2?=W          ERS   0  IWAIT(3) 
2?QG          BNZ   0  TWAB 
2#=6    [                   J IF ABANDON
2#B3          LDX   0  ISTATUS(3)   
2#FY          BNG   0  TINOP
2#KT    [                    J IF IDETIFIER IS INOPERABLE   
2#PQ          LDCT  0  #100 
2*9B          SMO      A1+FPTR(3)   
2*P2          ANDX  0  FOURTHWD 
2B8L          BNZ   0  TWAB 
2BN=    [                   J IF MOP OFF
2C7W          LDN   0  #1000
2CMG          ANDX  0  ICONTU(3)
2D76          BZE   0  WITUP
2DLQ          LDX   0  JTIME
2F6B          SBX   0  7
2FL2          BPZ   0  NCHD 
2G5L          ADX   0  WHLDY(1) 
2GK=    NCHD  SBX   0  5
2H4W          BPZ   0  TIMEX
2HJG    [                 J IF TIME UP  
2J46          BRN      SETAZ
2L^W    TWAB  ANDS  6  ICONTU(3)
2MFG          UP
2M^6    [ GO UP FOR MOP OFF OR ABANDON  
2NDQ    WITUP UPPLUS   1
2NYB    [ UPPLUS 1 FOR CONTINUE OUTPUT  
2PD2    TIMEX ANDS  6  ICONTU(3)
2PXL          UPPLUS   2
2QC=    [ UPPLUS 2 FOR TIME UP  
2QCF    TINOP   
2QCN          ANDS  6  ICONTU(3)
2QCX          UPPLUS   3
2QD6    [  UPPLUS 3 IF IDENTIFIER IS INOPERABLE 
2QDD    [   
2QFL    [   
2QGS    [          K2IPBMOPC
2QJ2    [   
2QK8    [   
2QLB    SK2IPBMOPC  
2QMJ    #   
2QNQ    #     TEST IF BREAK-IN IS ALLOWED   
2QPY    #   
2QR7          NBREAKIN 2,8,XBIRJ,XBIOK  
2QRL    XBIOK   
2QS5          LDN   0  0
2QSJ          ORS   0  AWORK1(2)
2QSP ...      LDX   0  AWORK1(2)
2QSW ...      STO   0  ACOMMUNE1(2) 
2QT3          UP                           [BREAK-IN ALLOWED
2QTK    XBIRJ UPPLUS   1                   [BREAK-IN REJECTED   
2R*9    [   
2RST    [    K3IPBMOPC  
2S#F    [   
2SS5    #   
2T?P    #   
2TR*    #     TRANSMISSION ERROR ON INPUT : OUTPUT ERROR MESSAGE & REPEAT READY 
2W=^    #     IF A MOP CONSOLE, ELSE TAKE INOPERABLE ACTION.
2WQK    #   
2X=9    SK3IPBMOPC  
2XPT          MHUNTW   3,AMXOR,ADCB 
2Y9F          LDCH  4  ICHARS(3)           [LENGTH OF NEWLINE   
2YP5          ADX   4  SERROR(1)           [LENGTH OF ERROR MESSAGE 
2^8P          ADX   4  INOCHS(3)           [LENGTH OF NL+ETX+1  
2^N*          LDN   5  #4004
327^          CALL  7  SETU                [SET UP AMXOR/IOUT BLOCK 
32MK          LDN   4  INLBUFF(3)   
3379          LDCH  1  ICHARS(3)
33LT          MVCH  4  0(1)                [NEWLINE 
346F          LDX   1  FX1  
34L5          LDN   4  SERROR+1(1)  
355P          LDX   1  SERROR(1)
35K*          MVCH  4  0(1)                [TRANSMISSION ERROR - PLEASE REPEAT  
364^          LDX   1  INOCHS(3)
36JK          LDN   4  INLBUFF(3)   
3749          MVCH  4  0(1)                [NEWLINE + END OF MESSAGE
37HT          LDX   1  5
383F          CALL  0  TOCA                [CHANGE ETX TO CANCEL
38H5          LDX   4  IREADY(3)
392P          SBN   4  2                   [TRUNCATE TO OMIT DC1
39G*          LDN   5  #4214
39^^          CALL  7  SETU 
3=FK          LDCT  0  2
3=^9          ORS   0  IWAIT(3)            [INDICATE 'READY'
3?DT          BRN      TERED               [OUTPUT READY MESSAGE
3?YF    [   
3#D5    [    K4 IPBMOPC 
3#XP    [   
3*C*    #   
3*W^    #     INPUT CANCELLED : OUTPUT 'NL CANCEL _'
3BBK    #   
3BW9    SK4IPBMOPC  
3C*T          MHUNTW   3,AMXOR,ADCB 
3CTF          LDCH  4  ICHARS(3)           [LENGTH OF NEWLINE   
3D*5          ADX   4  IREADY(3)           [LENGTH OF READY TERMINATOR  
3DSP          ADN   4  6                   [CANCEL  
3F#*          LDN   5  #4214
3FR^          CALL  7  SETU 
3G?K          LDN   4  INLBUFF(3)   
3GR9          LDCH  1  ICHARS(3)
3H=T          MVCH  4  0(1)                [NEWLINE 
3HQF          LDX   4  FX1  
3J=5          ADN   4  SCANCEL  
3JPP          MVCH  4  6                   [CANCEL  
3K9*    TERED   
3KN^          LDN   0  1
3L8K          SMO       FX2 
3LN9          ORS   0  AWORK1   
3LR* ...      SMO      FX2  
3LWF ...      LDX   0  AWORK1   
3L^K ...      SMO      FX2  
3M4P ...      STO   0  ACOMMUNE1
3M7T          LDN   4  IREADY+1(3)  
3MMF          LDX   1  IREADY(3)
3N75          MVCH  4  0(1)                ['READY' TERMINATOR  
3NLP          UP
3P6*    [   
3PK^    [   K5  IPBMOPC 
3Q5K    [   
3QK9    #   
3R4T    #     GET LAST FOUR CHARACTERS INTO X5 & X6 TO TEST FOR CANCEL & BREAKIN
3RJF    #     IF A MOP DISPLAY,TEST FOR AN ACTION KEY MESSAGE   
3S45    #   
3SHP    SK5IPBMOPC  
3T3*          MHUNTW    2,AMXOR,IMESSG  
3TG^          MHUNTW    3,AMXOR,ADCB
3W2K          LDX   4  A1(2)
3WG9          ANDN  4  #7777               [NO. OF CHARS INPUT  
3W^T          SRC   4  2
3XFF          ADN   4  A1+1(2)             [INPUT STARTS IN A1+2
3X^5          STOZ     A1+1(2)             [CLEAR A1+1 IN CASE INPUT <4 CHARS   
3YDP          LDN   5  6
3YY*          MVCH  4  4                   [LAST FOUR CHARS INTO X6 
3^C^          LDXC  0  ICURSOR(3)   
3^XK          BCS      VAKEY               [MOP DISPLAY 
42C9          SBX   6  SCAN(1)             [#76217610   
42WT          LDN   5  0
43BF          SLL   56 12   
43W5          BZE   6  TCANC
44*P          BZE   5  XBI  
44T*          LDN   0  2
45#^          SMO      FX2  
45SK          ORS   0  AWORK1              [AWORK1 = 2 IN CHAR 2
45XP ...      SMO      FX2  
462T ...      LDX   0  AWORK1   
465^ ...      SMO      FX2  
4695 ...      STO   0  ACOMMUNE1
46#9          UP
46RT    XBI 
47?F    TCANC   
47R5          FREECORE 2
48=P          BZE   6  SK4IPBMOPC   
48Q*          BRN      SK2IPBMOPC   
48RL ...#SKI G501&1 
48SX ...(   
48W8 ...VAKEY LDX   0  6                   [ TEST FOR ACTION KEY <ESCAPE><N>
48XF ...      SRL   0  6
48YQ ...      ANDN  0  #7777
4923 ...      ERN   0  #7613
493# ...      BNZ   0  VNAK 
494K ...      LDCH  4  6                   [ ACTION KEY VALUE   
495W ...)   
4977 ...#SKI G501&1$1   
498D ...(   
499^    VAKEY LDCT  1  #200  [TEST FOR AN ACTION KEY MESSAGE IN THE LAST 3 CHARS
49PK          LDCH  0  6(1) 
4=99          SBN   0  #76  
4=NT          BNZ   0  VNAK                [NO ACTION KEY FOUND 
4?8F    VC13  BCHX  1  £
4?N5          LDCH  0  6(1) 
4#7P          SBN   0  #13  
4#M*          BNZ   0  VNAK                [NO ACTION KEY FOUND 
4*6^    #   
4*LK          BCHX  1  £
4B69          LDCH  4  6(1)                [ACTION KEY "N"  
4BB3 ...)   
4BKT          SBN   4  1                   [TEST FOR BREAK-IN   
4C5F          BZE   4  XBIA                [ACTION KEY 1 : BREAK-IN 
4CK5          SBN   4  16   
4D4P          BZE   4  XBIA                 [ACTION KEY ! : BREAK-IN
4DJ*          LDX   0  4
4F3^          ADN   0  9
4FHK          ANDN  0  #57  
4G39          BZE   0  VNBI                [ACT KEY 8 OR ( : RESTART MOPWAIT
4HG5          LDCT  0  #200 
4H^P          ANDX  0  ICURSOR(3)   
4JF*          BZE   0  VNBI                [NOT IN SCREEN EDITING MODE  
4JY^          NAME     2,FILE,FRB          [RENAME ACTION KEY MESSAGE BLOCK AND 
4KDK          UPPLUS  6                    [GO UP   
4KY9    VNBI
4LXF          FREECORE 2                   [AMXOR/IMESSG
4MC5          LDN   5  1
4MWP          ANDX  5  IWAIT(3) 
4NB*          BZE   5  VTYPE               [O/P NOT SUSPENDED:IGNORE  ACTION KEY
4NT^          ADN   4  14   
4P*K          BZE   4  VOCU                [ACTION KEY 3:CONTINUE OUTPUT COMMAND
4PT9          SBN   4  17   
4Q#T          LDXC  0  ICONTU(3)
4QSF          BCS      VCOC                [USING CODE 2 : TEST FOR "£" CHAR
4R#5          ADN   4  1                   [USING CODE 1 : TEST FOR "#" CHAR
4RRP    VCOC  BNZ   4  VTYPE               [NOT A CONTINUE OUTPUT COMMAND   
4S?*    VOCU  DEX   4  ICONTU(3)           [CLEAR CT OF LINES O/P SINCE LAST T-R
4SQ^          LDX   0  ACOMMUNE7(2)        [+VE IF CURRENT MESSAGE NOT COMPLETED
4T=K          BZE   0  OUFIN               [NO MESSAGE PART REMAINS 
4TQ9          DSA   0  ACOMMUNE8(2)        [SET MESSAGE PART CHAR COUNT 
4W9T          ANDX  0  HALFTOP  
4WPF ...      STO   0  ACOMMUNE1(2)           [STORE MESSAGE BLOCK TYPE 
4X95          LDX   0  ACOMMUNE3(2)        [RELATIVE MESSAGE PART ADDRESS   
4XNP          STO   0  ACOMMUNE9(2) 
4Y8*          BRN      VDUMESS [OUTPUT REMAINDER OF "SUSPENDED" MESSAGE 
4YM^    #   
4^7K    XBIA
4^M9          FREECORE 2
526T           BRN      SK2IPBMOPC  
52LF    #   
5365    VNAK  LDX   5  IWAIT(3) 
53KP          SLL   5  7
545*          BNG   5  TREV                [READY : ACCEPT INPUT DATA   
54J^          FREECORE 2                   [AMXOR/IMESSG
554K    VTYPE   
55J9          UPPLUS    2   
563T    VDUMESS 
56HF          UPPLUS    3   
5735    TREV
57GP          UPPLUS    4   
582*    OUFIN   
58F^          UPPLUS     5  
58^K    #END
^^^^ ...123324500003
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1