# OS/M Alpha



## billgatesm (14. Juli 2005)

OS/M Alpha? Was ist das denn? Antwort: Das ist mein neues Betriebssystem in der Alpha-Version. Es ist noch ein kleines Betriebssystem. Es läuft im Real-Mode, auf 8086/88er Prozessoren, im Textmodus und auf Diskette. Hat ein eigenes Dateisystem, ein Spiel, Programme und viele Befehle z.B. Uhrzeit, Datum, Hardwareinformationen, Datei/-Verzeichnisinformationen, Dateien und Ordner im aktuellen Verzeichnis auflisten und viele mehr. Es ist knapp 1/2 Jahr alt und ist deswegen noch recht klein. Ach ja, ein Tastaturtreiber ist auch dabei. Ihr könnt es euch ja mal ansehen auf http://www.osm-page.de und dann schreiben wie Ihr es so findet. Aber bitte nicht mit Windows oder Linux vergleichen denn da hat es schon verloren. Sondern einfach mal was ihr davon haltet. Fehler und Verbesserungsvorschläge könnt ihr mir auf der Website unter Entwickler -> Feedback melden. Ihr müsst eure E-Mail-Adresse nicht unbedingt angeben. Und wenn Ihr die Quelltexte sucht, die werdet Ihr nicht finden. Mein Betriebssystem ist nämlich nicht Opensource. Aber trotzdem könnt Ihr ja mal schreiben wie Ihr es so findet. Viel Spaß mit meinem Betriebssystem.


----------



## tappi (2. August 2005)

Hallo,

wieso soll das System denn kein Open Source sein?


Gruß,

Stefab


----------



## Dennis Wronka (2. August 2005)

Ich hoffe Du hast keinen GPL-Code fuer Teile Deines OS genutzt.


----------



## billgatesm (5. August 2005)

tappi hat gesagt.:
			
		

> Hallo,
> 
> wieso soll das System denn kein Open Source sein?
> 
> ...


Weil ich den Code für mich behalten will. Habe mir gerade mal dein OS (FDOS) angeschaut. Kannte ich garnicht. Hat aber ziemlich viele Fehler. Ja, ich weis mein OS hat auch welche. Die in der Alpha habe ich aber schon beseitigt. Schwere Fehler waren aber nicht dabei. Die Beta-Version wird ende dieses Jahres fertig werden. Da hat sich einigen gaten. Aber wirst du dann ja sehen. Wie findest du es denn bis jetzt? Danke fürs anschauen. (hoffe mal du hast das getan)


----------



## Dennis Wronka (5. August 2005)

Warum sehen Eure Betriebssysteme eigentlich so sehr nach MS-DOS aus?
Das muss doch nicht sein.


----------



## tappi (5. August 2005)

mangels Diskettenlaufwerk kann ich es zur Zeit nicht testen. Oder Du schickst mir ein 1,44 MB großes Image. Das kann ich emulieren.

Gruß,

Stefan


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Ich hoffe Du hast keinen GPL-Code fuer Teile Deines OS genutzt.


Du meinst bei Open-Source Systeme abgeguckt? Nein! Ich habe mir das Betriebssystem Programmieren durch Bücher beigebracht. Ich lerne sowieso lieber mit Büchern. Gut bei dem Bootloader am Anfang habe ich mir Hilfe aus dem Internet geholt. Das heißt aber nicht das ich den Bootloader einfach kopiert habe. Ach ja, ich kanns ja sogar beweisen. Ich nutze ja ein eigenes Dateisystem. Das ist unter anderem auch in dem Bootloader integriert der meinen Kernel läd. Ja und da ich ein eigenes Dateisystem nutze muss ich viele Funktionen selber geschrieben haben (z.B. Ordner erstellen, Datei/Verzeichnis löschen ect.). Also das heißt. Ich habe mir Hilfen geholt. Aber nie Kopiert. Und wenn ich mir Hilfen geholt habe, z.B. am Anfang mit mov ah,0Eh int 10h, dann habe ich diese so weit wie möglich studiert und wenn es ging verbessert. Ich hoffe das ist erlaubt. Auch an dich meine Frage, wie findest du mein OS bis jetzt eigentlich? Du kannst ruhig im Gästebuch schreiben (wenn du es nicht gerade schräklich findest). Danke


----------



## billgatesm (5. August 2005)

tappi hat gesagt.:
			
		

> mangels Diskettenlaufwerk kann ich es zur Zeit nicht testen. Oder Du schickst mir ein 1,44 MB großes Image. Das kann ich emulieren.
> 
> Gruß,
> 
> Stefan


 Ich habe dieses doch auf meiner Homepage (das Image). http://www.osm-page.de. Danke


----------



## Dennis Wronka (5. August 2005)

