;       Little Tower
; Apple1 Adventure Game v0.2
;    	Written by VERHILLE Arnaud
;		(C) September 2000

;********************************************
;*********** MACROS DEFINITIONS *************
;********************************************

.macpack longbranch   ;import standard  macro def

;*** Test String macro ***
;Return Accumulator Value : $00 false, $FF true
        .macro  testString StringAddress
                LDA #<StringAddress
		STA AddressL
		LDA #>StringAddress
		STA AddressH
		JSR COMPARE
        .endmacro

;*** Print String macro ***
        .macro printString StringAddress
                LDA #<StringAddress
		STA AddressL
		LDA #>StringAddress
		STA AddressH
		JSR READTXT
        .endmacro

;*** Print Room Information macro ***
        .macro printRoomInfo RoomNumbTxt,RoomNumbObj,RoomNumbExit
                printString RoomNumbTxt
		printString ObjTxt
		printString RoomNumbObj
		printString ExitTxt
		printString RoomNumbExit
        .endmacro

;********************************************
;**************** VARIABLES *****************
;********************************************

.org $0300	; Type 300R to run

;******* Hardware Variables ************

KBD   = $D010	         ; Keyboard I/O
KBDCR = $D011

;************ Bios Address *************

ECHO = $FFEF		;Print Character in Accumulator
RESET = $FF1A		;Bios Getline

;********* Zero Page Variables *********

;For GRAPHIC subroutine
CharacValue = $00	;Character Value
CharacNumb = $01	;Character Number

;For Subroutine
AddressL = $02	        ;Txt Start Address low byte
AddressH = $03	        ;Txt Start Address high byte
PrintLook = $04         ;$00 if a new description is required

;Adventure Values
RoomPos = $10		;Your Position in the game
Room1DoorState = $11    ;Door 1 open = $FF, closed = $00
KeyState = $12          ;Key in Inventory ?
TorchState = $13        ;Torch in inventory ?
DaggerState = $14       ;Dagger in Inventory ?
Room5State = $15        ;LIGHT in Room5 ?
Paralysis = $16         ;Paralysis State

;******** Text Buffers *********

BUF = $0200		;$200-$27F

;********************************************
;************* Main Routine *****************
;********************************************

; *** Initialisation ***

INIT:		CLD		;Clear decimal arithmetic mode
		JSR INTRO	;Introduction Txt
		LDA #$01	
		STA RoomPos	;Init roomPos
                LDA #$00
		STA Room1DoorState	;Door 1 closed
                STA Room5State          ;No Light in Room 5
                STA KeyState            ;No Key in Inventory
                STA TorchState          ;No Torch in Inventory
                STA DaggerState         ;No Dagger in Inventory
                LDA #$FF
                STA Paralysis           ;Paralysis On
		LDA #$00
		STA PrintLook	;Init Description
		JMP MAIN	;Start Game

; *** Main Loop ***

MAIN:		LDA PrintLook	;Need description ?
		BNE MAIN2	;No,branch
		JSR ROOMTXT	;Print Room txt
MAIN2:		JSR ESCAPE	;Get usr input
		JSR ANALYSE	;Analyse input
		JMP MAIN	;Loop

; *** Analyse txt buffer ***

ANALYSE:	;Test General Actions
                testString Help
		BMI ANAHELP	;Yes, branch
		testString Exit
		BMI ANAEXIT	;Yes, branch	
		testString Look
		BMI ANALOOK	;Yes, branch
                testString Shit
		BMI ANASHIT	;Yes, branch
                testString Fuck
		BMI ANASHIT	;Yes, branch
                testString Inventory
                BMI ANAI        ;Yes, branch
		; Now room specific actions
		LDA RoomPos	;Load Room Position
		CMP #$01
		jeq ANA1	;if room 1 go to label
		CMP #$02
		jeq ANA2	;if room 2 go ....
                CMP #$03
		jeq ANA3	;if room 3 go ....
                CMP #$04
		jeq ANA4	;if room 4 go ....
                CMP #$05
		jeq ANA5	;if room 5 go ....
                CMP #$06
		jeq ANA6	;if room 6 go ....
                ;It normally never reach this point
                printString RoomError

                ; General Actions Subroutines
ANAHELP:	printString HelpTxt
		RTS
