
19 changed files with 1326 additions and 5 deletions
Binary file not shown.
@ -0,0 +1,116 @@
|
||||
CC0 1.0 Universal |
||||
|
||||
Statement of Purpose |
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer |
||||
exclusive Copyright and Related Rights (defined below) upon the creator and |
||||
subsequent owner(s) (each and all, an "owner") of an original work of |
||||
authorship and/or a database (each, a "Work"). |
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for the |
||||
purpose of contributing to a commons of creative, cultural and scientific |
||||
works ("Commons") that the public can reliably and without fear of later |
||||
claims of infringement build upon, modify, incorporate in other works, reuse |
||||
and redistribute as freely as possible in any form whatsoever and for any |
||||
purposes, including without limitation commercial purposes. These owners may |
||||
contribute to the Commons to promote the ideal of a free culture and the |
||||
further production of creative, cultural and scientific works, or to gain |
||||
reputation or greater distribution for their Work in part through the use and |
||||
efforts of others. |
||||
|
||||
For these and/or other purposes and motivations, and without any expectation |
||||
of additional consideration or compensation, the person associating CC0 with a |
||||
Work (the "Affirmer"), to the extent that he or she is an owner of Copyright |
||||
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work |
||||
and publicly distribute the Work under its terms, with knowledge of his or her |
||||
Copyright and Related Rights in the Work and the meaning and intended legal |
||||
effect of CC0 on those rights. |
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be |
||||
protected by copyright and related or neighboring rights ("Copyright and |
||||
Related Rights"). Copyright and Related Rights include, but are not limited |
||||
to, the following: |
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display, communicate, |
||||
and translate a Work; |
||||
|
||||
ii. moral rights retained by the original author(s) and/or performer(s); |
||||
|
||||
iii. publicity and privacy rights pertaining to a person's image or likeness |
||||
depicted in a Work; |
||||
|
||||
iv. rights protecting against unfair competition in regards to a Work, |
||||
subject to the limitations in paragraph 4(a), below; |
||||
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data in |
||||
a Work; |
||||
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the |
||||
European Parliament and of the Council of 11 March 1996 on the legal |
||||
protection of databases, and under any national implementation thereof, |
||||
including any amended or successor version of such directive); and |
||||
|
||||
vii. other similar, equivalent or corresponding rights throughout the world |
||||
based on applicable law or treaty, and any national implementations thereof. |
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention of, |
||||
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and |
||||
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright |
||||
and Related Rights and associated claims and causes of action, whether now |
||||
known or unknown (including existing as well as future claims and causes of |
||||
action), in the Work (i) in all territories worldwide, (ii) for the maximum |
||||
duration provided by applicable law or treaty (including future time |
||||
extensions), (iii) in any current or future medium and for any number of |
||||
copies, and (iv) for any purpose whatsoever, including without limitation |
||||
commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes |
||||
the Waiver for the benefit of each member of the public at large and to the |
||||
detriment of Affirmer's heirs and successors, fully intending that such Waiver |
||||
shall not be subject to revocation, rescission, cancellation, termination, or |
||||
any other legal or equitable action to disrupt the quiet enjoyment of the Work |
||||
by the public as contemplated by Affirmer's express Statement of Purpose. |
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason be |
||||
judged legally invalid or ineffective under applicable law, then the Waiver |
||||
shall be preserved to the maximum extent permitted taking into account |
||||
Affirmer's express Statement of Purpose. In addition, to the extent the Waiver |
||||
is so judged Affirmer hereby grants to each affected person a royalty-free, |
||||
non transferable, non sublicensable, non exclusive, irrevocable and |
||||
unconditional license to exercise Affirmer's Copyright and Related Rights in |
||||
the Work (i) in all territories worldwide, (ii) for the maximum duration |
||||
provided by applicable law or treaty (including future time extensions), (iii) |
||||
in any current or future medium and for any number of copies, and (iv) for any |
||||
purpose whatsoever, including without limitation commercial, advertising or |
||||
promotional purposes (the "License"). The License shall be deemed effective as |
||||
of the date CC0 was applied by Affirmer to the Work. Should any part of the |
||||
License for any reason be judged legally invalid or ineffective under |
||||
applicable law, such partial invalidity or ineffectiveness shall not |
||||
invalidate the remainder of the License, and in such case Affirmer hereby |
||||
affirms that he or she will not (i) exercise any of his or her remaining |
||||
Copyright and Related Rights in the Work or (ii) assert any associated claims |
||||
and causes of action with respect to the Work, in either case contrary to |
||||
Affirmer's express Statement of Purpose. |
||||
|
||||
4. Limitations and Disclaimers. |
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned, |
||||
surrendered, licensed or otherwise affected by this document. |
||||
|
||||
b. Affirmer offers the Work as-is and makes no representations or warranties |
||||
of any kind concerning the Work, express, implied, statutory or otherwise, |
||||
including without limitation warranties of title, merchantability, fitness |
||||
for a particular purpose, non infringement, or the absence of latent or |
||||
other defects, accuracy, or the present or absence of errors, whether or not |
||||
discoverable, all to the greatest extent permissible under applicable law. |
||||
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons |
||||
that may apply to the Work or any use thereof, including without limitation |
||||
any person's Copyright and Related Rights in the Work. Further, Affirmer |
||||
disclaims responsibility for obtaining any necessary consents, permissions |
||||
or other rights required for any use of the Work. |
||||
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a |
||||
party to this document and has no duty or obligation with respect to this |
||||
CC0 or use of the Work. |
||||
|
||||
For more information, please see |
||||
<http://creativecommons.org/publicdomain/zero/1.0/> |
@ -0,0 +1,87 @@
|
||||
cpu 8086 |
||||
org 0x3000 |
||||
|
||||
xor dx, dx |
||||
|
||||
cmp byte [si], 0 |
||||
jne atoi |
||||
|
||||
mov ah, 2 |
||||
mov si, overflow_msg |
||||
int 0x21 |
||||
int 0x20 |
||||
|
||||
atoi: |
||||
lodsb |
||||
|
||||
cmp al, 0 |
||||
je .end |
||||
|
||||
cmp al, '0' |
||||
jl .notdigit |
||||
|
||||
cmp al, '9' |
||||
jg .notdigit |
||||
|
||||
xor ah, ah |
||||
sub al, '0' |
||||
mov cx, ax |
||||
|
||||
mov ax, dx |
||||
mul word [ten] |
||||
test dx, dx |
||||
jnz .overflow |
||||
|
||||
mov dx, ax |
||||
add dx, cx |
||||
jc .overflow |
||||
|
||||
jmp atoi |
||||
|
||||
.notdigit: |
||||
mov byte [char_slot], al |
||||
mov si, notdigit_msg |
||||
mov ah, 2 |
||||
int 0x21 |
||||
int 0x20 |
||||
|
||||
.overflow: |
||||
mov si, overflow_msg |
||||
mov ah, 2 |
||||
int 0x21 |
||||
int 0x20 |
||||
|
||||
.end: |
||||
|
||||
std |
||||
mov di, hexstring+3 |
||||
xor bh, bh |
||||
mov cx, 4 |
||||
itoh: |
||||
mov bl, 0xf |
||||
and bl, dl |
||||
mov al, [hexdigits + bx] |
||||
stosb |
||||
|
||||
shr dx, 1 |
||||
shr dx, 1 |
||||
shr dx, 1 |
||||
shr dx, 1 |
||||
|
||||
loop itoh |
||||
|
||||
cld |
||||
|
||||
mov si, hexstring |
||||
mov ah, 2 |
||||
int 0x21 |
||||
int 0x20 |
||||
|
||||
notdigit_msg db "Not a digit '" |
||||
char_slot db 0, "'", 0 |
||||
overflow_msg db "Value must be in range 0 to 65535", 0 |
||||
|
||||
hexstring db "xxxx", 0 |
||||
|
||||
hexdigits db "0123456789abcdef" |
||||
ten dw 10 |
@ -0,0 +1,101 @@
|
||||
cpu 8086 |
||||
org 0x3000 |
||||
|
||||
xor dx, dx |
||||
|
||||
cmp byte [si], 0 |
||||
jne htoi |
||||
|
||||
mov ah, 2 |
||||
mov si, overflow_msg |
||||
int 0x21 |
||||
int 0x20 |
||||
|
||||
htoi: |
||||
lodsb |
||||
|
||||
cmp al, 0 |
||||
je .end |
||||
|
||||
.digit09: |
||||
cmp al, '0' |
||||
jl .notdigit |
||||
|
||||
cmp al, '9' |
||||
jg .digitcapital |
||||
|
||||
sub al, '0' |
||||
jmp .digit |
||||
|
||||
.digitcapital: |
||||
cmp al, 'A' |
||||
jl .notdigit |
||||
|
||||
cmp al, 'F' |
||||
jg .digitminuscule |
||||
|
||||
sub al, 'A' - 10 |
||||
jmp .digit |
||||
|
||||
.digitminuscule: |
||||
cmp al, 'a' |
||||
jl .notdigit |
||||
|
||||
cmp al, 'f' |
||||
jg .notdigit |
||||
|
||||
sub al, 'a' - 10 |
||||
jmp .digit |
||||
|
||||
.digit: |
||||
xor ah, ah |
||||
|
||||
test dx, 0xf000 |
||||
jnz .overflow |
||||
|
||||
shl dx, 1 |
||||
shl dx, 1 |
||||
shl dx, 1 |
||||
shl dx, 1 |
||||
or dx, ax |
||||
|
||||
jmp htoi |
||||
|
||||
.notdigit: |
||||
mov byte [char_slot], al |
||||
mov si, notdigit_msg |
||||
mov ah, 2 |
||||
int 0x21 |
||||
int 0x20 |
||||
|
||||
.overflow: |
||||
mov si, overflow_msg |
||||
mov ah, 2 |
||||
int 0x21 |
||||
int 0x20 |
||||
|
||||
.end: |
||||
|
||||
mov si, decimalstring + 5 |
||||
mov ax, dx |
||||
itoa: |
||||
dec si |
||||
xor dx, dx |
||||
div word [ten] |
||||
add dl, '0' |
||||
mov byte [si], dl |
||||
|
||||
test ax, ax |
||||
jnz itoa |
||||
|
||||
mov ah, 2 |
||||
int 0x21 |
||||
int 0x20 |
||||
|
||||
notdigit_msg db "Not a digit '" |
||||
char_slot db 0, "'", 0 |
||||
overflow_msg db "Value must be in range 0 to ffff", 0 |
||||
|
||||
decimalstring db "xxxxx", 0 |
||||
|
||||
ten dw 10 |
@ -0,0 +1,15 @@
|
||||
CONVERT |
||||
======= |
||||
|
||||
DEC2HEX and HEX2DEC convert numbers to and from decimal and hexadecimal |
||||
bases. They were written by nortti, and are originally from their |
||||
ettinos-programs repository, which can be found at |
||||
https://ahti.space/git/nortti/ettinos-programs/. |
||||
|
||||
Syntax: DEC2HEX|HEX2DEC number |
||||
|
||||
*** |
||||
|
||||
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. |
Binary file not shown.
@ -0,0 +1,86 @@
|
||||
cpu 8086 |
||||
org 0x3000 |
||||
|
||||
;Store a keycode |
||||
;Read a keypress |
||||
mov ah, 0x0 |
||||
int 0x16 |
||||
;Store the keycode |
||||
mov [scan], ah |
||||
mov [ascii], al |
||||
|
||||
;Print the prefix |
||||
mov si, prefix |
||||
mov ah, 0x0 |
||||
int 0x21 |
||||
|
||||
;Convert the keycode to a hex string |
||||
;Convert the scancode |
||||
mov al, [scan] |
||||
mov di, keycode |
||||
call byte2hex |
||||
;Convert the ascii value |
||||
mov al, [ascii] |
||||
mov di, keycode |
||||
add di, 0x2 |
||||
call byte2hex |
||||
|
||||
;Print the keycode |
||||
mov si, keycode |
||||
mov ah, 0x2 |
||||
int 0x21 |
||||
|
||||
;Return |
||||
int 0x20 |
||||
|
||||
;Data |
||||
prefix db "0x", 0x0 |
||||
scan db 0x0 |
||||
ascii db 0x0 |
||||
keycode times 0x5 db 0x0 |
||||
|
||||
;*** |
||||
|
||||
;Convert the value of a byte to a hex string |
||||
byte2hex: |
||||
|
||||
;Store AX, BX, CX, and SI in the stack |
||||
push ax |
||||
push bx |
||||
push cx |
||||
push si |
||||
|
||||
;Setup |
||||
;Move the byte to AH |
||||
mov ah, al |
||||
;Set SI to the hex digit key |
||||
mov si, key |
||||
;Set a counter for the two hex digits |
||||
mov cx, 0x2 |
||||
|
||||
;Convert the byte |
||||
;Read a nibble |
||||
loop: |
||||
times 0x4 rol ax, 0x1 |
||||
mov bx, ax |
||||
;Convert the nibble to a hex digit |
||||
and bx, 0xf |
||||
mov bl, [si + bx] |
||||
;Store the hex digit |
||||
mov [di], bl |
||||
;Convert the next nibble |
||||
inc di |
||||
dec cx |
||||
jnz loop |
||||
|
||||
;Load SI, CX, BX, and AX from the stack |
||||
pop si |
||||
pop cx |
||||
pop bx |
||||
pop ax |
||||
|
||||
;Return |
||||
ret |
||||
|
||||
;Data |
||||
key db "0123456789abcdef" |
@ -0,0 +1,23 @@
|
||||
MIT license |
||||
=========== |
||||
|
||||
Copyright (c) 2021 CrazyEttin |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a |
||||
copy of this software and associated documentation files (the |
||||
"Software"), to deal in the Software without restriction, including |
||||
without limitation the rights to use, copy, modify, merge, publish, |
||||
distribute, sublicense, and/or sell copies of the Software, and to |
||||
permit persons to whom the Software is furnished to do so, subject to |
||||
the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included |
||||
in all copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
@ -0,0 +1,10 @@
|
||||
KEYCODE |
||||
======= |
||||
|
||||
KEYCODE reads a keypress and prints its BIOS keycode. |
||||
|
||||
*** |
||||
|
||||
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. |
@ -1,12 +1,21 @@
|
||||
EttinOS-extra |
||||
============= |
||||
|
||||
EttinOS-extra is a collection of programs for EttinOS. Its git |
||||
repository can be found at |
||||
EttinOS-extra is a collection of programs for EttinOS organised as |
||||
packages. Its git repository can be found at |
||||
https://ahti.space/git/crazyettin/EttinOS-extra and that of EttinOS |
||||
itself at https://ahti.space/git/crazyettin/EttinOS. |
||||
|
||||
The programs are provided as packages in the form of zip archives |
||||
including the assembly source code and other relevant files. |
||||
|
||||
For copyright and license information see the individual packages. |
||||
|
||||
Building |
||||
-------- |
||||
|
||||
Build dependencies: |
||||
* A Unix-like operating system |
||||
* coreutils |
||||
* nasm |
||||
* zip |
||||
|
||||
Running make.sh will build the programs in the collection and create a |
||||
package in the form of a zip archive for each of the directories. |
||||
|
Binary file not shown.
@ -0,0 +1,116 @@
|
||||
CC0 1.0 Universal |
||||
|
||||
Statement of Purpose |
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer |
||||
exclusive Copyright and Related Rights (defined below) upon the creator and |
||||
subsequent owner(s) (each and all, an "owner") of an original work of |
||||
authorship and/or a database (each, a "Work"). |
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for the |
||||
purpose of contributing to a commons of creative, cultural and scientific |
||||
works ("Commons") that the public can reliably and without fear of later |
||||
claims of infringement build upon, modify, incorporate in other works, reuse |
||||
and redistribute as freely as possible in any form whatsoever and for any |
||||
purposes, including without limitation commercial purposes. These owners may |
||||
contribute to the Commons to promote the ideal of a free culture and the |
||||
further production of creative, cultural and scientific works, or to gain |
||||
reputation or greater distribution for their Work in part through the use and |
||||
efforts of others. |
||||
|
||||
For these and/or other purposes and motivations, and without any expectation |
||||
of additional consideration or compensation, the person associating CC0 with a |
||||
Work (the "Affirmer"), to the extent that he or she is an owner of Copyright |
||||
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work |
||||
and publicly distribute the Work under its terms, with knowledge of his or her |
||||
Copyright and Related Rights in the Work and the meaning and intended legal |
||||
effect of CC0 on those rights. |
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be |
||||
protected by copyright and related or neighboring rights ("Copyright and |
||||
Related Rights"). Copyright and Related Rights include, but are not limited |
||||
to, the following: |
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display, communicate, |
||||
and translate a Work; |
||||
|
||||
ii. moral rights retained by the original author(s) and/or performer(s); |
||||
|
||||
iii. publicity and privacy rights pertaining to a person's image or likeness |
||||
depicted in a Work; |
||||
|
||||
iv. rights protecting against unfair competition in regards to a Work, |
||||
subject to the limitations in paragraph 4(a), below; |
||||
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data in |
||||
a Work; |
||||
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the |
||||
European Parliament and of the Council of 11 March 1996 on the legal |
||||
protection of databases, and under any national implementation thereof, |
||||
including any amended or successor version of such directive); and |
||||
|
||||
vii. other similar, equivalent or corresponding rights throughout the world |
||||
based on applicable law or treaty, and any national implementations thereof. |
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention of, |
||||
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and |
||||
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright |
||||
and Related Rights and associated claims and causes of action, whether now |
||||
known or unknown (including existing as well as future claims and causes of |
||||
action), in the Work (i) in all territories worldwide, (ii) for the maximum |
||||
duration provided by applicable law or treaty (including future time |
||||
extensions), (iii) in any current or future medium and for any number of |
||||
copies, and (iv) for any purpose whatsoever, including without limitation |
||||
commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes |
||||
the Waiver for the benefit of each member of the public at large and to the |
||||
detriment of Affirmer's heirs and successors, fully intending that such Waiver |
||||
shall not be subject to revocation, rescission, cancellation, termination, or |
||||
any other legal or equitable action to disrupt the quiet enjoyment of the Work |
||||
by the public as contemplated by Affirmer's express Statement of Purpose. |
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason be |
||||
judged legally invalid or ineffective under applicable law, then the Waiver |
||||
shall be preserved to the maximum extent permitted taking into account |
||||
Affirmer's express Statement of Purpose. In addition, to the extent the Waiver |
||||
is so judged Affirmer hereby grants to each affected person a royalty-free, |
||||
non transferable, non sublicensable, non exclusive, irrevocable and |
||||
unconditional license to exercise Affirmer's Copyright and Related Rights in |
||||
the Work (i) in all territories worldwide, (ii) for the maximum duration |
||||
provided by applicable law or treaty (including future time extensions), (iii) |
||||
in any current or future medium and for any number of copies, and (iv) for any |
||||
purpose whatsoever, including without limitation commercial, advertising or |
||||
promotional purposes (the "License"). The License shall be deemed effective as |
||||
of the date CC0 was applied by Affirmer to the Work. Should any part of the |
||||
License for any reason be judged legally invalid or ineffective under |
||||
applicable law, such partial invalidity or ineffectiveness shall not |
||||
invalidate the remainder of the License, and in such case Affirmer hereby |
||||
affirms that he or she will not (i) exercise any of his or her remaining |
||||
Copyright and Related Rights in the Work or (ii) assert any associated claims |
||||
and causes of action with respect to the Work, in either case contrary to |
||||
Affirmer's express Statement of Purpose. |
||||
|
||||
4. Limitations and Disclaimers. |
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned, |
||||
surrendered, licensed or otherwise affected by this document. |
||||
|
||||
b. Affirmer offers the Work as-is and makes no representations or warranties |
||||
of any kind concerning the Work, express, implied, statutory or otherwise, |
||||
including without limitation warranties of title, merchantability, fitness |
||||
for a particular purpose, non infringement, or the absence of latent or |
||||
other defects, accuracy, or the present or absence of errors, whether or not |
||||
discoverable, all to the greatest extent permissible under applicable law. |
||||
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons |
||||
that may apply to the Work or any use thereof, including without limitation |
||||
any person's Copyright and Related Rights in the Work. Further, Affirmer |
||||
disclaims responsibility for obtaining any necessary consents, permissions |
||||
or other rights required for any use of the Work. |
||||
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a |
||||
party to this document and has no duty or obligation with respect to this |
||||
CC0 or use of the Work. |
||||
|
||||
For more information, please see |
||||
<http://creativecommons.org/publicdomain/zero/1.0/> |
@ -0,0 +1,15 @@
|
||||
ROT13 |
||||
===== |
||||
|
||||
ROT13 encodes and decodes a message using the ROT13 cipher. It was |
||||
written by nortti, and is originally from their ettinos-programs |
||||
repository, which can be found at |
||||
https://ahti.space/git/nortti/ettinos-programs/. |
||||
|
||||
Syntax: ROT13 Message to be encoded or decoded |
||||
|
||||
*** |
||||
|
||||
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. |
@ -0,0 +1,38 @@
|
||||
cpu 8086 |
||||
org 0x3000 |
||||
|
||||
mov bx, si |
||||
|
||||
rotloop: |
||||
cmp byte [bx], 0 |
||||
jz .end |
||||
|
||||
cmp byte [bx], 'A' |
||||
jl .next |
||||
cmp byte [bx], 'M' |
||||
jle .inc |
||||
cmp byte [bx], 'Z' |
||||
jle .dec |
||||
|
||||
cmp byte [bx], 'a' |
||||
jl .next |
||||
cmp byte [bx], 'm' |
||||
jle .inc |
||||
cmp byte [bx], 'z' |
||||
jle .dec |
||||
|
||||
.next: |
||||
inc bx |
||||
jmp short rotloop |
||||
|
||||
.inc: |
||||
add byte [bx], 13 |
||||
jmp short .next |
||||
.dec: |
||||
sub byte [bx], 13 |
||||
jmp short .next |
||||
.end: |
||||
|
||||
mov ah, 2 |
||||
int 0x21 |
||||
int 0x20 |
Binary file not shown.
@ -0,0 +1,128 @@
|
||||
CC0 1.0 Universal license |
||||
========================= |
||||
|
||||
Statement of Purpose |
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer |
||||
exclusive Copyright and Related Rights (defined below) upon the creator |
||||
and subsequent owner(s) (each and all, an "owner") of an original work |
||||
of authorship and/or a database (each, a "Work"). |
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for |
||||
the purpose of contributing to a commons of creative, cultural and |
||||
scientific works ("Commons") that the public can reliably and without |
||||
fear of later claims of infringement build upon, modify, incorporate in |
||||
other works, reuse and redistribute as freely as possible in any form |
||||
whatsoever and for any purposes, including without limitation commercial |
||||
purposes. These owners may contribute to the Commons to promote the |
||||
ideal of a free culture and the further production of creative, cultural |
||||
and scientific works, or to gain reputation or greater distribution for |
||||
their Work in part through the use and efforts of others. |
||||
|
||||
For these and/or other purposes and motivations, and without any |
||||
expectation of additional consideration or compensation, the person |
||||
associating CC0 with a Work (the "Affirmer"), to the extent that he or |
||||
she is an owner of Copyright and Related Rights in the Work, voluntarily |
||||
elects to apply CC0 to the Work and publicly distribute the Work under |
||||
its terms, with knowledge of his or her Copyright and Related Rights in |
||||
the Work and the meaning and intended legal effect of CC0 on those |
||||
rights. |
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be |
||||
protected by copyright and related or neighboring rights ("Copyright and |
||||
Related Rights"). Copyright and Related Rights include, but are not |
||||
limited to, the following: |
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display, |
||||
communicate, and translate a Work; |
||||
|
||||
ii. moral rights retained by the original author(s) and/or |
||||
performer(s); |
||||
|
||||
iii. publicity and privacy rights pertaining to a person's image or |
||||
likeness depicted in a Work; |
||||
|
||||
iv. rights protecting against unfair competition in regards to a Work, |
||||
subject to the limitations in paragraph 4(a), below; |
||||
|
||||
v. rights protecting the extraction, dissemination, use and reuse of |
||||
data in a Work; |
||||
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of |
||||
the European Parliament and of the Council of 11 March 1996 on the |
||||
legal protection of databases, and under any national implementation |
||||
thereof, including any amended or successor version of such |
||||
directive); and |
||||
|
||||
vii. other similar, equivalent or corresponding rights throughout the |
||||
world based on applicable law or treaty, and any national |
||||
implementations thereof. |
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention |
||||
of, applicable law, Affirmer hereby overtly, fully, permanently, |
||||
irrevocably and unconditionally waives, abandons, and surrenders all of |
||||
Affirmer's Copyright and Related Rights and associated claims and causes |
||||
of action, whether now known or unknown (including existing as well as |
||||
future claims and causes of action), in the Work (i) in all territories |
||||
worldwide, (ii) for the maximum duration provided by applicable law or |
||||
treaty (including future time extensions), (iii) in any current or |
||||
future medium and for any number of copies, and (iv) for any purpose |
||||
whatsoever, including without limitation commercial, advertising or |
||||
promotional purposes (the "Waiver"). Affirmer makes the Waiver for the |
||||
benefit of each member of the public at large and to the detriment of |
||||
Affirmer's heirs and successors, fully intending that such Waiver shall |
||||
not be subject to revocation, rescission, cancellation, termination, or |
||||
any other legal or equitable action to disrupt the quiet enjoyment of |
||||
the Work by the public as contemplated by Affirmer's express Statement |
||||
of Purpose. |
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason |
||||
be judged legally invalid or ineffective under applicable law, then the |
||||
Waiver shall be preserved to the maximum extent permitted taking into |
||||
account Affirmer's express Statement of Purpose. In addition, to the |
||||
extent the Waiver is so judged Affirmer hereby grants to each affected |
||||
person a royalty-free, non transferable, non sublicensable, non |
||||
exclusive, irrevocable and unconditional license to exercise Affirmer's |
||||
Copyright and Related Rights in the Work (i) in all territories |
||||
worldwide, (ii) for the maximum duration provided by applicable law or |
||||
treaty (including future time extensions), (iii) in any current or |
||||
future medium and for any number of copies, and (iv) for any purpose |
||||
whatsoever, including without limitation commercial, advertising or |
||||
promotional purposes (the "License"). The License shall be deemed |
||||
effective as of the date CC0 was applied by Affirmer to the Work. Should |
||||
any part of the License for any reason be judged legally invalid or |
||||
ineffective under applicable law, such partial invalidity or |
||||
ineffectiveness shall not invalidate the remainder of the License, and |
||||
in such case Affirmer hereby affirms that he or she will not (i) |
||||
exercise any of his or her remaining Copyright and Related Rights in the |
||||
Work or (ii) assert any associated claims and causes of action with |
||||
respect to the Work, in either case contrary to Affirmer's express |
||||
Statement of Purpose. |
||||
|
||||
4. Limitations and Disclaimers. |
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, |
||||
abandoned, surrendered, licensed or otherwise affected by this |
||||
document. |
||||
|
||||
b. Affirmer offers the Work as-is and makes no representations or |
||||
warranties of any kind concerning the Work, express, implied, |
||||
statutory or otherwise, including without limitation warranties of |
||||
title, merchantability, fitness for a particular purpose, non |
||||
infringement, or the absence of latent or other defects, accuracy, or |
||||
the present or absence of errors, whether or not discoverable, all to |
||||
the greatest extent permissible under applicable law. |
||||
|
||||
c. Affirmer disclaims responsibility for clearing rights of other |
||||
persons that may apply to the Work or any use thereof, including |
||||
without limitation any person's Copyright and Related Rights in the |
||||
Work. Further, Affirmer disclaims responsibility for obtaining any |
||||
necessary consents, permissions or other rights required for any use |
||||
of the Work. |
||||
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not |
||||
a party to this document and has no duty or obligation with respect to |
||||
this CC0 or use of the Work. |
||||
|
||||
For more information, please see |
||||
<http://creativecommons.org/publicdomain/zero/1.0/> |
@ -0,0 +1,19 @@
|
||||
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. |
@ -0,0 +1,532 @@
|
||||
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,\ |
||||
"To choose an option press the corresponding number. ",\ |
||||
"To quit the game", 0xd, 0xa,\ |
||||
"press Q.", 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, "Q" |
||||
je done |
||||
cmp al, "q" |
||||
je done |
||||
|
||||
;Return |
||||
ret |
@ -0,0 +1,26 @@
|
||||
#!/bin/sh |
||||
|
||||
cd CONVERT/ |
||||
nasm DEC2HEX.ASM -f bin -o DEC2HEX.BIN |
||||
nasm HEX2DEC.ASM -f bin -o HEX2DEC.BIN |
||||
zip -r CONVERT.ZIP DEC2HEX.BIN DEC2HEX.ASM HEX2DEC.BIN HEX2DEC.ASM README.MD CC0 1>/dev/null |
||||
mv CONVERT.ZIP .. |
||||
cd .. |
||||
|
||||
cd KEYCODE/ |
||||
nasm KEYCODE.ASM -f bin -o KEYCODE.BIN |
||||
zip -r KEYCODE.ZIP KEYCODE.BIN KEYCODE.ASM README.MD LICENSE.MD 1>/dev/null |
||||
mv KEYCODE.ZIP .. |
||||
cd .. |
||||
|
||||
cd ROT13/ |
||||
nasm ROT13.ASM -f bin -o ROT13.BIN |
||||
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 .. |
Loading…
Reference in new issue