GLOBAL PC,INBOX,OUTBOX,A DIM GLOBAL MAILBOX(100) INBOX=0 OUTBOX=0 A=0 SUB RESET PC=0 A=0 FOR I=0 TO 100 MAILBOX(I)=0 NEXT I END SUB CALL RESET TRUTH: DATA 901,705,508,902,603,507,902,0,1,-1 WINDOW 0,0,19,15,0 SELFMOD: DATA 1,99,100,902,1,501,100,100,302,201,200,200,304,602,-1 ADD2: DATA 2,2,500,101,-1 SUB2: DATA 2,2,500,201,-1 RESTORE TRUTH I=0 REPEAT READ V IF V>-1 THEN MAILBOX(I)=V END IF I=I+1 UNTIL V=-1 L=I-1 TEXT 0,15,"A" TEXT 5,15,"I" TEXT 10,15,"PC" RUN: DO REP: NUMBER 1,15,A,3 NUMBER 6,15,INBOX,3 NUMBER 12,15,PC,3 IF PC99 THEN IF C=1 THEN A=(A+MAILBOX(X)) MOD 1000 IF C=2 THEN A=(A-MAILBOX(X)) MOD 1000 IF C=3 THEN MAILBOX(X)=A IF C=4 THEN A=X IF C=5 THEN A=MAILBOX(X) IF C=6 THEN PC=X GOTO REP END IF IF C=7 AND A=0 THEN PC=X GOTO REP END IF IF C=8 AND A>-1 THEN PC=X GOTO REP END IF IF N=901 THEN INPUT "?";INBOX INBOX=INBOX MOD 1000 A=INBOX KEYBOARD OFF END IF IF N=902 THEN OUTBOX=A PRINT A END IF IF N=922 THEN OUTBOX=A PRINT CHR$(A); END IF END IF PC=PC+1 END IF WAIT VBL LOOP