ANAEXIT:	JMP RESET	 ;Jump to monitor
ANALOOK:	LDA #$00
		STA PrintLook	;Enable Reprint Description
		RTS
ANASHIT:	printString ShitTxt
ANASHITIT:      JSR ESCAPE	     ;Get usr input
                testString Sorry
		BPL ANASHITIT	        ;No, branch
                printString ShitTxt2
                RTS
ANAI:           printString InventoryTxt
                LDA KeyState
                BMI ANAIKEY
                printString InventoryNothing
                RTS
ANAIKEY:        printString Key
                LDA TorchState
                BPL ANAINOTORCH
                printString Torch
ANAINOTORCH:    LDA DaggerState
                BPL ANAINODAGGER
                printString Dagger
ANAINODAGGER:   RTS

                ; Room 1 Specific Action
ANA1:		testString South
		BMI ANA1S	   ;Yes, branch
                testString ExamineDoor
                BMI ANA1DOOR
                testString UseKey
                BMI ANA1KEY
                testString Enter
                BMI ANA1ENTER
                RTS
ANA1S:          LDA #$02        ;if South Go to Room 2
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA1DOOR:       LDA Room1DoorState
                BMI ANA1DOOROPEN
                printString Room1Door1
                RTS
ANA1DOOROPEN:   printString Room1Door2
                RTS
ANA1KEY:        LDA KeyState      ;Key in inventory ?
                BMI ANA1KEYOK     ;Yes, branch
                printString NoKey
                RTS
ANA1KEYOK:      printString UnlockDoor
                LDA #$FF
                STA Room1DoorState  ;Unlock the door
                RTS
ANA1ENTER:      LDA Room1DoorState
                BMI ANA1ENTEROK
                printString Room1Door1
                RTS
ANA1ENTEROK:    LDA #$03        ;if Enter Go to Room 3
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS

                ; Room 2 Specific Action
ANA2:		testString North
		BMI ANA2N	   ;Yes, branch
                testString South
                BMI ANA2S
                testString ExamineBoat
                BMI ANA2BOAT
                testString ExamineSkeleton
                BMI ANA2SKELETON
                RTS
ANA2N:          LDA #$01        ;if North Go to Room 1
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA2S:          printString Room2Boat
                PLA             ;Destroy JSR ref
                JMP RESET
ANA2BOAT:       printString BoatState
                RTS
ANA2SKELETON:   printString Skeleton
                LDA #$FF
                STA KeyState    ;OK, Key in your inventory
                RTS

                ; Room 3 Specific Action
ANA3:		testString West
                BMI ANA3W
                testString Up
                BMI ANA3UP
                testString ExamineTorch
                BMI ANA3ETORCH
                testString GetTorch
                BMI ANA3GTORCH
                RTS
ANA3W:          LDA #$01        ;if West Go to Room 1
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA3UP:         LDA #$04        ;if Up Go to Room 4
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA3ETORCH:     printString ExamineTorchTxt
                RTS
ANA3GTORCH:     printString GetTorchTxt
                LDA #$FF
                STA TorchState
                RTS

                ; Room 4 Specific Action
ANA4:		testString Up
                BMI ANA4UP
                testString Down
                BMI ANA4DOWN
                testString South
                BMI ANA4S
                testString ExaminePicture
                BMI ANA4EPIC
                testString ExamineBed
                BMI ANA4EBED
                RTS
ANA4UP:         LDA #$06        ;if Up Go to Room 6
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA4DOWN:       LDA #$03        ;if Up Go to Room 3
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA4S:          LDA #$05        ;if Up Go to Room 5
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA4EPIC:       printString ExaminePictureTxt
                RTS
ANA4EBED:       printString ExamineBedTxt
                RTS

                ; Room 5 Specific Action
ANA5:		testString ExamineDesk
                BMI ANA5DESK
                testString ExamineBook
                BMI ANA5BOOK
                testString North
                BMI ANA5N
                testString UseTorch
                BMI ANA5LIGHT
                RTS
ANA5DESK:       printString ExamineDeskTxt
                LDA #$FF
                STA DaggerState         ;Put dagger in bag
                RTS
ANA5BOOK:       printString ExamineBookTxt
                RTS