Ich wollte Dir auch nichts unterstellen, sondern einfach nur mal nachfragen.
Es wird ja leider ganz gerne mal kopiert, aber ich find's gut wenn man, wie Du, sich wirklich die Arbeit macht.
Ich nehme an fuer den Tastaturtreiber hast Du beim Programmierer, wie erwuenscht, nachgefragt. An seine Website bin ich durch lesen Deines Images gekommen und der scheint nicht wirklich von Deinem OS ueberzeugt zu sein.
Auf jeden Fall Respekt fuer die Leistung, ich hab selbst eine Weile mit Assembler rumgemacht, aber an ein OS hab ich mich nie gewagt. Hab damit eher Grafikfunktionen gebaut die ich dann, zu der Zeit, in Pascal genutzt hab.
Daher kann ich mir einigermassen vorstellen was das fuer eine Arbeit ist.


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Warum sehen Eure Betriebssysteme eigentlich so sehr nach MS-DOS aus?
> Das muss doch nicht sein.


 Mein Betriebssystem sieht überhaubt nicht so aus wie MS-DOS. Hast du es schon ausprobiert?


----------



## Dennis Wronka (5. August 2005)

Naja, ein wenig schon. Was man so auf den Shots sieht.
Irgendwie eine Mischung aus Linux- und DOS-Shell. 
Und Du arbeitest halt mit DOS-typischen Endungen wie .sys. 
Aber FDOS sieht absolut nach DOS aus.

Nein, hab's noch nicht probiert, nur mal das Image in den Hex-Editor geschoben.


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Ich wollte Dir auch nichts unterstellen, sondern einfach nur mal nachfragen.
> Es wird ja leider ganz gerne mal kopiert, aber ich find's gut wenn man, wie Du, sich wirklich die Arbeit macht.
> Ich nehme an fuer den Tastaturtreiber hast Du beim Programmierer, wie erwuenscht, nachgefragt. An seine Website bin ich durch lesen Deines Images gekommen und der scheint nicht wirklich von Deinem OS ueberzeugt zu sein.
> Auf jeden Fall Respekt fuer die Leistung, ich hab selbst eine Weile mit Assembler rumgemacht, aber an ein OS hab ich mich nie gewagt. Hab damit eher Grafikfunktionen gebaut die ich dann, zu der Zeit, in Pascal genutzt hab.
> Daher kann ich mir einigermassen vorstellen was das fuer eine Arbeit ist.


Oh. Danke das du es ausprobiert hast. Ja, er findet die Befehle zu lang usw. Ich habe wie gesagt aber schon viel geändert. Die Beta-Version wird viele änderungen und verbesserungen, erweiterungen haben. Nochmals Danke fürs ausprobieren.


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Naja, ein wenig schon. Was man so auf den Shots sieht.
> Irgendwie eine Mischung aus Linux- und DOS-Shell.
> Und Du arbeitest halt mit DOS-typischen Endungen wie .sys.
> Aber FDOS sieht absolut nach DOS aus.
> ...


FDOS soll glaube ich aber auch eine Kopie von DOS sein, siehe name (F)DOS. Mein OS? Ich finde nicht das es so aussieht wie DOS. Ja gut wegen der Shell. Aber die kann ich ja nicht ändern. Aber die hat standartmäßig weißen Hintergrund und schwarze Schrift. Also anders als DOS.


----------



## Dennis Wronka (5. August 2005)

Ist ja auch alles okay. Kann ja jeder machen wie er will.
Ist mir halt nur aufgefallen.
Gibt's einen bestimmten Grund/Einsatzzweck fuer das OS, oder einfach nur Spass/Lernen?


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Ist ja auch alles okay. Kann ja jeder machen wie er will.
> Ist mir halt nur aufgefallen.
> Gibt's einen bestimmten Grund/Einsatzzweck fuer das OS, oder einfach nur Spass/Lernen?


Spass/Lernen


----------



## Dennis Wronka (5. August 2005)

Wird es irgendwelche Binaerkompatibiltaet zu anderen Betriebssystemen geben?
Was ist mit Dateisystemunterstuetzung fuer andere OS?


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Wird es irgendwelche Binaerkompatibiltaet zu anderen Betriebssystemen geben?


Was meinst du damit?



			
				reptiler hat gesagt.:
			
		

> Was ist mit Dateisystemunterstuetzung fuer andere OS?


Nein. Ich weis das ist ein großes Problem. Ich bin gerade dabei verschiebungs und Kopieruns- Befehle zu schreiben (Datei/Ordner verschieben/kopieren), damit ich Datenaustausch machen kann. Aber nur mit Datenträger meines Dateisystems. Wie will man dann Programme dafür schreiben? Ich bin auch dabei ein BASIC und ASSEMBLER zu schreiben. Die werden aber erst zur Beta-Version meines OS erscheinen und sind dann in der Version 0.01. Das heißt noch sehr klein.


----------



## Dennis Wronka (5. August 2005)

