Mystery Manor is a text-based adventure puzzle game in which the player traces the path of a ghostly Victorian heroine, Vanessa Dracone, through 29 rooms of a haunted manor. The player must navigate exactly ten rooms in sequence, guided by diary entries dated throughout 1887, then the game checks whether the chosen sequence matches the correct hidden path. Room connections are encoded as packed two-digit pairs in a string array, and correct answers are obscured by storing them as values requiring the expression INT(SQR(G(I)-9)) to decode. A prompter subsystem (accessible by entering 99) replays diary passages and room lists, and the game supports loading two external SCREEN$ files plus optional hardcopy output to a TS2040 printer.
Program Structure
The program is organized into several well-separated functional blocks:
- Lines 1–130: Initialization, array dimensioning, and data loading
- Lines 140–290: Main game loop — display current room, accept player input, validate moves
- Lines 300–380: End-of-game evaluation after ten moves
- Lines 1000–2020: Word-wrapped
PRINTsubroutine for long strings - Lines 3000–7020:
DATAblocks for rooms, connections, dates, characters, and actions - Lines 8000–8030: Anti-cheat/give-up handler
- Lines 8500–8800: Narrative introduction with diary entries
- Lines 9000–9026: Prompter subsystem
- Lines 9100–9150: Animated sprite routine
- Lines 9524–9800: Utility subroutines (keypress wait, screen clear)
- Lines 9810–9900: Screen loading, machine code POKEing, and save line
Data Encoding
Room data is stored compactly in R$, a 29×11 string array. The first two characters hold a date index, characters 3–9 encode up to seven ghost presence flags as single digits (with “0” meaning absent), and characters 10–11 hold a two-digit action index. This packs multiple fields into a fixed-width string without delimiters.
Room connections are stored in J$, a 29×10 string array, as packed pairs of two-digit room numbers (e.g., "0203040506" = connections to rooms 2, 3, 4, 5, 6). The validation loop at line 260 extracts these with J$(R,I*2-1 TO I*2) and compares against the player’s input.
Answer Obfuscation
The correct room sequence is not stored directly. Instead, G(I) holds encoded values, and the check at line 330 uses INT(SQR(G(I)-9)) to recover the expected room number. For example, if the correct room is 14, then G(I) would be stored as 14²+9 = 205. The give-up reveal at line 8020 uses the same expression to print the solution. This is a straightforward but effective obfuscation for a BASIC listing.
Word-Wrap Subroutine
The subroutine at line 1000 implements word-wrapping for the 32-column display. It scans N$ for the last space within the first 32 characters, prints up to that point, strips the printed portion, and recurses via GO TO 1010 (which targets the non-existent line between 1000 and 2000, falling through to 2000 — a deliberate BASIC line-skipping technique). Strings shorter than 32 characters are printed directly and the subroutine returns.
Machine Code POKEing
Lines 9850–9880 POKE two small blocks of machine code into high memory (addresses 65496–65527 and 65400–65431) read from DATA statements. The variable name m and C appear in the DATA lines as literal tokens — these are almost certainly zero-value placeholders or the data uses variable names where numeric literals were intended, which would cause a syntax error at runtime unless m and C are already assigned. This is a likely bug or artifact of the listing transcription; the data is meant to define sprite or font shapes for the animated figure used in the screen transition at line 9100.
Animated Sprite Routine
The subroutine at lines 9100–9150 moves a four-character figure (using UDG characters \e, \f, \g, \h) diagonally across the screen using PRINT AT with incrementing x and y coordinates, with PAUSE 10 delays. It loops until y >= 18, providing a simple walking animation between narrative screens.
Prompter and Narrative Subsystem
Entering 99 at the location prompt jumps to the prompter at line 9000, which sets MARKER=1 and offers a menu of diary dates. Selecting a date number causes GO SUB 8520+(DATE*10) to jump directly into the relevant diary entry subroutine (e.g., date 1 → line 8530, date 2 → line 8540). Each entry subroutine checks IF MARKER=1 THEN RETURN to exit cleanly after one entry rather than falling through to the next.
Anti-Cheat / Give-Up Logic
Line 8000 checks TRIALS: for fewer than 10 failed attempts, it simply pauses and returns with a comment “CHEATER’S ALWAYS WIN.” After 10 failures, the player is prompted to give up. Answering “Y” reveals the correct sequence by decoding G(I) with INT(SQR(g(i)-9)) across 10 iterations; answering “N” returns to the game.
Screen Loading
The initialization at line 9810 loads two external SCREEN$ files ("MYSMANORs1" and "MYSMANORs2") from tape, with an option to copy the second to a TS2040 printer. Line 8636 also offers in-game reloading of the map screen. The game is explicitly dependent on the external map and story from the original magazine source, as noted in the REM at line 5.
Notable Anomalies
- Lines 9860 and 9880 use bare variable names (
m,C) withinDATAstatements. In Sinclair BASIC,DATAitems are read as numbers or strings; unquoted names would be interpreted as numeric expressions, requiring these variables to be pre-assigned (likely to 0) for the POKE loop to function. - Line 170 contains artifact characters (
\{20}\{1}\{20}\{1}\{20}\{0}) within aPRINTstatement — these are paper/ink control codes embedded in the listing, likely toggling inverse video around the ghost name display. POKE 23692,255at line 8628 disables the scroll prompt (“scroll?”) to prevent an interruption in the room list display.
Source Code
1 RESTORE :POKE 23658,8:LET MARKER=0:BORDER 1:GO SUB 9810:GO SUB 8500
2 POKE 23561,20:POKE 23562,1
5 LET TRIALS=0:REM BASED ON 3/84 \{20}\{1}FAMILY COMPUTING\{20}\{0},pp. 100-109. STORY & MAP WERE EXTERNAL TO PROG REQUIRING A COPY OF THE MAGAZINE TO PLAY THE GAME
8 PRINT "GO TO PROMPTER IF STUMPED; IN ADDITION TO THE MAP, YOU HAVE ACCESS TO THE DIARY DATES, AND FULL DESIGNATIONS FOR ROOMS":PAUSE 80
10 DIM R$(29,11):DIM J$(29,10)
20 BORDER 1:BRIGHT 1:PAPER 1:INK 5
30 DIM D$(11,18)
40 DIM G(12)
50 DIM P$(9,10)
60 DIM A$(18,54)
70 DIM S(12)
80 RESTORE :FOR I=1 TO 29:READ R$(I,1 TO ),R$(I,3 TO ),R$(I,10 TO ):NEXT I
90 FOR I=1 TO 29:READ J$(I):NEXT I
100 FOR I=1 TO 11:READ H$:LET D$(I)=H$+", 1887":READ G(I):NEXT I
110 FOR I=1 TO 9:READ P$(I):NEXT I
120 FOR I=1 TO 18:READ A$(I):NEXT I
130 LET S(1)=1:LET R=1:LET C=R:LET FLAG=0
140 PAUSE 90:CLS
150 LET N$="YOU'RE IN LOCATION #"+ STR$ (R):GO SUB 1000:LET N$="DATE: "+D$(VAL (R$(R, TO 2))):GO SUB 1000
160 PRINT "GHOSTS PRESENT:":FOR I=3 TO 9:IF R$(R,I)="0" THEN GO TO 180
170 PRINT I;"- ";P\{20}\{1}\{20}\{1}\{20}\{0}$(VAL (R\{20}\{1}\{20}\{1}\{20}\{0}$(R,I )))
180 NEXT I
190 PRINT "ACTION TAKING PLACE:":LET N$=" "+A$(VAL (R$(R,10 TO ))):GO SUB 1000
200 IF C=10 THEN GO TO 300
210 LET N$="WHICH LOCATION COMES NEXT ( 0 RESTARTS;99 PROMPTS)":GO SUB 1000:INPUT NR
220 IF NR=0 THEN GO TO 130:REM STARTSOVER
225 IF NR=99 THEN GO SUB 9000:GO TO 210
230 IF NR=R OR NR>29 THEN GO TO 140:REM ERROR TRAPPING
240 FOR I=1 TO C:IF NR=S(I) THEN LET N$="YOU'VE ALREADY BEEN THERE!":GO SUB 1000:GO TO 210
250 NEXT I:LET LE=0
260 FOR I=1 TO 5:IF J$(R,I*2-1 TO I*2) <>" " OR NR= VAL (J$(R,I*2-1 TO I*2)) THEN LET LE=1:GO TO 290
270 NEXT I
280 IF LE=0 THEN LET N$="YOU CAN'T GET THERE FROM HERE!":GO SUB 1000:GO TO 210
290 LET C=C+1:LET S(C)=NR:LET R=NR:GO TO 140
300 LET N$="YOU'VE MADE TEN MOVES. PRESS ANY KEY TO CONTINUE.":GO SUB 1000
310 IF INKEY$="" THEN GO TO 310
320 CLS :PRINT "YOUR SEQUENCE WAS:":PRINT
330 FOR I=1 TO 10:PRINT S(I);" ";:LET FLAG=FLAG+(S(I) <> INT (SQR (G(I)-9))):NEXT I:PRINT
340 IF FLAG <>0 THEN LET Q$="SORRY! ":LET Z$="NOT "
350 IF FLAG=0 THEN LET Q$="CONGRATULATIONS! ":LET Z$=""
360 PRINT :LET N$=Q$+"YOU HAVE "+Z$+"FOLLOWED VANESSA'S STEPS.":GO SUB 1000
370 IF Z$="" THEN STOP
380 LET TRIALS=TRIALS +1:GO SUB 8000:GO TO 130
1000 LET J=0
2000 IF LEN N$<32 THEN PRINT N$:RETURN
2010 FOR X=1 TO 32:IF CODE N$(X)=32 THEN LET J=X
2020 NEXT X:PRINT N$(1 TO J):LET N$=N$(J+1 TO LEN N$):GO TO 1010
3000 DATA "01","1234678","02","02","1800000","01","11","1850000","01","03","1650000","01"
3010 DATA "02","1850000","01","03","1600000","01","04","1750000","03","03","1560000","01"
3030 DATA "04","1850000","01","06","1400000","04","05","1520000","05","04","1570000","01"
3040 DATA "05","1540000","05","05","1520000","05","06","1540000","04","07","1470000","06"
3050 DATA "06","1400000","04","07","1300000","07","08","1234678","08","07","1400000"
3060 DATA "06","08","1234678","09","10","1600000","10","09","0100000","11","10","4800000"
3070 DATA "12","09","0100000","13","08","1234678","14","09","0100000","15","10","0500000"
3080 DATA "17","09","0900000","18"
4000 DATA "0203040506","0104","0106","01020507","01040608"
4010 DATA "0103040506","040811222324","05070912","060813"
4020 DATA "161114","071012","08111314","091215"
4030 DATA "10121517","131418","191710","14161820"
4040 DATA "151721","2516","25172126","18202729"
4050 DATA "232407","22242607","23252207","24192026","2352027"
4060 DATA "262128","27","21"
5000 DATA "JANUARY 2",11,"FEBRUARY 2",35,"MARCH 21",74
5010 DATA "APRIL 12",154,"AUGUST 2",206,"SEPTEMBER 30",299
5020 DATA "OCTOBER 12",410,"NOVEMBER 23",686,"NOVEMBER 24",539
5030 DATA "NOVEMBER 25",494,"FEBRUARY 12",794
6000 DATA "VANESSA","MOTHER","FATHER","AMANDA","AUNT EMILY","SIDNEY","SEPTIMUS","SEBASTIAN","NOBODY"
7000 DATA "COURTSHIP","DEBUT PARTY","ICE SKATING","JEALOUS QUARREL","READS INVITATION","SECRET MEETING","FROZEN PIE FIGHT","HULA-HOOP CONTEST","BRUNCH PARTY","LOVERS UNITED"
7010 DATA "FINDS NOTE--IF YOU LOVE ME--MEET ME RIGHT OUTSIDE"
7020 DATA "ELOPING ON HORSE","FINDS TWO MOVIE TICKETS","TURKEY FEAST","FINDS TWO PLANE TICKETS","CONSTRUCTION","SNORING","NOTHING"
8000 IF TRIALS<10 THEN PAUSE 240:RETURN :REM CHEATER'S ALWAYS WIN
8001 IF TRIALS >9 THEN INPUT "GIVE UP?";Q$:IF Q$="" THEN GO TO 8001
8005 IF Q$="Y" THEN CLS :GO TO 8020
8010 IF Q$="N" THEN RETURN
8020 FOR i=1 TO 10:PRINT INT (SQR (g(i)-9));" ";:NEXT i
8030 PAUSE 300:STOP
8500 BORDER 1:BRIGHT 1:PAPER 1:INK 5:CLS :REM NARRATIVE
8502 REM INSERT SCRIPT GOTHIC WHATEVER BETWEEN 8501 AND 8515
8518 PRINT AT 1,10;"\q\r"; AT 2,10;"\s\t"; AT 2,12;"ONG AGO"
8520 PRINT "IN A GALICIA FAR, FAR AWAY VANESSA DRACONE HAD A THWARTED LOVE FOR A MYSTERIOUS SUITOR, ONLY 'S' IN HER DIARY."
8522 PRINT '"USING VANESSA'S MOULDERING DIARYTRACE HER STEPS THROUGH ROOMS OF THE NOW-HAUNTED MANOR IN SEARCH OF HER LOVER. DOES THE GHOST OF VANESSA FINALLY UNITE WITH 'S' OR ARE THEY TO BESTAR-CROSSED THROUGH 48K?"
8524 PRINT ''"CAN YOU PUT THEIR SOULS TO REST AFTER A CENTURY?"
8525 GO SUB 9524:PRINT "\{20}\{1}\{16}\{3}CHARACTERS:\{20}\{0}\{16}\{5}"
8527 PRINT ''"\{20}\{1}VANESSA\{20}\{0}-OUR GHOSTLY HEROINE";'"\{20}\{1}AMANDA\{20}\{0}-HER ENVIOUS SISTER";'"\{20}\{1}AUNT EMILY\{20}\{0}-WHO CHAPERONES WHEN SUITORS CALL";'"\{20}\{1}MOTHER\{20}\{0}-\{20}\{0}WHO DOESN'T DREAM";'"\{20}\{1}FATHER\{20}\{0}-WHO NEVERS SUSPECTS"
8529 PRINT '"THE SUITORS: ";''"\{16}\{2}\{20}\{1}\{16}\{6}SIDNEY\{16}\{5}\{20}\{0}\{16}\{5}-AN AGING BUT ROMANTIC BARON";'"\{16}\{6}\{16}\{6}\{20}\{1}SEPTIMUS\{16}\{5}\{20}\{0}-A SCHOLARLY BIG GAME HUNTER";'"\{16}\{6}\{20}\{1}SEBASTIAN\{20}\{0}\{16}\{5}-A VISITING HUNGARIAN CAVALRYMAN":GO SUB 9524
8530 PRINT '"\{16}\{0}\{20}\{1}\{16}\{5}\{20}\{1}JANUARY 2,. 1887\{20}\{0}-TODAY WAS MY DEBUT INTO SOCIETY AND AMANDA SO ENVIES MY THREE SUITORS.";'"EACH IS SO DIFFERENT!";'"SIDNEY SAID HE WOULD ONLY COURT A DAMSEL UNDER THE MAGNOLIAS IN SPRING."
8532 PRINT "I REPLIED THAT OUR FAMILY TRADI-TION REQUIRES SUITORS BE ENTER- TAINED IN THE MOST FORMAL ROOM IN THE MANSION, BUT MOTHER SAID WE ARE NOT TOO TRADITIONAL TO BREAKFAST IN THE PARLOR DAILY."
8534 PRINT '"SEBASTIAN SAID HE WOULD RATHER MEET HIS DESTINY IN A ROSE GAR- DEN THAN ON A BATTLEFIELD.";'"SEPTIMUS BROUGHT ME A BOOK OF POETRY FOR OUR LIBRARY, HIS FAVORITE ROOM."
8538 GO SUB 9524
8539 IF MARKER=1 THEN RETURN
8540 PRINT '"\{20}\{1}FEBRUARY 2,1887\{20}\{0}-TEA WITH MY 1ST GENTLEMAN CALLER, SEBASTIAN. FATHER INVITED HIM TO THE SMOK- ING ROOM, THEN TO SEE THE GUN ROOM (TWO EXCLUSIVELY MALE DO- MAINS IN THE MANOR) BUT SEBAS- TIAN DECLINED IN ORDER TO BE WITH ME."
8542 PRINT '"WE SAT UPON AN UNCOMFORTABLY STIFF, VELVET SETTEE. SEBASTIANIS AS IMPRESSIVE AS THE MEDALS ON HIS UNIFORM. EVEN AUNT EMILYWAS SORRY TO SEE HIM LEAVE."
8548 GO SUB 9524
8549 IF MARKER=1 THEN RETURN
8550 PRINT '"\{20}\{1}MARCH 21,1887\{20}\{0}-TODAY A NEW SEASONARRIVED AND WITH IT A 2ND SUITOR--SIDNEY. AUNT EMILY SWOONED WHEN HE COMPARED THE MAGNOLIA BLOSSOMS TO THE PALENESS OF MY BARE SHOULDERS. BOLD!\{20}\{0}"
8552 PRINT "SUCH AUDACITY PUT ROSES IN MY CHEEKS, BUT THEY WOULD PALE IF HE WERE NEVER TO CALL AGAIN."
8558 GO SUB 9524
8559 IF MARKER=1 THEN RETURN
8560 PRINT '"\{20}\{1}APRIL 12,1887\{20}\{1}\{20}\{0}-SPENT THE DAY WITH MY 3RD SUITOR, SEPTIMUS, INHIS FAVORITE SPOT AT THE MANOR.";''"AT FIRST HE WAS QUITE DISTRACTEDBROWSING FROM SHELF TO SHELF BUTHE WAS ONLY LOCATING A VOLUME OFROMANTIC POETRY FROM WHICH TO READ ALOUD TO AUNT EMILY AND ME."
8562 PRINT ''"HE DID PRAISE MY BROWN EYES, SAYING HE LOATHED PRUSSIAN BLUE."
8568 GO SUB 9524
8569 IF MARKER=1 THEN RETURN
8570 PRINT '"\{20}\{1}AUGUST 2,1887\{20}\{0}-BREAKFAST BEGAN WITH AUNT EMILY'S ACCOUNT TO MY MOTHER OF EVERY WORD MY SUITORS SAID. THANK HEAVENS AMANDA WAS NOT THERE TO BE JEALOUS. MOTHERKNOWS NOT THAT I HAVE ALREADY CHOSEN THE ONE SUITOR TO WHOM I WOULD GIVE MY SOUL.\{20}\{0}"
8572 PRINT ''"(FOR CAUTION'S SAKE, I REFER TO HIM ONLY AS S HEREAFTER.) DEAR, DEAR DIARY, IMAGINE HOW MY HEARTLEAPT AT RECEIVING THIS MORNING AN INVITATION FROM S FOR TONIGHT--A SECRET MEETING!"
8578 GO SUB 9524
8579 IF MARKER=1 THEN RETURN
8580 PRINT '"\{20}\{1}SEPTEMBER 30,1887\{20}\{0}-OH, MISERY! MY REPLY TO S WAS READ BY MY SISTER BEFORE I SENT IT OFF! WHEN I REFUSED TO TELL HER WHO SWAS, SHE FLUNG MY HAIRBRUSH AT ME AND NEARLY BROKE MY MIRROR. SHE CRIED,'I MUST KNOW...FOR I LOVE HIM AS MUCH AS YOU!' WHEN IASKED HER TO WHICH S SHE REFER- RED, SHE TOO WAS SILENT."
8588 GO SUB 9524
8589 IF MARKER=1 THEN RETURN
8590 PRINT '"\{20}\{1}OCTOBER 12,1887\{20}\{0}-MY MEETING WITH S WAS ABORTED! I ARRIVED AT OUR APPOINTED PLACE ONLY TO DISCOVERAMANDA THERE INSTEAD! SHE CAME TO DISCOVER S'S IDENTITY BUT HERPRESENCE FRIGHTENED HIM AWAY."
8598 GO SUB 9524
8599 IF MARKER=1 THEN RETURN
8600 PRINT '"\{20}\{1}NOVEMBER 23, 1887\{20}\{0}-SEPTIMUS, SID-NEY, SEBASTIAN AND THE FAMILY WATCHED THE SETTING SUN DIP BE- LOW THE SNOW DRIFTS."
8602 PRINT ''"S'S MANNER WAS EQUALLY CHILLY, IGUESS BECAUSE OF AMANDA'S BREAK-ING UP OUR OCTOBER TRYST. NOT MY FAULT. WORSE, AMANDA SEEMED POSITIVELY BUOYANT."
8604 PRINT ''"AFTER S RETIRED TO HIS BEDROOM NEXT DOOR, I PONDERED OVER LOS- ING HIM FOREVER."
8608 GO SUB 9524
8609 IF MARKER=1 THEN RETURN
8610 PRINT '"\{20}\{1}NOVEMBER 24,1887\{20}\{0}-THE 3 S'S SPENTTHE DAY PACKING, AND VACATED THEIR BED CHAMBERS BY EVENING.\{20}\{0}"
8612 PRINT ''"NOT LONG AFTER, A SERVANT NOTED THAT AMANDA AND HER BELONGINGS HAD VANISHED. MOTHER FAINTED. AMANDA HAS RUN OFF WITH ONE OF MY BEAUS."
8614 PRINT '"I NOW AM WRITING THIS IN S'S EMPTY ROOM. A MIDNIGHT'S CHILL WIND BLOWS OUT OF THE WEST. I HAVE FOUND AN ENVELOPE ADDRESSEDTO ME FROM S."
8616 PRINT '"THO MY HANDS SHAKE, NO MATTER WHAT IT SAYS, I'LL FOLLOW HIM."
8618 GO SUB 9524
8619 IF MARKER=1 THEN RETURN
8620 PRINT "\{16}\{3}\{18}\{1}ROOM LIST\{16}\{5}\{18}\{0}"
8622 PRINT '"1. BALLROOM";'"2. REAR VESTIBULE";'"3. STUDY";'"4. GUN ROOM";'"5. FORMAL RECEPTION ROOM"
8624 PRINT "6. SITTING ROOM";'"7. RECREATION LAWN";'"8. COURTYARD VERANDA";'"9. DINING ROOM";'"10. SMOKING ROOM";'"11. BREAKFAST ROOM"
8626 PRINT "12. LIBRARY";'"13. BACK PARLOR";'"14. FRONT PARLOR";'"15. BACK PORCH";'"16. TURQUOISE DRAWING ROOM"
8627 GO SUB 9524
8628 POKE 23692,255:PRINT "17. BOUDOIR";'"18. KITCHEN";'"19. PATIO";'"20. CONSERVATORY";'"21. MAIN HALL"
8630 PRINT "22. GAZEBO";'"23. GUEST BEDROOM #1";'"24. ROSE GARDEN";'"25. GUEST BEDROOM #2"
8632 PRINT "26. RED DRAWING ROOM";'"27. GUEST BEDROOM #3";'"28. BEDROOM";'"29. BEDROOM"
8634 PRINT ''"\{20}\{1}THERE ARE COLOR CLUES IN THE SCREEN MAP THAT ARE NOT ON COPY.\{20}\{0}":INPUT "\{20}\{1}G\{20}\{0}O ON OR \{20}\{1}R\{20}\{0}E-LOAD MAP? G/R";G$:IF G$="" THEN GO TO 8634
8636 IF G$="R" THEN PRINT "REPOSITION TAPE!":GO SUB 9524:LOAD /"MYSMANORs2"SCREEN$ :GO SUB 9524
8642 CLS :GO SUB 9100:PRINT 240:CLS
8644 IF MARKER=1 THEN RETURN
8800 RETURN
9000 LET MARKER=1:CLS :PRINT " \{20}\{1}P R O M P T E R\{20}\{0}"
9002 PRINT ''"\{17}\{5}\{16}\{0}1887 DATES: \{17}\{1}\{16}\{7}\{16}\{5}"
9010 PRINT '"(1) JANUARY 2 ";"(6) SEPTEMBER 30"
9012 PRINT '"(2) FEBRUARY 2 ";"(7) OCTOBER 12"
9014 PRINT '"(3) MARCH 21 ";"(8) NOVEMBER 23"
9016 PRINT '"(4) APRIL 12 ";"(9) NOVEMBER 24"
9018 PRINT '"(5) AUGUST 2 ";"(10) \{16}\{3}\{18}\{1}ROOM LIST\{18}\{0}\{16}\{5}"
9020 INK 5:PRINT '''"\{20}\{1}THE LAST PAGE OF THE DIARY WAS RIPPED OUT\{20}\{0}"
9022 INPUT "INPUT NUMBER OF DATE FOR REVIEW ";DATE:IF DATE<1 OR DATE>10 THEN GO TO 9022
9024 CLS :GO SUB 8520+(DATE*10)
9026 RETURN
9100 PRINT "MOVING RIGHT ALONG!":REM SCAMPER HERE
9110 LET x=30:LET y=0
9120 PRINT AT y,x;"\e":LET y=y+1:PRINT AT y,x;"\g":PAUSE 10
9125 LET x=x-3:LET y=y+3:PRINT AT y,x;"\f"; AT y+1,x;"\h":PAUSE 10:IF y >=18 THEN RETURN
9130 LET x=x-3:LET y=y+3:GO TO 9120
9150 RETURN
9524 PRINT #1;"PRESS ANY KEY":PAUSE 0:CLS
9800 CLS :RETURN
9810 PRINT "\{17}\{2}\{16}\{7}\{18}\{1} LOADING SCREEN$ \{18}\{0}\{17}\{2}\{16}\{7}\{16}\{0}\{17}\{7}":BORDER 1:LOAD "MYSMANORs1"SCREEN$ :GO SUB 9850:CLS :BORDER 0:LOAD "MYSMANORs2"SCREEN$ :INPUT "COPY TO TS2040? Y/N? ";C$:IF C$="" THEN PAUSE 60:CLS :RETURN
9820 IF C$="Y" OR C$="C" THEN COPY :RETURN
9830 IF C$="N" THEN INPUT "SURE?\{20}\{1}C\{20}\{0}OPY/\{20}\{1}G\{20}\{0}O-ON ";C$:IF C$="G" THEN RETURN
9840 GO TO 9820
9850 RESTORE 9860:FOR P=65496 TO 65527:READ M:POKE P,M:NEXT P
9860 DATA 0,m,m,m,m,1,m,m,28,62,98,70,196,192,m,m,1,m,m,3,7,30,15,0,192,m,128,m,0,4,248,0
9870 RESTORE 9880:FOR P=65400 TO 65431:READ C:POKE P,C:NEXT P:RETURN
9880 DATA 0,C,C,12,30,C,0,C,C,C,C,48,120,C,0,C,28,60,126,C,C,62,30,12,56,60,126,C,C,124,120,48
9890 STOP :REM TAPE TO DISK CHANGE 8636,9810
9900 CLEAR :SAVE "MYSMANOR" LINE 1
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