ANA5N:          LDA #$04        ;if North Go to Room 4
                STA RoomPos
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA5LIGHT:      LDA #$FF
                STA Room5State  ;LIGHT in room 5
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                STA TorchState  ;No Torch in Inventory
                RTS

                ; Room 6 Specific Action
ANA6:		testString Down
                BMI ANA6D
                testString SayAnaetosh
                BMI ANA6PARA
                testString UseDagger
                BMI ANA6DAGGER
                RTS
ANA6D:          LDA Paralysis
                BPL ANA6DOK
                printString Death
                PLA             ;Destroy JSR ref
                JMP RESET
ANA6DOK:        LDA #$04        ;if Down Go to Room 4
                STA RoomPos
                LDA #$FF
                STA Paralysis   ;Paralysis On
                LDA #$00
		STA PrintLook	;Enable Reprint Description
                RTS
ANA6PARA:       printString SayAnaetoshTxt
                LDA #$00
                STA Paralysis   ;No Paralysis
                RTS
ANA6DAGGER:     LDA Paralysis
                BPL ANA6DAGGEROK
                printString Cantmove
                RTS
ANA6DAGGEROK:   printString Win
                PLA             ;Destroy JSR ref
                JMP RESET

; *** Print Room Information ***

ROOMTXT:	LDA #$FF	;Mask for
		STA PrintLook	;No more descrip

		;Test for each Room
		LDA RoomPos	;Load Room Position
		CMP #$01
		jeq ROOMTXT1	;if room 1 go to label
		CMP #$02
		jeq ROOMTXT2	;if room 2 go ....
                CMP #$03
		jeq ROOMTXT3	;if room 3 go ....
                CMP #$04
		jeq ROOMTXT4	;if room 4 go ....
                CMP #$05
		jeq ROOMTXT5	;if room 5 go ....
                CMP #$06
		jeq ROOMTXT6	;if room 6 go ....
		;It normally never reach this point
                printString RoomError

ROOMTXT1:	printRoomInfo Room1Txt,Room1Obj,Room1Exit
		RTS
ROOMTXT2:	printRoomInfo Room2Txt,Room2Obj,Room2Exit
		RTS
ROOMTXT3:	printRoomInfo Room3Txt,Room3Obj,Room3Exit
		RTS
ROOMTXT4:	printRoomInfo Room4Txt,Room4Obj,Room4Exit
		RTS
ROOMTXT5:	LDA Room5State
                BMI ROOMTXT5LIGHT
                printString Room5TxtNoLight
		RTS
ROOMTXT5LIGHT:  printRoomInfo Room5Txt,Room5Obj,Room5Exit
                RTS
ROOMTXT6:	printRoomInfo Room6Txt,Room6Obj,Room6Exit
		RTS

;********************************************
;*************** SubRoutines ****************
;********************************************


;*** Compare user BUF and txt address ***
;param BUF user buffer starting address
;param AddressL, AddressH from a txt address
;EOF charactere for txt is % = 0x25
;return Accumulator with 0x00 if false, 0xFF if true

COMPARE:	LDY #$FF	;reset index
COMPIT:		INY
		LDA (AddressL),Y;load charac
		CMP #$25	;EOF ?
		BEQ COMPTRUE	;Yes, branch to true
		ADC #$7F	;Add Bit7 to compare kbd output
		CMP BUF,Y	;Compare with user buffer
		BEQ COMPIT	;Ok,continue comparison
		LDA #$00	;Result false
		RTS
COMPTRUE:	LDA #$FF	;Result true
		RTS


;*** Get user input in txt buffer Subroutine ***
;param BUF Txt buffer starting address

NOTCR: 		CMP #$DF	;Backspace ?
		BEQ BACKSPACE
		CMP #$9B	;Escape ?
		BEQ ESCAPE
		INY
		BPL NEXTCHAR	;Auto ESC if Y > 127
ESCAPE:		LDA #$8D	;new line
		JSR ECHO
		LDA #$3E	;">"
		JSR ECHO
		LDY #$01	;Init txt index
BACKSPACE:	DEY
		BMI ESCAPE	;More than 127 char, reset
NEXTCHAR:	LDA KBDCR
		BPL NEXTCHAR	;Key Ready ?
		LDA KBD		;Load charac
		STA BUF,Y	;Add to txt buffer
		JSR ECHO
		CMP #$8D	;CR ?
		BNE NOTCR	;No
		RTS