Naja, was nicht ist kann ja noch werden.
In Sachen Binaerformate und Dateisysteme koennte Du ja evtl. Inspiration bei OpenSource-Software holen.
Aber es gilt halt das Prinzip: Lesen, verstehen, neu implementieren.
Denn wenn Du Code aus GPL-Software kopierst kannst Du Dein OS nicht mehr als ClosedSource verteilen.


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Naja, was nicht ist kann ja noch werden.
> In Sachen Binaerformate und Dateisysteme koennte Du ja evtl. Inspiration bei OpenSource-Software holen.
> Aber es gilt halt das Prinzip: Lesen, verstehen, neu implementieren.
> Denn wenn Du Code aus GPL-Software kopierst kannst Du Dein OS nicht mehr als ClosedSource verteilen.


Nein, ich werde kein Code kopieren.


----------



## Dennis Wronka (5. August 2005)

Wie gesagt, grundsaetzlich erlaubt die GPL ja Code zu kopieren, jedoch musst Du dann auch den Source Deines Programmes freigeben.


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Wie gesagt, grundsaetzlich erlaubt die GPL ja Code zu kopieren, jedoch musst Du dann auch den Source Deines Programmes freigeben.


Keine Angst werde ich nicht machen.


----------



## Dennis Wronka (5. August 2005)

Guter Junge, auch wenn Du Dir einen schlechten Nick ausgesucht hast.  Nicht zu ernst nehmen.

Ich wuensche Dir auf jeden Fall viel Erfolg mit Deinem OS.


----------



## tappi (5. August 2005)

Die Frage ist nur: was genau soll Dein OS bezwecken? Da es ja nicht Open Source ist muss dahinter ja ein Gedanke stecken. Oder willst Du einfach nur selber mal ein OS schreiben? Ich bin nämlich so ein Typ, der alles selber machen muss (OS schreiben, Programmiersprache/Compiler entwickeln, ...).

FDOS sieht in der Tat so aus wie DOS, hat aber bis auf FAT 12 nicht viel mit DOS gemein. FDOS ist Open Source, da die Intention darin lag anderen (wie z.B. Dir) einen Einblick zu gewähren. Ursprünglich habe ich FDOS als Facharbeit in der 12. Klasse programmiert. Ich finde die Bedienoberfläche von DOS  intuitiver zu gebrauchen als von Linux.

Gruß,

Stefan


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Guter Junge, auch wenn Du Dir einen schlechten Nick ausgesucht hast.  Nicht zu ernst nehmen.
> 
> Ich wuensche Dir auf jeden Fall viel Erfolg mit Deinem OS.


Danke. Aber wieso schlechten Nick?


----------



## Dennis Wronka (5. August 2005)

tappi hat gesagt.:
			
		

> Ich finde die Bedienoberfläche von DOS  intuitiver zu gebrauchen als von Linux.


Was aber wahrscheinlich daran liegt, dass auch Du mit DOS aufgewachsen bist und moeglicherweise, aber nicht zwangslaeufig nicht sehr viel Kontakt zu Linux hattest.
Ich persoenlich finde Linux eigentlich genauso einfach zu bedienen wie DOS, es ist halt alles eine Frage der Gewoehnung.


----------



## billgatesm (5. August 2005)

tappi hat gesagt.:
			
		

> Die Frage ist nur: was genau soll Dein OS bezwecken? Da es ja nicht Open Source ist muss dahinter ja ein Gedanke stecken. Oder willst Du einfach nur selber mal ein OS schreiben? Ich bin nämlich so ein Typ, der alles selber machen muss (OS schreiben, Programmiersprache/Compiler entwickeln, ...).
> 
> FDOS sieht in der Tat so aus wie DOS, hat aber bis auf FAT 12 nicht viel mit DOS gemein. FDOS ist Open Source, da die Intention darin lag anderen (wie z.B. Dir) einen Einblick zu gewähren. Ursprünglich habe ich FDOS als Facharbeit in der 12. Klasse programmiert. Ich finde die Bedienoberfläche von DOS  intuitiver zu gebrauchen als von Linux.
> 
> ...


Ich möchte einfach nur selbst mal ein OS schreiben. Ich muss auch alles selber machen. Selbst das Kopieren meiner Dateien auf die DISK.


----------



## Dennis Wronka (5. August 2005)

billgatesm hat gesagt.:
			
		

> Danke. Aber wieso schlechten Nick?


Naja, wenn wir mal ehrlich sind: Wer mag Bill Gates wirklich?


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Naja, wenn wir mal ehrlich sind: Wer mag Bill Gates wirklich?


Ich. Bill Gates ist der Master. Ich weis ihr hasst ihn alle, weil er DOS nicht selbst geschrieben hat (wie sovieles nicht) aber der reichste Mensch ist. Aber er hat einen BASIC Interpreter geschriben.


----------



## Dennis Wronka (5. August 2005)

Na immerhin.
Es geht mir nicht darum, dass er DOS nicht selbst geschrieben hat, sondern wie er und seine lustige Firma meinen mit OpenSource-Software umspringen zu muessen. Im speziellen Linux, da dies ja der grosse Konkurrent zu Windows ist, zumindest denkt das Microsoft. Halt mal ganz davon abgesehen, dass Linux nie als Konkurrent zu WIndows gedacht war und ist, sondern lediglich ein freies OS ist, und zwar ein gutes.
Nur Microsoft meint ihre Kunden vor Linux mit aller Gewalt schuetzen zu muessen, z.B. indem Resellern Listen mit ausgedachten Beweisen gegen Linux in die Hand gedrueckt werden (es gab da mal ein recht amuesantes PDF) und somit Kunden die nach Linux auf dem neuen PC fragen gleich die wildesten Gegenargumente zu hoeren bekommen.


