In light of religious terrorist attacks in Paris, please see Category:blasphemy!

User:Happypedophile1979nature

From Freedom Porn
Jump to navigation Jump to search

PhpTags Fatal error: Access to undeclared static property: WPage::$TITLE in Template:submitter on line 8

Welcome

  • I started the account to stop discrimination as it seems to affect all of the human population
  • I started the account to stop sexualisation as it seems to affect large groups of the human population
  • It seems I also made a song which I cannot remember
  • I hope no one will discriminate any young one
  • I hope no one will discriminate any old one
  • Not discriminating others may also promote oneself not to be discriminated
  • I hope people will be asexual and not sexual as desired

Debriefing and Desexualisation

  • I hope people will appreciate the asexual nature of this account
  • I think just as with tobacco people should have the free will to stop

Ideas for pedophiles and all people

  • Think for example for all people: Of course I would like to do all as desired as long as it is desired in the future to have been happened and fully legally possible without illegality
  • Ask for solutions with psychiatry and such instead of being legally forced or worse or contact more different people for solutions
  • Keep all people as happy and healthy as possible
  • Remember old people may have enjoyed even more time as old people lived even longer
  • Remember young people may have enjoyed even more time as young people may enjoy even better times

Porn industry needs to be better for human rights

  • With the universal declaration of human rights all are equal
  • I think the porn industry would do good by actually providing more of a service to the ones being recorded * for example do everything as the young ones desire and provide a legitimate product for both the ones being recorded and the public and the legal system and politics and such
  • Individuals could provide homes to people for being off the streets as desired * there should be no rush * the fact that people are being available for communication is enough
  • All people involved should make sure that all people involved are really at least with the required years of age
  • Please respect the law as lots as possible * naturally

Date in safe public for safety

  • Together with all the dating opportunities
  • DATE IN SAFE PUBLIC FOR SAFETY
  • I hope lots of children will be born alife

About me

  • I started paying for the internet in the library and as the processor reference manuals got blocked I started a more free connection at home
  • I think the account on this freedom site saved my life because it was a nice time instead of spending time reacting to hostile people

Evolution and adaption

  • People could bring seawater inlands for seaweeds growing and healthy washing and cleaning
  • Eventually, all people have to do for work is eat all kinds of foods found and travel to warm regions all the year
  • There is no need for clothing in reality with nature

Simple Universal Law

  • All may enjoy a good life
  • Each one should do best efforts for the happiness of all

Politics

  • A simple universal law seems good enough for all to enjoy freedom and happiness
  • People will think more if the law also affects themselves
  • I think it is a good idea to remove all law except for the simple universal law
  • Unfortunately children are not allowed births that much here, which kind of seems like genocide for the group of children as such to me

1.c

// this is public domain audio and text ambient synth code too
#include "stdio.h"
char main(char cinput, char ** ppcinput) {
char ci1,ci2,ci3,ci4;
if (cinput > 1) ci1 = ppcinput[1][0] - 'm'; if (ci1 == 0) ci1++;
if (cinput > 2) ci2 = ppcinput[2][0] - 'm'; if (ci2 == 0) ci2++;
if (cinput > 3) ci3 = ppcinput[3][0] - 'm'; if (ci3 == 0) ci3++;
if (cinput > 4) ci4 = ppcinput[4][0] - 'm'; if (ci4 == 0) ci4++;
char cy,cx;
for (cy = -12; cy <= 12; cy++) { if (cy == 0) cy++;
for (cx = -40; cx <= 40; cx++) { if (cx == 0) cx++;
char cyy = (cy - ci1) * (cy + ci1) / ci3;
char cxx = (cx - ci2) * (cx + ci2) / ci4;
char cc = 'm' + (cyy + cxx) % 13;
printf("%c", cc);
}} return 0; }