;*** Subroutine for repetitive GRAPH ***
;param CharacValue, CharacNumb

GRAPH: 		LDY #$00	;reset index
		LDA CharacValue	;Load charac Value
GRAPHIT:	INY		;Advance index
		JSR ECHO	;Output Charac
		CPY CharacNumb	;Number reach ?
		BNE GRAPHIT	;No, continue
		RTS		;Return

;*** Subroutine for reading Txt adress ***
;param AddressL, AdressH
;Txt Format : EOF = % = 0x25, CR = & = 0x26

READTXT:	LDY #$FF	;reset index
READTXTIT:	INY
		LDA (AddressL),Y;Absolute Adress indirect read
		CMP #$25	;"%" ? End of message ?
		BEQ READTXTEND	;Yes Branch
		CMP #$26	;"&" ? New line ?
		BEQ READTXTCR	;Yes, branch
		JSR ECHO
		JMP READTXTIT	;Continue
READTXTCR:	LDA #$8D	;CR
		JSR ECHO
		JMP READTXTIT	;Continue
READTXTEND:	RTS

;*** Draw introduction Subroutine ***

INTRO: 		LDA #$8D	;CR
		JSR ECHO
		JSR ECHO
		LDA #$08	;8 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 8 space
		printString CopyMess1
		LDA #$0A	;10 space
		STA CharacNumb	;Store it
		JSR GRAPH	;Output 10 space
		printString CopyMess2
		LDA #$0C	;12 space
		STA CharacNumb	;Store it
		JSR GRAPH	;Output 12 space
		printString CopyMess3

		;Draw the ASCII Tower Line 1
		LDA #$8D	;CR
		JSR ECHO
		LDA #$10	;16 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 16 space
		LDA #$08
		STA CharacNumb
		LDA #$C9	;"I"
		STA CharacValue
		JSR GRAPH
		;Line 2
		LDA #$8D	;CR
		JSR ECHO
		LDA #$10	;16 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 16 space
		LDA #$C9	;"I"
		JSR ECHO
		LDA #$06	;6 space now
		STA CharacNumb
		JSR GRAPH
		LDA #$C9	;"I"
		JSR ECHO
		;Line 3
		LDA #$8D	;CR
		JSR ECHO
		LDA #$10	;16 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 16 space
		LDA #$C9	;"I"
		JSR ECHO
		LDA #$06	;6 space now
		STA CharacNumb
		JSR GRAPH
		LDA #$C9	;"I"
		JSR ECHO
		;Line 4
		LDA #$8D	;CR
		JSR ECHO
		LDA #$10	;16 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 16 space
		LDA #$C9	;"I"
		JSR ECHO
		LDA #$06	;6 space now
		STA CharacNumb
		JSR GRAPH
		LDA #$C9	;"I"
		JSR ECHO
		;Line 5
		LDA #$8D	;CR
		JSR ECHO
		LDA #$10	;16 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 16 space
		LDA #$C9	;"I"
		JSR ECHO
		LDA #$02	;2 space now
		STA CharacNumb
		JSR GRAPH
		LDA #$C9	;"I"
		STA CharacValue
		JSR GRAPH
		LDA #$A0	;" "
		STA CharacValue
		JSR GRAPH
		LDA #$C9
		JSR ECHO
		;Line 6
		LDA #$8D	;CR
		JSR ECHO
		LDA #$10	;16 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 16 space
		LDA #$C9	;"I"
		JSR ECHO
		LDA #$02	;2 space now
		STA CharacNumb
		JSR GRAPH
		LDA #$C9	;"I"
		STA CharacValue
		JSR GRAPH
		LDA #$A0	;" "
		STA CharacValue
		JSR GRAPH
		LDA #$C9
		JSR ECHO
		;Line 7
		LDA #$8D	;CR
		JSR ECHO
		LDA #$0C	;12 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 12 space
		LDA #$C9	;"I"
		STA CharacValue
		LDA #$10	;16 "I"
		STA CharacNumb
		JSR GRAPH
		; Choice Menu
		LDA #$8D	;CR
		JSR ECHO
		JSR ECHO
		LDA #$0C	;12 space
		STA CharacNumb	;Store it
		LDA #$A0	;" "
		STA CharacValue	;Store Space
		JSR GRAPH	;Output 12 space
		printString IntroChoice

		;Check Intro Choice
		LDA #$3E	;">"
		JSR ECHO