----------



## billgatesm (5. August 2005)

reptiler hat gesagt.:
			
		

> Na immerhin.
> Es geht mir nicht darum, dass er DOS nicht selbst geschrieben hat, sondern wie er und seine lustige Firma meinen mit OpenSource-Software umspringen zu muessen. Im speziellen Linux, da dies ja der grosse Konkurrent zu Windows ist, zumindest denkt das Microsoft. Halt mal ganz davon abgesehen, dass Linux nie als Konkurrent zu WIndows gedacht war und ist, sondern lediglich ein freies OS ist, und zwar ein gutes.
> Nur Microsoft meint ihre Kunden vor Linux mit aller Gewalt schuetzen zu muessen, z.B. indem Resellern Listen mit ausgedachten Beweisen gegen Linux in die Hand gedrueckt werden (es gab da mal ein recht amuesantes PDF) und somit Kunden die nach Linux auf dem neuen PC fragen gleich die wildesten Gegenargumente zu hoeren bekommen.


Na ja. Er hat ja nicht ganz unrecht. Gehe hier im Forum mal nach Linux. Und dort die installation von VMware. Da kommt Freude auf. VMware ist aber nur ein Beispiel. Bei Windows würde keiner damit Probleme haben. Aber wer sich wirklich mit Linux auskennt und es gut findet soll dort bleiben. Ich verwende z.B. gerade Linux. Abwohl ich Windows besser finde. Aber egal. Jeder das was er will. Das was microsoft macht ist halt normal. Das ist Werbung.


----------



## billgatesm (5. August 2005)

Schon wieder. Habe gerade Updates unter SuSE Linux herundergeladen. Und dort war ein Kernel-Update dabei. Jetzt funktioniert VMware schon wieder nicht. (nicht nur vmware) Jetzt muss ich wieder vieles einstellen, was ich unter Windows nicht machen brauch. Ich werde auch nie von Windows auf Linux wechseln. Verwende es nur aus neugier (das Linux). Aber egal zurück zum Thema.


----------



## Dennis Wronka (5. August 2005)

Das erwaehnte PDF war keine Werbung.
Ich verwende uebrigens auch Linux.
Hab zwar auch Windows auf dem Rechner, aber nur zum Zocken. Und dieses Windows (uebrigens 2000) hab ich jetzt schon ein paar Wochen nicht mehr gesehen.

Genau, jeder das was er will. Dafuer hat man so viel Auswahl.
Ansonsten braeuchte man nicht Windows, Linux, diverse BSD-Systeme, etc.
Mir persoenlich gefaellt einfach die Freiheit an Linux zu tun was ich will, und dass man halt wesentlich mehr Kontrolle ueber das System hat.
Natuerlich ist nicht alles so kinderleicht wie es bei Windows ist, aber das muss es auch nicht. Dann braeuchte man Linux ja auch nicht mehr wenn es wie Windows waere.


----------



## billgatesm (5. August 2005)

Schade. Hat sich noch keiner im Gästebuch eingetragen. Aber nicht so schlimm. Die Beta wird besser.


----------



## tappi (5. August 2005)

Ich habe mir grade das System mal kurz angeschaut. Übrigens sagt der mir einen Fehler beim Starten (nachdem das System gebootet wurde) in Virutal PC. Auf nem richtigen PC klappt es aber.

Das System sieht sehr gut aus. Keine doofen Fehler wie bei meinem System. Auch das Dateisystem scheint gut zu laufen.

Sag mal du kennst FDOS wirklich nicht? Das sieht nämlich sehr nach dem gleichen Ping Pong aus, dass auch ich für FDOS programmiert habe. Es gibt wie bei FDOS Ping Pong 3 Geschwindigkeiten, wobei man das Spiel mit exakt den gleichen Tasten bedient und das Programm sich nur beendet, wenn ein Spieler verloren hat.

Ein klein wenig komisch kommt mir das schon vor.


----------



## billgatesm (5. August 2005)

Echt? echt. Wie kann das denn? Ich habe dieses Spiel von einer Hompage nachgeschrieben. Gamesnet oder wie die heißt. (bei msn.de/suche gefunden). Hatte nämlich keinen Plan welches Spiel ich proggen sollte. Warte, ich suche mal die Seite. Dort habe ich nämlich die Tasten übernommen. Schaue mir auch gleich mal dein Spiel an.


----------



## billgatesm (5. August 2005)

