diff --git a/TEMPLE/README.MD b/TEMPLE/README.MD deleted file mode 100644 index b3c1821..0000000 --- a/TEMPLE/README.MD +++ /dev/null @@ -1,19 +0,0 @@ -TEMPLE -====== - -TEMPLE is an assembly port for EttinOS of the web-based text adventure -game In the Temple by nortti. Its original readme is reproduced here: - -A small game about a visit to a temple and the reasons for doing so. - -Can be played online at https://ahti.space/~nortti/in-the-temple/ or at -https://nortti.itch.io/in-the-temple - -The game is distributed under the Creative Commons Zero 1.0 Universal -license. - -*** - -This package is part of EttinOS-extra, a collection of programs for -EttinOS, the git repository of which can be found at -https://ahti.space/git/crazyettin/EttinOS-extra. diff --git a/TEMPLE/TEMPLE.ASM b/TEMPLE/TEMPLE.ASM deleted file mode 100644 index 840296e..0000000 --- a/TEMPLE/TEMPLE.ASM +++ /dev/null @@ -1,530 +0,0 @@ -cpu 8086 -org 0x3000 - -;Intro -;Print the intro -intro: -mov si, introtxt -mov ah, 0x2 -int 0x21 -;Read any key to start -mov ah, 0x0 -int 0x16 -call readquit - -;Start -;Print the text -mov si, startxt -mov ah, 0x2 -int 0x21 -;Read the player choice -readstart: -mov ah, 0x0 -int 0x16 -cmp al, "1" -je give -cmp al, "2" -je take -cmp al, "3" -je do -call readquit -jmp readstart - -;Giving -;Print the text -give: -mov si, givetxt -mov ah, 0x2 -int 0x21 -;Read the player choice -readgive: -mov ah, 0x0 -int 0x16 -cmp al, "1" -je comb -cmp al, "2" -je coin -call readquit -jmp readgive - -;Giving a Comb -;Print the text -comb: -mov si, combtxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;Giving a Coin -;Print the text -coin: -mov si, cointxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;Taking -;Print the text -take: -mov si, taketxt -mov ah, 0x2 -int 0x21 -;Read the player choice -readtake: -mov ah, 0x0 -int 0x16 -cmp al, "1" -je bowl -cmp al, "2" -je knife -cmp al, "3" -je idol -call readquit -jmp readtake - -;Taking the Bowl -;Print the text -bowl: -mov si, bowltxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;Taking the Knife -;Print the text -knife: -mov si, knifetxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;Taking the Idol -;Print the text -idol: -mov si, idoltxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;Doing -;Print the text -do: -mov si, dotxt -mov ah, 0x2 -int 0x21 -;Read the player choice -reado: -mov ah, 0x0 -int 0x16 -cmp al, "1" -je sacrifice -cmp al, "2" -je iconoclasm -cmp al, "3" -je prayer -call readquit -jmp reado - -;Making a Sacrifice -;Print the text -sacrifice: -mov si, sacrificetxt -mov ah, 0x2 -int 0x21 -;Read the player choice -readsacrifice: -mov ah, 0x0 -int 0x16 -cmp al, "1" -je bread -cmp al, "2" -je blood -call readquit -jmp readsacrifice - -;A Sacrifice of Bread -;Print the text -bread: -mov si, breadtxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;A Sacrifice of Blood -;Print the text -blood: -mov si, bloodtxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;Iconoclasm -;Print the text -iconoclasm: -mov si, iconoclasmtxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;Prayer -;Print the text -prayer: -mov si, prayertxt -mov ah, 0x2 -int 0x21 -;Read any key to return back to the beginning -mov ah, 0x0 -int 0x16 -call readquit -mov si, crlf -mov ah, 0x0 -int 0x21 -jmp intro - -;Return -done: -int 0x20 - -;Data -introtxt db "In the Temple", 0xd, 0xa,\ - "=============", 0xd, 0xa,\ - 0xd, 0xa,\ - "This is a story of your visit to the temple of ",\ - "Arattavesh.",\ - 0xd, 0xa,\ - 0xd, 0xa,\ - "Press the corresponding number to choose an option or ",\ - "escape to quit the", 0xd, 0xa,\ - "game.", 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to start.", 0x0 -startxt db 0xd, 0xa,\ - "Before the Idol", 0xd, 0xa,\ - "---------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "You are in the back of the temple, before the idol of ",\ - "Arattavesh. It is", 0xd, 0xa,\ - "a well made wooden statue painted with gold and blue.",\ - 0xd, 0xa,\ - 0xd, 0xa,\ - "In front of the statue there is an ornate knife and a ",\ - "plain wooden bowl.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You have come here to the sanctum to...", 0xd, 0xa,\ - " 1. give something.", 0xd, 0xa,\ - " 2. take something.", 0xd, 0xa,\ - " 3. do something.", 0x0 -givetxt db 0xd, 0xa,\ - "Giving", 0xd, 0xa,\ - "------", 0xd, 0xa,\ - 0xd, 0xa,\ - "You have arrived to deposit a votive offering to ",\ - "Arattavesh for healing", 0xd, 0xa,\ - "your sickness over the winter. You intend to give...",\ - 0xd, 0xa,\ - " 1. a wooden comb.", 0xd, 0xa,\ - " 2. a silver coin.", 0x0 -combtxt db 0xd, 0xa,\ - "Giving a Comb", 0xd, 0xa,\ - "-------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "You hold a finely carved wooden comb in your hands. ",\ - "It is a comb you", 0xd, 0xa,\ - "have made yourself, the masterpiece that gave you ",\ - "full rights in the", 0xd, 0xa,\ - "guild. You are sacrificing not only its monetary ",\ - "value, but its value to", 0xd, 0xa,\ - "you personally.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You place the comb next to the knife, say a few words ",\ - "asking Arattavesh", 0xd, 0xa,\ - "to accept your payment, and walk back to the door to ",\ - "the sanctum. A", 0xd, 0xa,\ - "priest sprinkles water on you, and closes the heavy ",\ - "door after you step", 0xd, 0xa,\ - "outside.", 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -cointxt db 0xd, 0xa,\ - "Giving a Coin", 0xd, 0xa,\ - "-------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "You take out a silver coin from the pouch hanging ",\ - "from your belt. It", 0xd, 0xa,\ - "represents the work of several weeks as a cobbler.",\ - 0xd, 0xa,\ - 0xd, 0xa,\ - "You take the coin and throw it to the fountain that ",\ - "is behind the idol,", 0xd, 0xa,\ - "where you hear it clink against other coins that have ",\ - "been deposited", 0xd, 0xa,\ - "previously.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You turn back and walk through the curtains to the ",\ - "common side of the", 0xd, 0xa,\ - "temple, where other devout are waiting for their turn ",\ - "to enter the", 0xd, 0xa,\ - "sanctum.", 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -taketxt db 0xd, 0xa,\ - "Taking", 0xd, 0xa,\ - "------", 0xd, 0xa,\ - 0xd, 0xa,\ - "There it is. Right before you. You steal a glance ",\ - "behing you hoping to", 0xd, 0xa,\ - "make sure that nobody spots you in the darkness as ",\ - "you reach out and", 0xd, 0xa,\ - "grab...", 0xd, 0xa,\ - " 1. the bowl.", 0xd, 0xa,\ - " 2. the knife.", 0xd, 0xa,\ - " 3. the idol.", 0x0 -bowltxt db 0xd, 0xa,\ - "Taking the Bowl", 0xd, 0xa,\ - "---------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "The bowl you had offered just a week before is still ",\ - "here. You had left", 0xd, 0xa,\ - "it as a thanks of your husband's recovery, but now ",\ - "your husband is gone,", 0xd, 0xa,\ - "your fields are destroyed, and all this is the name ",\ - "of Arattavesh.", 0xd, 0xa,\ - 0xd, 0xa,\ - "If the gods shall curse you for breaching the ",\ - "holiness of the sanctum", 0xd, 0xa,\ - "let them, for you curse the gods too. You take that ",\ - "which you dedicated", 0xd, 0xa,\ - 'to Arattavesh and quietly state "You have taken back ',\ - "your gift and so I", 0xd, 0xa,\ - 'shall take back mine" before slipping back into the ',\ - "night.", 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -knifetxt db 0xd, 0xa,\ - "Taking the Knife", 0xd, 0xa,\ - "----------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "The knife is very nicely made. You admire it for a ",\ - "small while, before", 0xd, 0xa,\ - "slipping it into the bag you carry around your ",\ - "shoulders.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You aren't committing a sin, or if you are it's not a ",\ - "great one. The", 0xd, 0xa,\ - "chanter who lives in the main city has not yet come ",\ - "and completed the", 0xd, 0xa,\ - "dedication. The one who's knelt before the idol and ",\ - "left it here has", 0xd, 0xa,\ - "merely announced an intention to give it to their god ",\ - "so it's still", 0xd, 0xa,\ - "theirs, and they will not miss it.", 0xd, 0xa,\ - 0xd, 0xa,\ - "If Nagiri holds up his end of the bargain your debt ",\ - "shall be gone come", 0xd, 0xa,\ - "tomorrow and you can leave the land you work but do ",\ - "not own. You get", 0xd, 0xa,\ - "excited, but then try to calm down. It is not over ",\ - "yet.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You walk out into the evening crowd still in the ",\ - "market before the", 0xd, 0xa,\ - "sanctum. There are so many people here nobody will ",\ - "remember and be able", 0xd, 0xa,\ - "to speak against you.", 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -idoltxt db 0xd, 0xa,\ - "Taking the Idol", 0xd, 0xa,\ - "---------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "Here it is. The protector god of your village, taken ",\ - "by force when you", 0xd, 0xa,\ - "were but a small child.", 0xd, 0xa,\ - 0xd, 0xa,\ - "They call her Arattavesh, after the river, but you ",\ - "know better. As you", 0xd, 0xa,\ - 'lift the idol you whisper: "Panglya, you shall be ',\ - 'home soon."', 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -dotxt db 0xd, 0xa,\ - "Doing", 0xd, 0xa,\ - "-----", 0xd, 0xa,\ - 0xd, 0xa,\ - "Yes, it is finally time. You make sure that ",\ - "everything is just right,", 0xd, 0xa,\ - "and...", 0xd, 0xa,\ - " 1. take the knife.", 0xd, 0xa,\ - " 2. raise your axe.", 0xd, 0xa,\ - " 3. kneel before the idol.", 0x0 -sacrificetxt db 0xd, 0xa,\ - "Making a Sacrifice", 0xd, 0xa,\ - "------------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "You take the blade, and think of the long nights ",\ - "spent replaying the", 0xd, 0xa,\ - "formula of the sacrifice in your head. You've seen ",\ - "ones before, but", 0xd, 0xa,\ - "never this one, for it is one that a priest must do ",\ - "alone.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You say the words, and cut...", 0xd, 0xa,\ - " 1. a loaf of bread.", 0xd, 0xa,\ - " 2. your finger.", 0x0 -breadtxt db 0xd, 0xa,\ - "A Sacrifice of Bread", 0xd, 0xa,\ - "--------------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "As Arattavesh gives you grain, you shall give her ",\ - "back. A slice of every", 0xd, 0xa,\ - "loaf made before the next new moon shall be hers, and ",\ - "the bakers will be", 0xd, 0xa,\ - "giving their share starting tomorrow. But this loaf ",\ - "is special, the", 0xd, 0xa,\ - "first loaf baked from new grain, and it is reserved ",\ - "for the junior", 0xd, 0xa,\ - "priest of the temple. Which is you.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You know that you shall not be too stingy and cut ",\ - "only the skin. You", 0xd, 0xa,\ - "also know you have to be exact and not cut a too big ",\ - "of a slice off. But", 0xd, 0xa,\ - "that is no issue. You end up with a slice that is ",\ - "just right, and place", 0xd, 0xa,\ - "it in the bowl before the idol.", 0xd, 0xa,\ - 0xd, 0xa,\ - "After this is done, you lay the knife back down, and ",\ - "recite one of the", 0xd, 0xa,\ - "old hymns, too old for people to understand anymore. ",\ - "You feel that", 0xd, 0xa,\ - "Arattavesh is pleased in you as you walk up to the ",\ - "roof of the temple", 0xd, 0xa,\ - "house and then across to the end of the block.", 0xd,\ - 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -bloodtxt db 0xd, 0xa,\ - "A Sacrifice of Blood", 0xd, 0xa,\ - "--------------------", 0xd, 0xa,\ - 0xd, 0xa,\ - "It hurts a little but you do not care, as you let the ",\ - "droplets of blood", 0xd, 0xa,\ - "drip into the bowl. Just like mixing your blood with ",\ - "that of your sworn", 0xd, 0xa,\ - "sister cements your bond, so does giving it to your ",\ - "god.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You are a fully fledged priest of Arattavesh, the one ",\ - "who rules behind", 0xd, 0xa,\ - "the waves and in the dark caverns of earth. You hurry ",\ - "to your new family", 0xd, 0xa,\ - "who are waiting at the foot of the mountain.", 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -iconoclasmtxt db 0xd, 0xa,\ - "Iconoclasm", 0xd, 0xa,\ - "----------", 0xd, 0xa,\ - 0xd, 0xa,\ - "There is but one abomination in the eyes of gods bad ",\ - "enough to warrant a", 0xd, 0xa,\ - "death in the marshes. And that is the worship of ",\ - "earthly images in their", 0xd, 0xa,\ - "stead.", 0xd, 0xa,\ - 0xd, 0xa,\ - "You raise your axe and let it fall onto the head of ",\ - "the idol. There is a", 0xd, 0xa,\ - "crunching sound and you see the wood split, maggots ",\ - "crawling out of it.", 0xd, 0xa,\ - "Of course, of course. The idol is as rotten as the ",\ - "act of worshiping it.", 0xd, 0xa,\ - 0xd, 0xa,\ - "The heathen ways are over again, and the temple shall ",\ - "be cleansed. You", 0xd, 0xa,\ - "raise your arms and shout as loud as you can: ",\ - '"Witness me Arattavesh,', 0xd, 0xa,\ - "for I will cleanse your house of the ways of the ",\ - "Eluwing, and enact", 0xd, 0xa,\ - 'revenge on those who have it thus defiled!"', 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -prayertxt db 0xd, 0xa,\ - "Prayer", 0xd, 0xa,\ - "------", 0xd, 0xa,\ - 0xd, 0xa,\ - '"You who will remain when I am gone', 0xd, 0xa,\ - "To help my family in time of need", 0xd, 0xa,\ - "To shield the eastern flank of this city", 0xd, 0xa,\ - "To leave the graves of our ancestors safe", 0xd, 0xa,\ - "To bring the flood as you have brought", 0xd, 0xa,\ - 'I ask you"', 0xd, 0xa,\ - 0xd, 0xa,\ - "Press any key to return back to the beginning.", 0x0 -crlf db 0xd, 0xa, 0x0 - -;*** - -;Quit the game -readquit: - -;Check for keypress Q -cmp al, 0x1b -je done - -;Return -ret diff --git a/TEMPLE/LICENSE.MD b/TEMPLENG/LICENSE.MD similarity index 100% rename from TEMPLE/LICENSE.MD rename to TEMPLENG/LICENSE.MD diff --git a/TEMPLENG/README.MD b/TEMPLENG/README.MD new file mode 100644 index 0000000..d8077dd --- /dev/null +++ b/TEMPLENG/README.MD @@ -0,0 +1,47 @@ +TEMPLENG +======== + +TEMPLENG is a text adventure game engine based on my earlier, standalone +EttinOS port of In the Temple. + +Syntax: TEMPLENG DATAFILE.DAT + +Press any key other than escape to start the game or to return back to +the beginning after an ending, the corresponding number to choose an +option in a non-ending scene, or escape to quit the game. + +TEMPLE +------ + +Included in the package is TEMPLE, a TEMPLENG port of the web-based text +adventure game In the Temple by nortti. Its original readme is +reproduced here: + +> A small game about a visit to a temple and the reasons for doing so. +> +> Can be played online at https://ahti.space/~nortti/in-the-temple/ or +> at https://nortti.itch.io/in-the-temple +> +> The game is distributed under the Creative Commons Zero 1.0 Universal +> license. + +The data files +-------------- + +A data file consists of an intro text ending in a null followed by any +number of scenes. See the included TEMPLE.DAT for an example. + +A scene begins with a start of heading (0x1) and consists of its ID, the +number of options it has, and the scene text, all ending in a null. The +ID of a scene consists of a string of numbers representing the choices +that lead to it, and can be between 2 and 255 characters long including +the null. The ID of the first scene is 0. The number of options can be +anything between 0 and 9, 0 indicating an ending. The options of a scene +must point to scenes placed after it in the data file. The scene text +should not exceed 24 lines or all of it won't fit on the screen at once. + +*** + +This package is part of EttinOS-extra, a collection of programs for +EttinOS, the git repository of which can be found at +https://ahti.space/git/crazyettin/EttinOS-extra. diff --git a/TEMPLENG/TEMPLE.DAT b/TEMPLENG/TEMPLE.DAT new file mode 100644 index 0000000..42b8690 Binary files /dev/null and b/TEMPLENG/TEMPLE.DAT differ diff --git a/TEMPLENG/TEMPLENG.ASM b/TEMPLENG/TEMPLENG.ASM new file mode 100644 index 0000000..0716f89 --- /dev/null +++ b/TEMPLENG/TEMPLENG.ASM @@ -0,0 +1,179 @@ +cpu 8086 +org 0x3000 + +;Set the stack +cli +mov sp, stack + 0x100 +sti + +;Check for an empty tail +;Check +cmp byte [si], 0x0 +jne extract +;Print an error message and abort if the tail is empty +mov si, errormsg +mov ah, 0x2 +int 0x21 +je done + +;Find the end of the data file name and add a null if needed +;Set DI at the tail +extract: +mov di, si +findend: +;Check for the string end +cmp byte [di], 0x0 +je load +;Check for a space +cmp byte [di], 0x20 +je addnull +inc di +jmp findend +;Add a null +addnull: +mov al, 0x0 +stosb + +;Load the data file +;Load +load: +mov bx, stack + 0x100 +mov ah, 0x0 +int 0x22 +;Check for errors +cmp al, 0x0 +jne done + +;Setup +start: +;Set SI to the beginning of the data file +mov si, stack + 0x100 +;Initialise the scene ID with zeroes and set DI at its beginning +mov di, sceneid +mov cx, 0xff +mov al, 0x0 +rep stosb +mov di, sceneid + +;Intro +;Print the intro +mov ah, 0x0 +int 0x21 +;Read any key to start +mov ah, 0x0 +int 0x16 +call readquit +;Set the ID of the first scene +mov al, "0" +stosb + +;Search for the current scene +searchscene: +lodsb +cmp al, 0x1 +je checkscene +jmp searchscene + +;Check for the current scene +;Set DI to the current scene id +checkscene: +mov di, sceneid +;Load the current characters +checkloop: +mov al, [si] +mov bl, [di] +;Compare the characters +cmp al, bl +jne searchscene +;Check for the string end +cmp al, 0x0 +je loadoptions +;Compare the next characters +inc si +inc di +jmp checkloop + +;Load the number of options to BL +loadoptions: +inc si +lodsb +mov bl, al + +;Print the scene +;Move SI to the beginning of the scene text +inc si +;Print the scene +mov ah, 0x0 +int 0x21 + +;Read the player choice +;Set DI at the options key +readchoice: +mov di, options +;Set the maximum number of options +mov cx, 0x9 +;Read a keypress +mov ah, 0x0 +int 0x16 +;Check for quitting +call readquit +;Check for an ending scene +cmp bl, "0" +je ending +;Compare the keypress to the key +cmpchoice: +cmp al, [di] +je setscene +cmp bl, [di] +je readchoice +inc di +loop cmpchoice +jmp readchoice + +;Set the next scene +;Find the end of the current scene id +setscene: +mov di, sceneid +findidend: +cmp byte [di], 0x0 +je addoption +inc di +jmp findidend +;Add the chosen option +addoption: +stosb +;Go to the next scene +jmp searchscene + +ending: +mov si, crlf +mov ah, 0x0 +int 0x21 +jmp start + +;Return to the system +done: +int 0x20 + +;Data +errormsg db "File not found", 0x0 +sceneid times 0xff db 0x0 +options db "123456789" +crlf db 0xd, 0xa, 0x0 + +;*** + +;Quit the game +readquit: + +;Check for keypress escape +cmp al, 0x1b +je done + +;Return +ret + +;*** + +;Stack +stack: diff --git a/make.sh b/make.sh index 4328fea..7986349 100755 --- a/make.sh +++ b/make.sh @@ -19,8 +19,8 @@ zip -r ROT13.ZIP ROT13.BIN ROT13.ASM README.MD CC0 1>/dev/null mv ROT13.ZIP .. cd .. -cd TEMPLE/ -nasm TEMPLE.ASM -f bin -o TEMPLE.BIN -zip -r TEMPLE.ZIP TEMPLE.BIN TEMPLE.ASM README.MD LICENSE.MD 1>/dev/null -mv TEMPLE.ZIP .. +cd TEMPLENG/ +nasm TEMPLENG.ASM -f bin -o TEMPLENG.BIN +zip -r TEMPLENG.ZIP TEMPLENG.BIN TEMPLENG.ASM README.MD LICENSE.MD TEMPLE.DAT 1>/dev/null +mv TEMPLENG.ZIP .. cd ..