INTNXTCHAR:	LDA KBDCR
		BPL INTNXTCHAR	;Key Ready ?
		LDA KBD		;Load charac
		CMP #$B1	;"1" PLAY
		BEQ INTEND	;return
		CMP #$B2	;"2" HELP
		BEQ INTHELP	;Yes,branch
		JMP INTNXTCHAR
INTHELP:	printString HelpTxt
INTEND:		printString LetBegin
		RTS	

;********************************************
;************** DATA ADDRESS ****************
;********************************************

;Data Txt Format : EOF = % = 0x25, CR = & = 0x26
;Beware Data must be under 0xFF byte long

;*** Copyrights

CopyMess1: 	.byte "LITTLE TOWER&%"
CopyMess2:	.byte "APPLE 1 COOL GAME&%"
CopyMess3:	.byte "WRITTEN BY A.VERHILLE&%"

;*** Introduction choice

IntroChoice:	.byte "1] PLAY  2] HELP&&%"

;*** Misc Txt

LetBegin:	.byte "OK, NOW LET'S BEGIN ...&&%"
HelpTxt: 	.byte "THIS IS A BASIC TXT ADVENTURE.&VALIDS COMMANDS ARE:&&DIRECTION: N,S,W,E,UP,DOWN.&ACTION: LOOK,EXAMINE,ENTER,GET,USE,SAY.&SPECIAL: INVENTORY,HELP,EXIT.&OBJECT: BOAT,DOOR,AND MORE...&&COMPLEX COMMAND USE TWO WORD MAX&%"
ObjTxt:		.byte "OBJECT(S): %"
ExitTxt:	.byte "EXIT(S): %"
ShitTxt:	.byte "HEY, BECAUSE YOU SAY THAT,&YOU MUST TYPE 'SORRY' TO CONTINUE.&OBEY CAN BE A GOOD IDEA&%"
ShitTxt2:       .byte "OK, YOU'RE A GOOD BOY (OR GIRL),&YOU CAN PLAY NOW ...&%"
RoomError:      .byte "ROOM POSITION ERROR :-(((((&%"
InventoryTxt:   .byte "YOUR BAG CONTAINS :&%"
Key:            .byte "A KEY&%"
Torch:          .byte "A TORCH&%"
Dagger:         .byte "A SILVER DAGGER&%"
InventoryNothing:   .byte "NOTHING&%"

;*** Action Commands
;Generals Commands
Exit:		.byte "EXIT%"
Help:		.byte "HELP%"
Look:		.byte "LOOK%"
Shit:		.byte "SHIT%"
Fuck:           .byte "FUCK%"
Sorry:          .byte "SORRY%" 
Inventory:      .byte "INVENTORY%"

; Directions Commands
North:          .byte "N%"
South:          .byte "S%"
West:           .byte "W%"
Up:             .byte "UP%"
Down:           .byte "DOWN%"

; Actions Commands
SayAnaetosh:    .byte "SAY ANAETOSH%"
UseDagger:      .byte "USE DAGGER%"
UseTorch:       .byte "USE TORCH%"
ExamineDesk:    .byte "EXAMINE DESK%"
ExamineBook:    .byte "EXAMINE BOOK%"
ExaminePicture: .byte "EXAMINE PICTURE%"
ExamineBed:     .byte "EXAMINE BED%"
ExamineTorch:   .byte "EXAMINE TORCH%"
ExamineBoat:    .byte "EXAMINE BOAT%"
ExamineSkeleton:.byte "EXAMINE SKELETON%"
ExamineDoor:	.byte "EXAMINE DOOR%"
GetTorch:       .byte "GET TORCH%"
Enter:          .byte "ENTER%"
UseKey:         .byte "USE KEY%"

;*** Room Information

Room1Txt:	.byte "YOU'RE IN A DARK FOREST.&ELUSIVE SHADOWS ARE FLYING AROUND.&IN FRONT OF YOU, A THREE FLOOR TOWER&SEEMS TO BE WELCOMING.&TO THE SOUTH, A LAKE DISAPPEARING&INTO THE FOG&%"
Room1Obj:	.byte "DOOR&%"
Room1Exit:	.byte "S,ENTER&%"