Ach ja, zu dem Fehler in Virtual PC. Das habe ich auch schon gemerkt. Keine Ahnung warum das so ist. Jeder andere Emulator läuft aber damit z.B. vmware (das nutze ich) bogs (oder wie das heißt). Also den Fehler kann ich mir nicht erklähren. Das mit Ping Pong auch nicht. Das sieht wirklich ziemlich gleich aus. Wäre mein OS Opensurce würde ich sogar sagen du hättest es kopiert. Das doofe ist das dein OS Opensource ist und meins nicht, also glaubst du wahrscheinlich ich habe es kopiert. Ich finde die Seite einfach nicht mehr wo ich dieses Spiel gesehen habe. Ich suche aber weiter.


----------



## Dennis Wronka (5. August 2005)

Man koennte mit einem Hex-Editor die kompilierten Spiele vergleichen.

Nachtrag: Und der OpenSource-VirtualPC dessen Name Du suchtest nennt sich Bochs.


----------



## tappi (5. August 2005)

billgatesm hat gesagt.:
			
		

> Das doofe ist das dein OS Opensource ist und meins nicht, also glaubst du wahrscheinlich ich habe es kopiert. Ich finde die Seite einfach nicht mehr wo ich dieses Spiel gesehen habe. Ich suche aber weiter.



Haha nur, dass mein OS seit Mai 2004 gar nicht mehr weiter entwickelt wird und dieses Ping Pong Ding von 2003 ist.

Aber Du sagtest ja schon Du hättest das Spiel von einer Webseite.

Mein PingPong hat einen Fehler (weiss nicht, ob es den auch bei Deinem gibt). Der "Ball" prallt nämlich erst dann zurück, wenn er schon quasi im Spielerblock ist.

Das mit dem Hex ist relativ schwierig, da es unterschiedliche Sprachen sind und ich noch so komische File Informationen habe.

Wie geht man eigentlich mit Deinem Texteditor um?


Der Code von meinem Spiel sieht so aus:


```
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Project 		: 	FDOS 0.0.9
;; Author 		: 	Stefan Tappertzhofen (tappertzhofen@t-online.de)
;; Webpage 		: 	http://www.visual-opal.de
;; Date 		: 	1.5.2004
;; Info		 	: 	Ping Pong Game Example
;; Filename 		: 	pingpong.asm
;; Compile Syntax 	: 	nasm pingpong.asm -f bin -o pingpong.bin
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


JMP NEAR Init

HeadSignature	DB	'BI,'
SysFileName	DB	'PingPong,'
FDVerRequ	DB	'0.0.9.4,'
SysVersion	DB	'0.0.0.5,'
Copyright	DB	'Stefan Tappertzhofen (c) 2002 - 2004,',
Information	DB	'Pingpong example game for two players,'
Product		DB	'FDOS,'

Init:

	MOV AX, CS				; Load Segment Registers
        MOV DS, AX
        MOV ES, AX


Begin:

	; Welcome

        MOV AH, 4                               ; CLS
        INT 21h

	MOV SI, MSG_Welcome
	MOV AH, 1
	INT 21h

	XOR AH, AH
	INT 16h

	CMP AL, '0'
	JE SHORT End_Program
	
	CMP AL, '1'
	JE SHORT StartGame1

	CMP AL, '2'
	JE SHORT StartGame2

	CMP AL, '3'
	JE SHORT StartGame3

	JMP SHORT Begin

End_Program:

        MOV AH, 4                               ; CLS
        INT 21h

	MOV AH, 0
	INT 21h

StartGame1:

	MOV AX, 1
	MOV [Speed], AX
	JMP SHORT StartGame

StartGame2:

	MOV AX, 2
	MOV [Speed], AX
	JMP SHORT StartGame

StartGame3:

	MOV AX, 3
	MOV [Speed], AX
	JMP SHORT StartGame

StartGame

	MOV AH, 1
	MOV CX, 10280				; Disable Coursor
	INT 10h


	; Init Player 1 Position

	MOV BYTE [PosPlayer1], 9
	MOV BYTE [LastPlayer1], 9

	; Init Player 2 Position

	MOV BYTE [PosPlayer2], 9
	MOV BYTE [LastPlayer2], 9


	; Init Ball Position

	MOV BYTE [XPos], 39
	MOV BYTE [LastX], 39
	
	MOV BYTE [YPos], 12
	MOV BYTE [LastY], 12

	; Init Direction of Ball


	MOV BYTE [DirectionX], 1
	MOV BYTE [DirectionY], 1


        MOV AH, 4                               ; CLS
        INT 21h

	; Print Game Screen


	CALL PrintPlayer1
	CALL PrintPlayer2
	CALL PrintBall


	DoGame:

		PUSH CX

	.IfX:


		MOV AL, [XPos]
		CMP AL, 4
		JB NEAR .CheckPlayer1
		CMP AL, 75
		JA NEAR .CheckPlayer2

	.IfY:

		MOV AL, [YPos]
		CMP AL, 2
		JB NEAR .PosYDirection
		CMP AL, 21
		JA NEAR .NegYDirection


	.PrintTheBall:


		; Check If any Player pressed a key:

		mov ah, 01h
		int 16h
		jz .DoPrint

		xor ah, ah
		int 16h



		CMP AL, 'w'
		JE .SubPlayer1
		CMP AL, 's'
		JE .AddPlayer1

		CMP AL, 'o'
		JE .SubPlayer2
		CMP AL, 'l'
		JE .AddPlayer2

		JMP .DoPrint

	
	.AddPlayer1:




		MOV AL, [PosPlayer1]

		CMP AL, 17
		JE SHORT .DoPrint

		ADD AL, 1
		MOV [PosPlayer1], AL 
		JMP SHORT .DoPrint


	.SubPlayer1:

		MOV AL, [PosPlayer1]

		CMP AL, 0
		JE SHORT .DoPrint

		SUB AL, 1
		MOV [PosPlayer1], AL 
		JMP SHORT .DoPrint

	.AddPlayer2:

		MOV AL, [PosPlayer2]

		CMP AL, 17
		JE SHORT .DoPrint

		ADD AL, 1
		MOV [PosPlayer2], AL
		JMP SHORT .DoPrint 


	.SubPlayer2:

		MOV AL, [PosPlayer2]

		CMP AL, 0
		JE SHORT .DoPrint

		SUB AL, 1
		MOV [PosPlayer2], AL
		JMP SHORT .DoPrint 

		
	.DoPrint:

		MOV AX, [XPos]
		ADD AX, [DirectionX]
		MOV [XPos], AX 

		MOV AX, [YPos]
		ADD AX, [DirectionY]
		MOV [YPos], AX 


		CALL PrintScreen			; Print Game Screen
		CALL PrintPlayer1
		CALL PrintPlayer2
		CALL PrintBall


		CALL WaitTime


		JMP ResumeGame

	 .PosXDirection:
			
		MOV BYTE [DirectionX], 1
		JMP NEAR .IfY

	 .NegXDirection:
			
		MOV BYTE [DirectionX], -1
		JMP NEAR .IfY
	
	 .PosYDirection:
			
		MOV BYTE [DirectionY], 1
		JMP NEAR .PrintTheBall

	 .NegYDirection:
			
		MOV BYTE [DirectionY], -1
		JMP NEAR .PrintTheBall

	.CheckPlayer1:

		MOV AL, [YPos]
		MOV BL, [PosPlayer1]

		CMP AL, BL
		JE .PosXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer1]
		ADD BL, 1

		CMP AL, BL
		JE .PosXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer1]
		ADD BL, 2

		CMP AL, BL
		JE .PosXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer1]
		ADD BL, 3

		CMP AL, BL
		JE .PosXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer1]
		ADD BL, 4

		CMP AL, BL
		JE .PosXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer1]
		ADD BL, 5

		CMP AL, BL
		JE .PosXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer1]
		ADD BL, 5

		CMP AL, BL
		JE .PosXDirection

		JMP .Player1Lost

	.CheckPlayer2:

		MOV AL, [YPos]
		MOV BL, [PosPlayer2]

		CMP AL, BL
		JE .NegXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer2]
		ADD BL, 1

		CMP AL, BL
		JE .NegXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer2]
		ADD BL, 2

		CMP AL, BL
		JE .NegXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer2]
		ADD BL, 3

		CMP AL, BL
		JE .NegXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer2]
		ADD BL, 4

		CMP AL, BL
		JE .NegXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer2]
		ADD BL, 5

		CMP AL, BL
		JE .NegXDirection

		MOV AL, [YPos]
		MOV BL, [PosPlayer2]
		ADD BL, 6

		CMP AL, BL
		JE .NegXDirection

		JMP .Player2Lost


	.Player1Lost:

        	MOV AH, 4                               ; CLS
        	INT 21h

		MOV CX, 3085
		MOV CX, 1543
		MOV AH, 1
		INT 10h

		MOV SI, MSG_Player1_Lost
		MOV AH, 1
		INT 21h

		MOV SI, MSG_PressAKey
		MOV AH, 1
		INT 21h

		XOR AX, AX
		INT 16h

		MOV AH, 0
		INT 21h

	.Player2Lost:

		MOV AH, 4                               ; CLS
        	INT 21h

		MOV CX, 3085
		MOV CX, 1543
		MOV AH, 1
		INT 10h

		MOV SI, MSG_Player2_Lost
		MOV AH, 1
		INT 21h

		MOV SI, MSG_PressAKey
		MOV AH, 1
		INT 21h

		XOR AX, AX
		INT 16h

		MOV AH, 0
		INT 21h




	ResumeGame:


		POP CX

		JMP DoGame

WaitTime:

	XOR AH, AH
	INT 1Ah

	MOV BX, DX


	.GetNewTime:

		PUSH BX
		XOR AH, AH
		INT 1Ah
		POP BX

		SUB DX, BX
		MOV AX, [Speed]
		CMP DX, AX
		JB SHORT .GetNewTime
	
	JMP ResumeGame






	

PrintScreen:

	MOV DL, [XPos]
	MOV DH, [YPos]
	CALL LocateXY
	CALL PrintDummy



	MOV DL, [XPos]
	MOV DH, [YPos]
	SUB DL, 1
	SUB DH, 1
	CALL LocateXY
	CALL PrintDummy

	MOV DL, [XPos]
	MOV DH, [YPos]
	SUB DL, 1
	CALL LocateXY
	CALL PrintDummy



	MOV DL, [XPos]
	MOV DH, [YPos]
	SUB DH, 1
	CALL LocateXY
	CALL PrintDummy



	MOV DL, [XPos]
	MOV DH, [YPos]
	ADD DH, 1
	CALL LocateXY
	CALL PrintDummy



	MOV DL, [XPos]
	MOV DH, [YPos]
	ADD DL, 1
	CALL LocateXY
	CALL PrintDummy




	MOV DL, [XPos]
	MOV DH, [YPos]
	ADD DL, 1
	ADD DH, 1
	CALL LocateXY
	CALL PrintDummy

	MOV DL, [XPos]
	MOV DH, [YPos]
	ADD DL, 1
	SUB DH, 1
	CALL LocateXY
	CALL PrintDummy

	MOV DL, [XPos]
	MOV DH, [YPos]
	SUB DL, 1
	ADD DH, 1
	CALL LocateXY
	CALL PrintDummy





	RETN




PrintPlayer1:


	; Clear Last Position of Player

	MOV DH, [LastPlayer1]
	MOV DL, 3

	CALL LocateXY

	MOV CX, 6

	.ClearOldPos:

		CALL PrintSpace
		CALL PrintSpace

		INC DH
		MOV DL, 3

		CALL LocateXY
		LOOPNZ .ClearOldPos

	; Print Player


	MOV DH, [PosPlayer1]
	MOV DL, 3

	CALL LocateXY

	MOV CX, 6
	.PrintPos:

		CALL PrintBlock
		CALL PrintBlock

		INC DH
		MOV DL, 3

		CALL LocateXY
		LOOPNZ .PrintPos

	MOV AL, [PosPlayer1]
	MOV [LastPlayer1], AL

	RETN
	


PrintPlayer2:


	; Clear Last Position of Player

	MOV DH, [LastPlayer2]
	MOV DL, 76

	CALL LocateXY

	MOV CX, 6

	.ClearOldPos:

		CALL PrintSpace
		CALL PrintSpace

		INC DH
		MOV DL, 76

		CALL LocateXY
		LOOPNZ .ClearOldPos

	; Print Player


	MOV DH, [PosPlayer2]
	MOV DL, 76

	CALL LocateXY

	MOV CX, 6

	.PrintPos:

		CALL PrintBlock
		CALL PrintBlock

		INC DH
		MOV DL, 76

		CALL LocateXY
		LOOPNZ .PrintPos


	MOV AL, [PosPlayer2]
	MOV [LastPlayer2], AL

	RETN


PrintBall:


	; Clear Last Position of Ball

	MOV AL, [XPos]
	MOV [LastX], AL

	MOV AL, [YPos]
	MOV [LastY], AL

	; Print New Ball

	MOV DL, [XPos]
	MOV DH, [YPos]

	CALL LocateXY
	CALL PrintB		

	RETN



PrintSpace:

	MOV AH, 11
	MOV AL, ' '
	INT 21h
	RETN

PrintDummy:

	MOV AH, 11
	MOV AL, ' '
	INT 21h
	RETN

PrintBlock:

	MOV AH, 11
	MOV AL, '²'
	INT 21h
	RETN

PrintB:

	MOV AH, 11
	MOV AL, 'Û'
	INT 21h
	RETN

LocateXY:


	; DL = X
	; DH = Y

	PUSH AX
	PUSH BX

	MOV AH, 02h
	MOV BH, 0
	INT 10h

	POP BX
	POP AX


	RETN


        PosPlayer1   DB 0
	LastPlayer1  DB 0
        PosPlayer2   DB 0
	LastPlayer2  DB 0


        XPos         DB 0
	LastX	     DB 0
        YPos         DB 0
	LastY        DB 0

	DirectionX    DB 0	; -1 and +1
	DirectionY    DB 0	; -1 and +1

	Speed	DB 0
	
	Free	TIMES 10 DB 0



	MSG_Welcome		DB 'FDOS Ping Pong (v 0.1)',13,10,
				DB '----------------------',13,10,10,13,
				DB 'Copyright Stefan Tappertzhofen 2002 - 2003',13,10,13,
				DB 'This game is made for two player. The aim of the game is to bounce the ball',13,10,
				DB 'so that it can not reach the screen boarder.',13,10,
				DB 'Player 1 controlls his block with the Key >W< to move it upwards and >S< to',13,10,
				DB 'move it downwards. Player 2 controlls his key with >O< for upwards and >L<',13,10,
				DB 'downwards.',13,10,
				DB 'The game will be terminated when a Player lost.',13,10,13,10,
				DB 'Choose your game speed. After pressing the option the game will be started.',13,10,
				DB ' 0 - terminate the game',13,10,
				DB ' 1 - fast',13,10,
				DB ' 2 - middle',13,10,
				DB ' 3 - slow',13,10,
				DB 'Your Option: ',0

	MSG_Player1_Lost	DB 'Player 1 lost the game!',13,10,0
	MSG_Player2_Lost	DB 'Player 2 lost the game!',13,10,13,10,0
	MSG_PressAKey		DB 'Press a key to exit for FDOS!',13,10,0

				

	Dummy	TIMES 10 DB 0
```


