DRAW: PRINT TAB(-1,23);
IF COVER THEN CALL PRINT'COVER : GOTO SELECT
CALL PRINT'BUS
IF CPU THEN CALL PRINT'CPU
IF MEM1 THEN CALL PRINT'MEM1
IF MEM2 THEN CALL PRINT'MEM2
IF AM415 THEN CALL PRINT'AM415
IF VCR THEN CALL PRINT'VCR
IF AM600 THEN CALL PRINT'AM600
IF AM316 THEN CALL PRINT'AM316
SELECT: PRINT TAB(-1,28);
PRINT TAB(-1,24);
PRINT TAB(20,56); ">"; TAB(-1,9);
INPUT LINE TEXT
PRINT TAB(-1,23);
PRINT TAB(-1,10);
IF TEXT="" THEN GOTO SELECT
TEXT = UCS(TEXT)
PRINT TAB(22,56);
COMMAND = LEFT(TEXT,1)
TEXT = RIGHT(TEXT,LEN(TEXT)-2)
IF COMMAND="B" THEN GOTO BOOT
IF COMMAND="R" THEN GOTO REMOVE
IF COMMAND="Q" THEN GOTO FINISH
IF COMMAND="W" THEN GOTO WARM
WARM: IF TEXT="VCR" THEN GOTO WARM'VCR
IF TEXT="610" THEN GOTO WARM'VCR
IF TEXT="AM610" THEN GOTO WARM'VCR
IF TEXT="TAPE" THEN GOTO WARM'TAPE
IF TEXT="600" THEN GOTO WARM'TAPE
IF TEXT="AM600" THEN GOTO WARM'TAPE
GOTO WHAT
WARM'VCR:
PRINT TAB(-1,29);
PRINT TAB(-1,24);
FOR I = 7 TO 11
PRINT TAB(I,32); SPACE(13);
NEXT I
IF COVER PRINT TAB(14,18); " "; : CALL WAIT : CALL WAIT
IF CPU ELSE GOTO NO'BOOT
IF MEM1 ELSE GOTO NO'BOOT
IF VCR ELSE GOTO NO'BOOT
GOTO BOOTUP
WARM'TAPE:
PRINT TAB(-1,29);
PRINT TAB(-1,24);
FOR I = 7 TO 11
PRINT TAB(I,32); SPACE(13);
NEXT I
IF COVER PRINT TAB(14,18); " "; : CALL WAIT : CALL WAIT
IF CPU ELSE GOTO NO'BOOT
IF MEM1 ELSE GOTO NO'BOOT
IF AM600 ELSE GOTO NO'BOOT
IF TAPE ELSE GOTO NO'BOOT
GOTO BOOTUP
BOOT: PRINT TAB(-1,29);
PRINT TAB(-1,24);
FOR I = 7 TO 11
PRINT TAB(I,32); SPACE(13);
NEXT I
IF COVER PRINT TAB(14,18); " "; : CALL WAIT : CALL WAIT
IF CPU ELSE GOTO NO'BOOT
IF MEM1 ELSE GOTO NO'BOOT
IF COVER PRINT TAB(14,18); "b"; : CALL WAIT : CALL WAIT
BOOTUP: PRINT TAB(-1,24);
IF COVER PRINT TAB(14,18); "F"; : CALL WAIT : CALL WAIT
IF NOT(DISK) AND COVER THEN PRINT TAB(14,18); "3"; : CALL WAIT : CALL WAIT
IF NOT(DISK) THEN GOTO NO'BOOT
IF NOT(AM415) AND COVER THEN PRINT TAB(14,18); "3"; : CALL WAIT : CALL WAIT
IF NOT(AM415) THEN GOTO NO'BOOT
PRINT TAB(14,18); " "; : CALL WAIT : CALL WAIT
IF NOT(AM316) THEN PRINT TAB(22,56); "Terminal Dead"; : GOTO SELECT
IF NOT(TERM) THEN PRINT TAB(22,56); "Terminal Dead"; : GOTO SELECT
PRINT TAB(7,32); ".TRMDEF";
PRINT TAB(8,32); ".DEVTBL"; : CALL WAIT
PRINT TAB(9,32); ".BITMAP";
PRINT TAB(10,32); ".SYSTEM"; : CALL WAIT
PRINT TAB(11,32); ".MEMORY 0";
PRINT TAB(22,56); "System Up";
PRINT TAB(23,56);
IF MEM1 AND MEM2 THEN PRINT "1024K"; ELSE PRINT "512K";
PRINT " memory present";
GOTO SELECT
REMOVE: IF TEXT="COVER" THEN GOTO R'COVER
IF TEXT="CPU" THEN GOTO R'CPU
IF TEXT="MEM" THEN GOTO R'MEM
IF TEXT="720" THEN GOTO R'MEM
IF TEXT="MEM1" THEN GOTO R'MEM1
IF TEXT="MEM2" THEN GOTO R'MEM2
IF TEXT="AM415" THEN GOTO R'AM415
IF TEXT="415" THEN GOTO R'AM415
IF TEXT="VCR" THEN GOTO R'VCR
IF TEXT="610" THEN GOTO R'VCR
IF TEXT="AM610" THEN GOTO R'VCR
IF TEXT="DISK" THEN GOTO R'DISK
IF TEXT="AM600" THEN GOTO R'AM600
IF TEXT="600" THEN GOTO R'AM600
IF TEXT="TAPE" THEN GOTO R'TAPE
IF TEXT="MAGTAPE" THEN GOTO R'TAPE
IF TEXT="AM316" THEN GOTO R'AM316
IF TEXT="316" THEN GOTO R'AM316
IF TEXT="TERM" THEN GOTO R'TERM
IF TEXT="TRM" THEN GOTO R'TERM
IF TEXT="CRT" THEN GOTO R'TERM
GOTO WHAT
R'COVER:
IF COVER ELSE GOTO REPLACE'COVER
REMOVE'COVER:
PRINT TAB(-1,24); "Cover removed"; TAB(4,66); "replace"; TAB(-1,23);
COVER = 0
FOR I = 10 TO 15
PRINT TAB(I,1); SPACE(23);
NEXT I
GOTO DRAW
REMOVE'TERM:
PRINT TAB(-1,24); "Terminal removed";
PRINT TAB(14,66); "replace";
TERM = 0
FOR I = 6 TO 13
PRINT TAB(I,29); SPACE(19);
NEXT I
GOTO SELECT
REMOVE'TAPE:
PRINT TAB(-1,24); "Tape Drive removed";
PRINT TAB(12,66); "replace";
TAPE = 0
FOR I = 6 TO 8
PRINT TAB(I,1); SPACE(23);
NEXT I
GOTO SELECT
PRINT'COVER:
FOR I = 10 TO 15
PRINT TAB(I,1);
FOR J = 1 TO 23
PRINT TAB(-1,49);
NEXT J
NEXT I
PRINT TAB(-1,24);
PRINT TAB(12,8); " AM-1092 ";
PRINT TAB(14,18); " ";
PRINT TAB(-1,23);
RETURN
PRINT'DISK:
FOR I = 17 TO 19
PRINT TAB(I,1);
FOR J = 1 TO 23
PRINT TAB(-1,49);
NEXT J
NEXT I
PRINT TAB(-1,24);
PRINT TAB(18,8); " DISK ";
PRINT TAB(-1,23);
RETURN
PRINT'BUS:
FOR I = 1 TO 22 STEP 2
PRINT TAB(15,I); TAB(-1,45); TAB(-1,46);
NEXT I
PRINT TAB(-1,45);
RETURN
PRINT'CPU:
FOR I = 10 TO 14
PRINT TAB(I,1); TAB(-1,47);
NEXT I
PRINT TAB(-1,24);
PRINT TAB(11,1); "C";
PRINT TAB(12,1); "P";
PRINT TAB(13,1); "U";
PRINT TAB(-1,23);
RETURN
PRINT'MEM1:
FOR I = 10 TO 14
PRINT TAB(I,3); TAB(-1,47);
NEXT I
PRINT TAB(-1,24);
PRINT TAB(11,3); "M";
PRINT TAB(12,3); "E";
PRINT TAB(13,3); "M";
PRINT TAB(-1,23);
RETURN
PRINT'MEM2:
FOR I = 10 TO 14
PRINT TAB(I,5); TAB(-1,47);
NEXT I
PRINT TAB(-1,24);
PRINT TAB(11,5); "M";
PRINT TAB(12,5); "E";
PRINT TAB(13,5); "M";
PRINT TAB(-1,23);
RETURN
PRINT'AM415:
FOR I = 10 TO 14
PRINT TAB(I,7); TAB(-1,47);
NEXT I
PRINT TAB(-1,24);
PRINT TAB(11,7); "4";
PRINT TAB(12,7); "1";
PRINT TAB(13,7); "5";
PRINT TAB(-1,23);
RETURN
PRINT'VCR:
FOR I = 10 TO 14
PRINT TAB(I,9); TAB(-1,47);
NEXT I
PRINT TAB(-1,24);
PRINT TAB(11,9); "6";
PRINT TAB(12,9); "1";
PRINT TAB(13,9); "0";
PRINT TAB(-1,23);
RETURN
PRINT'AM600:
FOR I = 10 TO 14
PRINT TAB(I,11); TAB(-1,47);
NEXT I
PRINT TAB(-1,24);
PRINT TAB(11,11); "6";
PRINT TAB(12,11); "0";
PRINT TAB(13,11); "0";
PRINT TAB(-1,23);
RETURN
PRINT'TAPE:
FOR I = 6 TO 8
PRINT TAB(I,1);
FOR J = 1 TO 23
PRINT TAB(-1,49);
NEXT J
NEXT I
PRINT TAB(-1,24);
PRINT TAB(7,8); " TAPE ";
PRINT TAB(-1,23);
RETURN
PRINT'AM316:
FOR I = 10 TO 14
PRINT TAB(I,13); TAB(-1,47);
NEXT I
PRINT TAB(-1,24);
PRINT TAB(11,13); "3";
PRINT TAB(12,13); "1";
PRINT TAB(13,13); "6";
PRINT TAB(-1,23);
RETURN
PRINT'TERM:
PRINT TAB(-1,23);
PRINT TAB(6,30); TAB(-1,38);
FOR I = 1 TO 15 : PRINT TAB(-1,46); : NEXT I
PRINT TAB(-1,39);
FOR I = 7 TO 11
PRINT TAB(I,30); TAB(-1,47); TAB(I,46); TAB(-1,47);
PRINT TAB(I,45); TAB(-1,33); TAB(I,31); TAB(-1,32);
NEXT I
PRINT TAB(12,30); TAB(-1,40);
FOR I = 1 TO 15 : PRINT TAB(-1,46); : NEXT I
PRINT TAB(-1,41);
PRINT TAB(13,29); TAB(-1,40);
FOR I = 1 TO 17 : PRINT TAB(-1,46); : NEXT I
PRINT TAB(-1,41);
PRINT TAB(12,29); TAB(-1,38); TAB(12,47); TAB(-1,39);
PRINT TAB(-1,23);
RETURN