Switch from direct zip files to sources as uncompressed files.
This commit is contained in:
parent
86585d6a9c
commit
db4ce66684
BIN
CONVERT.ZIP
BIN
CONVERT.ZIP
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.
|
BIN
KEYCODE.ZIP
BIN
KEYCODE.ZIP
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.
|
19
README.MD
19
README.MD
|
@ -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.
|
||||
|
|
|
@ -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
|
BIN
TEMPLE.ZIP
BIN
TEMPLE.ZIP
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