----------



## billgatesm (5. August 2005)

tappi hat gesagt.:
			
		

> Haha nur, dass mein OS seit Mai 2004 gar nicht mehr weiter entwickelt wird und dieses Ping Pong Ding von 2003 ist.
> 
> Aber Du sagtest ja schon Du hättest das Spiel von einer Webseite.
> 
> ...


Tatsächlich der Code ist an ziemlich vielen Stellen gleich. Also dann glaube ich der Code stammt von dir. Die haben den Kopiert und einbischen verändert. Dann habe ich mir den geholt und nochmals verändert. Aber trotzdem sind einige Stellen gleich die ich nicht verändert habe. Wies nicht ob man das einfach machen kann. Code kopieren und verändern und sich als Autor ausgeben. Also da vorsche ich nochmals nach. Und den Fehler hat mein Spiel nämlich auch.
Das mit dem Texteditor: Der ist noch sehr sehr billig. Enter funktioniert nicht und das löschen nur des letzten Zeichens. Ich bin den aber auch am verbessern. Das heißt bis zur Beta-Version meines OS und damit bis zur Textedit Version 0.2 soll sich vieles tun. Syntax: *txtedt.file [Textdatei]* (ohne Klammern). Hoffe geholfen zu haben.


----------



## Azi (10. November 2005)