echo "You can save" && editor 1.c && gcc 1.c && do for cc1 in {a..z}; do for cc2 in {a..z}; do for cc3 in {a..z}; do for cc4 in {a..z}; do ./a.out $cc1 $cc2 $cc3 $cc4; done; done; done; done | aplay --device=pulse --rate=11111; done

You could also aplay at 6666 and 8888 simultaniously and watch the text with for example ./a.out a l o o

2.c

#include "stdio.h"
char main() {
// this is public domain soundy synth code too
int c1,c2,c3,c4,c5;
for (c1 = -11; c1 <= 11; c1++) { if (c1 == 0) c1++;
for (c2 = -13; c2 <= 13; c2++) { if (c2 == 0) c2++;
for (c3 = -17; c3 <= 17; c3++) { if (c3 == 0) c3++;
for (c4 = -13; c4 <= 13; c4++) { if (c4 == 0) c4++;
for (c5 = -440; c5 <= 440; c5++) { if (c5 == 0) c5++;
int cc1 = (c5 - c4 - c3 - c2 - c1);
if (cc1 == 0) cc1++;
int cc2 = (c1 - c2 - c3 - c4 - c5);
if (cc2 == 0) cc2++;
int cc3 = (cc1 / cc2 + cc2 / cc1) * (cc1 / cc2 - cc2 / cc1);
int cc4 = (cc2 / cc1 + cc1 / cc2) * (cc2 / cc1 - cc1 / cc2);
printf("%c%c",cc3,cc4);
}}}}} return 0; }

editor 2.c && gcc 2.c | ./a.out | aplay --device=pulse --rate=44100 --channels=2

3.c

#include "stdio.h"
char main(char cinput, char ** ppcinput) {
// this is public domain code too
char c1,c2;
char ci1,ci2;
if (cinput > 1) ci1 = ppcinput[1][0] - 'm'; if (ci1 == 0) ci1++;
if (cinput > 2) ci2 = ppcinput[2][0] - 'm'; if (ci2 == 0) ci2++;
for (c1 = 1; c1 <= 25; c1++) { if (c1 == 0) c1++;
for (c2 = -40; c2 <= 40; c2++) { if (c2 == 0) c2++;
char cc = 'm' + (c1 * c2 / ci1 / ci2) % 13;
printf("%c",cc);
}} return 0; }

editor 3.c && gcc 3.c && while sleep 1; do for cc1 in {a..z}; do for cc2 in {a..z}; do ./a.out $cc1 $cc2; sleep 0.111; done; done; done && echo here is an example of ./a.out a b

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
llllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnn
llllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnn
lllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnn
kkklllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnooo
kkkkkkkkllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnoooooooo
kkkkkkkkkkklllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnooooooooooo
jkkkkkkkkkkkkklllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnooooooooooooop
jjjjjkkkkkkkkkkkkllllllllllllmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnooooooooooooppppp
jjjjjjjjkkkkkkkkkkklllllllllllmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnooooooooooopppppppp
jjjjjjjjjjkkkkkkkkkkllllllllllmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnoooooooooopppppppppp
iiijjjjjjjjjkkkkkkkkkklllllllllmmmmmmmmmmmmmmmmmmnnnnnnnnnoooooooooopppppppppqqq
iiiiijjjjjjjjjkkkkkkkkklllllllllmmmmmmmmmmmmmmmmnnnnnnnnnooooooooopppppppppqqqqq
iiiiiiiijjjjjjjjkkkkkkkkllllllllmmmmmmmmmmmmmmmmnnnnnnnnooooooooppppppppqqqqqqqq
hhiiiiiiijjjjjjjjkkkkkkkkllllllllmmmmmmmmmmmmmmnnnnnnnnooooooooppppppppqqqqqqqrr
hhhhiiiiiiijjjjjjjjkkkkkkklllllllmmmmmmmmmmmmmmnnnnnnnoooooooppppppppqqqqqqqrrrr
hhhhhhiiiiiiijjjjjjjkkkkkkklllllllmmmmmmmmmmmmnnnnnnnooooooopppppppqqqqqqqrrrrrr
ghhhhhhhiiiiiijjjjjjjkkkkkklllllllmmmmmmmmmmmmnnnnnnnoooooopppppppqqqqqqrrrrrrrs
ggghhhhhhiiiiiijjjjjjjkkkkkkllllllmmmmmmmmmmmmnnnnnnoooooopppppppqqqqqqrrrrrrsss
ggggghhhhhhiiiiiijjjjjjkkkkkkllllllmmmmmmmmmmnnnnnnooooooppppppqqqqqqrrrrrrsssss
gggggghhhhhhiiiiiijjjjjkkkkkkllllllmmmmmmmmmmnnnnnnoooooopppppqqqqqqrrrrrrssssss
ffgggggghhhhhiiiiiijjjjjkkkkkklllllmmmmmmmmmmnnnnnoooooopppppqqqqqqrrrrrsssssstt
ffffggggghhhhhiiiiijjjjjjkkkkklllllmmmmmmmmmmnnnnnoooooppppppqqqqqrrrrrssssstttt