Room2Txt:	.byte "YOU'RE ON THE LAKE'S BANK,&THERE IS A SKELETON HERE, AND AN OLD&SMALL BOAT FLOATTING ON THE WATER. IT&CAN PROBABLY TRANSPORT YOU TO THE SOUTH&%"
Room2Obj:	.byte "SKELETON,BOAT&%"
Room2Exit:	.byte "N,S&%"

Room3Txt:       .byte "YOU'RE IN A WORKSHOP. LOTS OF WOOD'S&PLANKS ARE RESTING ON THE WALLS. THERE&ARE SOME TORCHS ON A WORKBENCH, STAIRS&TO THE NORTH AND A DOOR TO THE WEST.&%"
Room3Obj:       .byte "TORCH&%"
Room3Exit:      .byte "W,UP&%"

Room4Txt:       .byte "WELCOME TO THE TOWER'S BEDROOM.&THERE ARE SOME PICTURES ON THE WALL,&BUT NOTHING MORE SEEMS USEFUL HERE.&OH, THERE'S A DOOR ON THE SOUTH TOO.&%"
Room4Obj:       .byte "PICTURE,BED&%"
Room4Exit:      .byte "UP,DOWN,S&%"

Room5Txt:       .byte "IN THIS ROOM, THERE'S A LIBRARY WHERE&HUNDRED OF BOOKS ARE STORED.&A WOODEN DESK AND A CHAIR&ARE RESTING HERE.&%"
Room5Obj:       .byte "DESK,BOOK&%"
Room5Exit:      .byte "N&%"

Room6Txt:       .byte "THIS ROOM IS TOTALY WIPED OUT,&YOU CAN SEE THE STARS FROM HERE.&IN THE MIDDLE OF THE MESS,&A DARK MAN IS LOOKING AT YOU.&%"
Room6Obj:       .byte "NOTHING&%"
Room6Exit:      .byte "DOWN&%"

;*** Room Specific Answers

Room1Door1:     .byte "THE DOOR IS CLOSED&%"
Room1Door2:     .byte "THE DOOR IS UNLOCKED AND OPEN,&TYPE 'ENTER' NOW&%"
Room2Boat:      .byte "THE BOAT IS SINKING !!!!&THAT'S THE END.&%"
BoatState:      .byte "THERE IS A LITTLE HOLE IN THE BOAT,&GOOD TO KNOW !&%"
Skeleton:       .byte "THERE IS A KEY UNDER THE SKELETON&YOU GET THE KEY WITH YOU.&%"
NoKey:          .byte "NO KEY IN YOUR INVENTORY !!!!&%"
UnlockDoor:     .byte "OK, THE DOOR IS UNLOCKED&%"
ExamineTorchTxt:.byte "GOOD TORCH FOR GOOD LIGHT !&%"
GetTorchTxt:    .byte "OK, THE TORCH IS IN YOUR BAG.&%"
ExaminePictureTxt: .byte "THERE ARE SOME CABALISTICS SIGNS.&ONE ONLY CAN BE READ :&'ANAETOSH' IS THE WORD WHO CAN SAVE&YOU FROM PARALYSIS.&%"
ExamineBedTxt:  .byte "THERE'S NOTHING ON THE BED&AND UNDER THE BED.&%"
ExamineDeskTxt: .byte "THERE IS A SILVER DAGGER HERE&YOU GET THE DAGGER WITH YOU.&%"
ExamineBookTxt: .byte "LOTS OF BOOK TALK ABOUT&VAMPIRES EXTERMINATION.&%"
Room5TxtNoLight:.byte "THERE IS NO LIGHT HERE,&APART FROM THE NORTH DOOR.&%"
SayAnaetoshTxt: .byte "YEAHH, IT WORKS !!!&YOU CAN MOVE NOW.&%"
Cantmove:       .byte "IT'S IMPOSSIBLE, YOU CAN'T MOVE !&%"
Win:            .byte "THE VAMPIRE IS DISAPPEARING&UNDER YOUR ATTACK&CONGRATULATION, YOU WIN !!&%"
Death:          .byte "YOU ARE TRYING TO ESCAPE,&BUT YOU CAN'T MOVE. THE VAMPIRE&IS SUCKING YOUR BLOOD NOW.&THAT'S THE END.&%"