Du hast uns ja noch garnicht erzählt, dass vor etwa einer Woche deine Beta-Version fertiggestellt wurde  ! Ich werds mir gleich mal anschauen, die Alpha hat mir schon recht gut gefallen. Nur die Farben sind nichts für mich, Schwarz auf Weiß... Aber das ist Geschmackssache.
/Edit: Ich hab einen Fehler in deinem OS gefunden, es reagiert nicht mehr, wenn du [STRG]+[G] gedrückt hälst, und zwar so lange, bis sich der Ton ändert.


----------



## billgatesm (1. Dezember 2005)

Azi hat gesagt.:
			
		

> Du hast uns ja noch garnicht erzählt, dass vor etwa einer Woche deine Beta-Version fertiggestellt wurde  ! Ich werds mir gleich mal anschauen, die Alpha hat mir schon recht gut gefallen. Nur die Farben sind nichts für mich, Schwarz auf Weiß... Aber das ist Geschmackssache.
> /Edit: Ich hab einen Fehler in deinem OS gefunden, es reagiert nicht mehr, wenn du [STRG]+[G] gedrückt hälst, und zwar so lange, bis sich der Ton ändert.


Ja meine Beta-Version ist jetzt fertig. Nein, das Strg+G ist kein Fehler. Wenn du Strg+a drückst wird das ASCII-Zeichen für 1 ausgegeben, bei Strg+b ASCII=2, Strg+C = ASCII=3 ... Strg+g = ASCII=7.. Und das ASCII Zeichen 7 ist halt ein Piepton. Unter Vmware piept die Maschine ziemlich lange. Das hat aber nichts mit meinem OS zu tun. Auch wenn du unter DOS auf Vmware das ASCII zeichen 7 (also piep) ausgiebst, piept es lange. Das ist also kein Fehler. Danke fürs ausprobieren. Du kannst dich ruhig im Gästebuch eintragen. Aber dann bitte in ganzen Sätzen schreiben. Vielen dank noch mal.

OS/M Master


----------



## Azi (1. Dezember 2005)

Nein, der Fehler kommt erst, wenn du es lange gedrückt hast. Der Piepton hält etwas an, schon lar, aber dannach geht nix mehr. Für jede Taste, die ich drücke, piept der wieder. In einem tieferen Ton.


----------



## billgatesm (1. Dezember 2005)

Azi hat gesagt.:
			
		

> Nein, der Fehler kommt erst, wenn du es lange gedrückt hast. Der Piepton hält etwas an, schon lar, aber dannach geht nix mehr. Für jede Taste, die ich drücke, piept der wieder. In einem tieferen Ton.


Tatsälich, unter Vmware. Außerdem macht er dabei noch einen Fehler. Ich werde mich darum kümmern wenn ich mal wieder lust habe an der Tastatur rumzufummeln.

PS: Diesen Fehler schreibe ich mir auf meiner Bug-Liste.


----------



## Azi (1. Dezember 2005)

Nicht nur in VMWare, auch in der Praxis auf meinen 2 Rechnern.


----------



## billgatesm (2. Dezember 2005)

Azi hat gesagt.:
			
		

> Nicht nur in VMWare, auch in der Praxis auf meinen 2 Rechnern.


Okay, ich werde mich darum kümmern. Danke für den Hinweis.


----------