4.c

Here follows 4.c to calculate for pretty images which can be played as sound too * editor 4.c && gcc 4.c && for cc1 in {a..z}; do for cc2 in {a..z}; do for cc3 in {a..z}; do ./a.out $cc1 $cc2 $cc3 > bmp.bmp; echo "You can watch $cc1 $cc2 $cc3"; sleep 1; done; done; done

#include "stdio.h"
char main(char cinput, char ** ppcinput) {
// this pretty bitmap calculator is public domain code too
printf("BM");
printf("%c%c%c%c", 54, 0, 16, 0);
printf("%c%c%c%c", 'a', 'l', 'o', 'o');
printf("%c%c%c%c", 54, 0, 0, 0);
printf("%c%c%c%c", 40, 0, 0, 0);
printf("%c%c%c%c", 0, 2, 0, 0);
printf("%c%c%c%c", 0, 2, 0, 0);
printf("%c%c%c%c", 4, 0, 32, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 16, 0);
printf("%c%c%c%c", 1, 0, 0, 0);
printf("%c%c%c%c", 1, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
char ci1,ci2,ci3;
if (cinput > 1) ci1 = (ppcinput[1][0] - 'm'); if (ci1 == 0) ci1++;
if (cinput > 2) ci2 = (ppcinput[2][0] - 'm'); if (ci2 == 0) ci2++;
if (cinput > 3) ci3 = (ppcinput[3][0] - 'm'); if (ci3 == 0) ci3++;
char cx,cy,cxx,cyy;
for (cy = -64; cy <= 64; cy++) { if (cy == 0) cy++;
for (cyy = -2; cyy <= 2; cyy++) { if (cyy == 0) cyy++;
for (cx = -64; cx <= 64; cx++) { if (cx == 0) cx++;
for (cxx = -2; cxx <= 2; cxx++) { if (cxx == 0) cxx++;
char ccy1 = (cy / cyy + ci2) - (cyy / cy + ci1); if (ccy1 == 0) ccy1++;
char ccx1 = (cx / cxx + ci3) - (cxx / cx + ci2); if (ccx1 == 0) ccx1++;
char ccy2 = (ccy1 / ccx1) - (ccx1 / ccy1); if (ccy2 == 0) ccy2++;
char ccx2 = (ccx1 / ccy2) - (ccy2 / ccx1); if (ccx2 == 0) ccx2++;
char ccy3 = (ccy2 / ccx2) - (ccx2 / ccy2); if (ccy3 == 0) ccy3++;
char ccx3 = (ccx2 / ccy3) - (ccy3 / ccx2); if (ccx3 == 0) ccx3++;
char ccy4 = (ccy3 / ccx3) - (ccx3 / ccy3); if (ccy4 == 0) ccy4++;
char ccx4 = (ccx3 / ccy4) - (ccy4 / ccx3); if (ccx4 == 0) ccx4++;
char ccy5 = (ccy4 / ccx4) - (ccx4 / ccy4); if (ccy5 == 0) ccy5++;
char ccx5 = (ccx4 / ccy5) - (ccy5 / ccx4); if (ccx5 == 0) ccx5++;
char ccy6 = (ccy5 / ccx5) - (ccx5 / ccy5); if (ccy6 == 0) ccy6++;
char ccx6 = (ccx5 / ccy6) - (ccy6 / ccx5); if (ccx6 == 0) ccx6++;
char cc1 = (ccx1 / ccy2 - ccy3 / ccx4) - (ccy5 / ccx6 - ccx1 / ccy2);
char cc2 = (ccy2 / ccx3 - ccx4 / ccy5) - (ccx6 / ccy1 - ccy2 / ccx3);
char cc3 = (ccx3 / ccy4 - ccy5 / ccx6) - (ccy1 / ccx2 - ccx3 / ccy4);
char cc4 = (ccy4 / ccx5 - ccx6 / ccy1) - (ccx2 / ccy3 - ccy4 / ccx5);
char cc5 = (ccx5 / ccy6 - ccy1 / ccx2) - (ccy3 / ccx4 - ccx5 / ccy6);
char cc6 = (ccy6 / ccx1 - ccx2 / ccy3) - (ccx4 / ccy5 - ccy6 / ccx1);
if (cc1 == 0) cc1++;
if (cc2 == 0) cc2++;
if (cc3 == 0) cc3++;
if (cc4 == 0) cc4++;
if (cc5 == 0) cc5++;
if (cc6 == 0) cc6++;
char cc7 = cc1 / cc2 - cc2 / cc3 - cc3 / cc4 - cc4 / cc5;
char cc8 = cc2 / cc3 - cc3 / cc4 - cc4 / cc5 - cc5 / cc6;
char cc9 = cc6 / cc5 - cc5 / cc4 - cc4 / cc3 - cc3 / cc2;
printf("%c%c%c%c",cc9,cc8,cc7,cc8);
}}}} return 0; }

5.c

Or enjoy editor 5.c && gcc 5.c && echo "See documentation for 4.c"

#include "stdio.h"
char main(char cinput, char ** ppcinput) {
// this pretty bitmap calculator is public domain code too
printf("BM");
printf("%c%c%c%c", 54, 0, 16, 0);
printf("%c%c%c%c", 'a', 'l', 'o', 'o');
printf("%c%c%c%c", 54, 0, 0, 0);
printf("%c%c%c%c", 40, 0, 0, 0);
printf("%c%c%c%c", 0, 2, 0, 0);
printf("%c%c%c%c", 0, 2, 0, 0);
printf("%c%c%c%c", 4, 0, 32, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 16, 0);
printf("%c%c%c%c", 1, 0, 0, 0);
printf("%c%c%c%c", 1, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
char ci1,ci2,ci3;
if (cinput > 1) ci1 = (ppcinput[1][0] - 'm'); ci1 *= ci1; if (ci1 == 0) ci1++;
if (cinput > 2) ci2 = (ppcinput[2][0] - 'm'); ci2 *= ci2; if (ci2 == 0) ci2++;
if (cinput > 3) ci3 = (ppcinput[3][0] - 'm'); ci3 *= ci3; if (ci3 == 0) ci3++;
char cxx,cx,cyy,cy;
for (cyy = -2; cyy <= 2; cyy++) { if (cyy == 0) cyy++;
for (cy = -64; cy <= 64; cy++) { if (cy == 0) cy++;
for (cxx = -2; cxx <= 2; cxx++) { if (cxx == 0) cxx++;
for (cx = -64; cx <= 64; cx++) { if (cx == 0) cx++;
char c1 = (cyy * (cy + ci1)); if (c1 == 0) c1++;
char c2 = (cyy * (cy + ci2)); if (c2 == 0) c2++;
char c3 = (cyy * (cy + ci3)); if (c3 == 0) c3++;
char c4 = (cxx * (cx + ci1)); if (c4 == 0) c4++;
char c5 = (cxx * (cx + ci2)); if (c5 == 0) c5++;
char c6 = (cxx * (cx + ci3)); if (c6 == 0) c6++;
char cc1 = c1 * c2 / c6 + c4 * c5 / c3;
char cc2 = c2 * c3 / c4 + c5 * c6 / c1;
char cc3 = c3 * c1 / c5 + c6 * c4 / c2;
printf("%c%c%c%c",cc1,cc2,cc3,cc2);
}}}} return 0; }

6.c

#include "stdio.h"
char main(char cinput, char ** ppcinput) {
printf("BM");
printf("%c%c%c%c", 54, 0, 16, 0);
printf("%c%c%c%c", 'a', 'l', 'o', 'o');
printf("%c%c%c%c", 54, 0, 0, 0);
printf("%c%c%c%c", 40, 0, 0, 0);
printf("%c%c%c%c", 0, 2, 0, 0);
printf("%c%c%c%c", 0, 2, 0, 0);
printf("%c%c%c%c", 4, 0, 32, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 16, 0);
printf("%c%c%c%c", 1, 0, 0, 0);
printf("%c%c%c%c", 1, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
printf("%c%c%c%c", 0, 0, 0, 0);
char ci1,ci2,ci3;
if (cinput > 1) ci1 = (ppcinput[1][0] - 'm'); if (ci1 == 0) ci1++;
if (cinput > 2) ci2 = (ppcinput[2][0] - 'm'); if (ci2 == 0) ci2++;
if (cinput > 3) ci3 = (ppcinput[3][0] - 'm'); if (ci3 == 0) ci3++;
char cx,cy,cxx,cyy;
for (cy = -64; cy <= 64; cy++) { if (cy == 0) cy++;
for (cyy = -2; cyy <= 2; cyy++) { if (cyy == 0) cyy++;
for (cx = -64; cx <= 64; cx++) { if (cx == 0) cx++;
for (cxx = -2; cxx <= 2; cxx++) { if (cxx == 0) cxx++;
char ccy1 = (cyy / cy + ci2) * (cy / cyy + ci1); if (ccy1 == 0) ccy1++;
char ccx1 = (cxx / cx + ci3) * (cx / cxx + ci2); if (ccx1 == 0) ccx1++;
char ccy2 = (ccy1 / ccx1) - (ccx1 / ccy1); if (ccy2 == 0) ccy2++;
char ccx2 = (ccx1 / ccy2) - (ccy2 / ccx1); if (ccx2 == 0) ccx2++;
char ccy3 = (ccy2 / ccx2) - (ccx2 / ccy2); if (ccy3 == 0) ccy3++;
char ccx3 = (ccx2 / ccy3) - (ccy3 / ccx2); if (ccx3 == 0) ccx3++;
char ccy4 = (ccy3 / ccx3) - (ccx3 / ccy3); if (ccy4 == 0) ccy4++;
char ccx4 = (ccx3 / ccy4) - (ccy4 / ccx3); if (ccx4 == 0) ccx4++;
char ccy5 = (ccy4 / ccx4) - (ccx4 / ccy4); if (ccy5 == 0) ccy5++;
char ccx5 = (ccx4 / ccy5) - (ccy5 / ccx4); if (ccx5 == 0) ccx5++;
char ccy6 = (ccy5 / ccx5) - (ccx5 / ccy5); if (ccy6 == 0) ccy6++;
char ccx6 = (ccx5 / ccy6) - (ccy6 / ccx5); if (ccx6 == 0) ccx6++;
char cc1 = ccx4 + ccy4;
char cc2 = ccx5 + ccy5;
char cc3 = ccx6 + ccy6;
printf("%c%c%c%c",cc1,cc2,cc3,cc2);
}}}} return 0; }

Boot code with editor

// Boot code with editor version az
// First press a to z to select lines of bytes for processor code
// Second press 0 1 2 3 for 0 64 128 192 select
// Third press 0 to 7 for additional 0 8 16 24 32 40 48 56
// Fourth press 0 to 7 for additional 0 1 2 3 4 5 6 7
// Repeat number pressing for more bytes input
// Or press ! to start code
// Or press select line again

// For example enter the following bytes with the following numbers
// 64 "100" to scroll characters with AX
// 66 "102" to scroll positions with DX
// 67 "103" to scroll colors with BX
// 67 "103" to scroll colors with BX
// 180 "264" for setting AH
// 2 "002" for setting AH to 2 for cursor position
// 205 "315" for selecting BIOS services
// 16 "020" for selecting BIOS services for display services
// 180 "264" for setting AH
// 9 "011" for setting AH to 9 to display color character
// 205 "315" for selecting BIOS services
// 16 "020" for selecting BIOS services for display services
//// and start with '!'

// You may save output of this file with for example debian consoles
// gcc bootcodewitheditorversionaz.c
// ./a.out > code
// dd if=code of=/dev/sda (overwrites bootcode in /dev/sda)
// ./a.out | dd of=/dev/sda (overwrites bootcode in /dev/sda)

// The AMD processor reference manuals (Volume III: Opcodes)
// And The interrupt list from Ralph Brown may be of interest
// Also you may see: http://wiki.osdev.org  

#include "stdio.h"

char main() {
printf("%c%c", 180, 32); // Set AH to 32
printf("%c%c", 176, 0); // Set AL to 0
printf("%c%c", 142, 192); // Set ES with AX
printf("%c%c", 142, 216); // Set DS with AX

printf("%c%c", 180, 0); // Set AH to 0
printf("%c%c", 137, 198); // Set rSI with AX
printf("%c%c", 137, 199); // Set rDI with AX
printf("%c%c", 176, 144); // Set AL to 144

printf("%c%c", 170, 144); // Write AL to ES.rDI which should increment rDI
printf("%c%c", 57, 254); // Compare rDI and rSI
printf("%c%c", 117, -6); // Jump -6 if nonzero (from comparison difference)
printf("%c%c", 144, 144); // Exchange AX with AX (pause)

printf("%c%c", 144, 144); //
printf("%c%c", 144, 144); //
printf("%c%c", 144, 144); //
printf("%c%c", 144, 144); //

/////////////////////////

printf("%c%c", 177, 1); // Set CL to 1 (for character repeat)
printf("%c%c", 181, 0); // Set CH to 0 (for character repeat)
printf("%c%c", 139, 198); // Copy rSI into AX
printf("%c%c", 29, 0); // Substract 'a' * 256 from AX ...

printf("%c%c", 'a', 146); // ... and Exchange AX and DX (for cursor pos)
printf("%c%c", 172, 144); // Read from DS.rSI into AX
printf("%c%c", 180, 2); // Set AH to 2 (for cursor position code)
printf("%c%c", 205, 16); // CALL BIOS with code 16 (monitor services)

printf("%c%c", 179, 11); // Set BL to 11 (for color)
printf("%c%c", 57, 254); // Compare rDI and rSI
printf("%c%c", 117, 2); // Jump 2 if nonzero (from comparison difference)
printf("%c%c", 179, 14); // Set BL to 14 (for color)

printf("%c%c", 180, 9); // Set AH to 9 (for character display)
printf("%c%c", 205, 16); // CALL BIOS with code 16 (monitor services)
printf("%c%c", 180, 1); // Set AH to 1 (for input question)
printf("%c%c", 205, 22); // CALL BIOS with code 22 (keyboard services)

printf("%c%c", 117, -34); // Jump -34 (if no keyboard input)

//////////////////////////

printf("%c%c", 180, 0); // Set AH to 0 (for input read)
printf("%c%c", 205, 22); // CALL BIOS with code 22 (keyboard services)
printf("%c%c", 60, '!'); // Compare AL with '!'
printf("%c%c", 117, 6); // Jump 6 if nonzero (from comparison difference)

printf("%c%c", 234, 0); // Jump to start of new Code Segment
printf("%c%c", 0, 0); // This should be at the edited code
printf("%c%c", 32, 144); // (which should be at DS and at ES)
printf("%c%c", 136, 196); // Copy AL into AH

printf("%c%c", 176, 0); // Set AL to 0
printf("%c%c", 137, 199); // Copy AX into rDI
printf("%c%c", 29, 0); // Substract 'a' * 256 from AX ...
printf("%c%c", 'a', 146); // ... and Exchange AX with DX (for cursor pos)

printf("%c%c", 144, 144); //
printf("%c%c", 180, 2); // Set AH to 2 (for cursor position)
printf("%c%c", 205, 16); // CALL BIOS with code 16 (for monitor services)
printf("%c%c", 144, 144); //

printf("%c%c", 181, 0); // Set CH to 0 (for counting)
printf("%c%c", 177, 0); // Set CL to 0 (for counting)
printf("%c%c", 180, 0); // Set AH to 0 (for keyboard read)
printf("%c%c", 205, 22); // CALL BIOS with code 22 (for keyboard read)

printf("%c%c", 60, '1'); // Compare AL with '1'
printf("%c%c", 117, 4); // Jump 4 if nonzero (from comparison difference)
printf("%c%c", 177, 64); // Set CL to 64 (for counting logic)
printf("%c%c", 235, 26); // Jump 26 for more input

printf("%c%c", 60, '2'); //
printf("%c%c", 117, 4); //
printf("%c%c", 177, 128); //
printf("%c%c", 235, 18); //

printf("%c%c", 60, '3'); //
printf("%c%c", 117, 4); //
printf("%c%c", 177, 192); //
printf("%c%c", 235, 10); //

printf("%c%c", 60, '0'); // Compare AL with 0
printf("%c%c", 116, 6); // Jump 6 if nonzero (from comparison difference)
printf("%c%c", 234, 32); // Jump to offset 7C00h (124 * 256) + offset 32
printf("%c%c", 124, 0); // with Code Segment at 0000 (memory start)

printf("%c%c", 0, 144); // This jump should be to this software at byte 32
printf("%c%c", 180, 0); // Set AH to 0 (for keyboard read)
printf("%c%c", 205, 22); // Call BIOS keyboard services (for keyboard read)
printf("%c%c", 60, '0'); // Compare AL with '0'

printf("%c%c", 116, 8); // Jump if nonzero (for example if '0' is input)
printf("%c%c", 28, '0'); // Substract '0' from AL
printf("%c%c", 128, 193); // Group 1 code: ADD 8 to CL ...
printf("%c%c", 8, 72); // ... and decrement AX

printf("%c%c", 117, -6); // Jump if nonzero (from decrementing AX)
printf("%c%c", 180, 0); //
printf("%c%c", 205, 22); //
printf("%c%c", 60, '0'); //

printf("%c%c", 116, 6); //
printf("%c%c", 28, '0'); //
printf("%c%c", 65, 72); // Increment CX and Decrement AX
printf("%c%c", 117, -4); //

printf("%c%c", 145, 144); // Exchange CX with AX
printf("%c%c", 181, 0); // Set CH to 0
printf("%c%c", 177, 1); // Set CL to 1 (for character repeat)
printf("%c%c", 180, 9); //

printf("%c%c", 205, 16); //
printf("%c%c", 170, 66); // Write AX into ES.rDI and increment rDI and DX
printf("%c%c", 180, 2); //
printf("%c%c", 205, 16); //

printf("%c%c", 235, -90); //
printf("%c%c", 234, 32); //
printf("%c%c", 124, 0); //
printf("%c%c", 0, 144); //

unsigned char c = 96;
for (c = 96; c < 255; c++) {
printf("%c%c", 85, 170); // boot record signature for BIOS recognition
} return 0; }

Feedback

  • There is room for feedback here