{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPBMOPC867)}} ====== IPBMOPC867 ====== (George Source) **Macros used:** [[george:macro:COOR4|COOR4]], [[george:macro:ERROR|ERROR]], [[george:macro:FREECORE|FREECORE]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:NBREAKIN|NBREAKIN]], [[george:macro:REPEAT|REPEAT]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]] 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 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