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
|
||||||
=============
|
=============
|
||||||
|
|
||||||
EttinOS-extra is a collection of programs for EttinOS. Its git
|
EttinOS-extra is a collection of programs for EttinOS organised as
|
||||||
repository can be found at
|
packages. Its git repository can be found at
|
||||||
https://ahti.space/git/crazyettin/EttinOS-extra and that of EttinOS
|
https://ahti.space/git/crazyettin/EttinOS-extra and that of EttinOS
|
||||||
itself at https://ahti.space/git/crazyettin/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.
|
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