Sie sind nicht angemeldet.

1

Montag, 29. Oktober 2012, 14:08

DCPU - Initialisierung Hardware (Snippet)

Hat jemand Initialisierung von alles und jeden verlangt? Nein? Egal! Im Anhang befindet sich eine Initialirung von aller bekannter Hardware. Darunter kann damit sogar ein Zweitmonitor und Zweitfloppy initialisiert werden! Zusätzlich habe ich einige weitere Variablen angelegt welche später noch nützlich sein werden.
Das File ist ein kleiner Zwischenstand zum ersten Analyse Screen! Falls es fragen zu dem Snippet gibt bitte gleich hier Fragen ^^
»The_Real_Black« hat folgende Datei angehängt:
  • Init2.txt (4,43 kB - 9 mal heruntergeladen - zuletzt: 31. Oktober 2012, 20:04)
Happy Coding

2

Montag, 29. Oktober 2012, 17:23

Heutiges Tagesziel: Anzeige welche und wie viel der Hardware erkannt wurde.
»The_Real_Black« hat folgende Dateien angehängt:
  • TestHWMapping.txt (9,5 kB - 7 mal heruntergeladen - zuletzt: 1. November 2012, 10:48)
  • Anzeige.jpg (29,19 kB - 13 mal heruntergeladen - zuletzt: 7. November 2012, 17:52)
Happy Coding

3

Montag, 29. Oktober 2012, 19:36

Cool... - aber bitte was hast du hier eigentlich getan?

4

Montag, 29. Oktober 2012, 20:57

Cool... - aber bitte was hast du hier eigentlich getan?

Soll ich irgendwas genaueres erklären oder nur allgemein?

Im 0x10c DevKit ist es z.B. möglich mehere LEM (Screens\Monitore) anzuschließen (nach den Optionen sogar bis zu 10 Monitore) deshalb habe ich eine Möglichkeit gesucht die Initialisierung dieser Hardware auch abzubilden. In den meisten Tutorials werden immer nur die benötigten Geräte angesprochen, daher gibt es auch keinen Code welcher alle aktuell verfügbaren Geräte ansteuert. Bis jetzt! Der letzte Code steuert bis zu 2 Monitore an und 2 Floppys die anderen Geräte werden als nur einfach ansteuerbar angenommen. Das letzte Programm soll auch die Möglichkeiten zeigen wie auf vom Screen Pixel Tool erzeugte Bilder weiter geschrieben werden kann. ok und nok (nicht ok) wird je nach dem ob die entsprechende Hardware erkannt wurde.

Wenn es wirklich mehr als ein Gerätetyp je Prozessor gibt muss man sich Gedanken machen wie diese Verwaltet und Angesteuert werden. Noch habe ich kein anderes Code Stück gesehen wie mehere Monitore verwaltet werden, da die meisten Online Emulatoren nur einen Monitor erlauben. Vorbereitet sein kann nicht schaden oder?


Edit:

Spoiler Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
	; Floppy 
	;ifn a, 0x24c5
	;	set pc, noFloppy
	;ifn b, 0x4fd5
	
;Name: HMD2043 - Harold Media Drive
;ID: 0x, version: 0x07c2
;Manufacturer: 0x21544948 (HAROLD_IT)
;Document version: 1.1
	ifn a, 0x4cae
		set pc, noFloppy
	ifn b, 0x74fa
	

Im DevKit sind noch alte bzw. Andere IDs für die Floppys gesetzt.
Was man mit 2 Floppys anfangen lässt? Zumindest eine Kopie von Disketten anfertigen ohne immer wechseln zu müssen ;)
Happy Coding

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »The_Real_Black« (29. Oktober 2012, 21:07)


5

Montag, 29. Oktober 2012, 21:10

In dem einen Test, waren auch mehrere Monitore zu sehen, auf denen aber das gleiche zu sehen war, also wird es wohl tatsächlich mehrere Monitore an einem Computer geben.

6

Montag, 29. Oktober 2012, 21:56

In dem einen Test, waren auch mehrere Monitore zu sehen, auf denen aber das gleiche zu sehen war, also wird es wohl tatsächlich mehrere Monitore an einem Computer geben.

Dass ist gut das gibt viele viele Möglichkeiten zB
Screen 1: Menü GUI
Screen 2: Stromverbrauch
Screen 3: Sensoren.
...
Auf allen Screens das gleiche anzeigen ist leicht -> alle Teilen sich den gleichen Video RAM im Speicher. So muss man nicht jeden Screen einzeln zeichnen.
Happy Coding

7

Dienstag, 30. Oktober 2012, 18:02

kleinere Verbesserungen:
- auf Monitor 1 wird eine Liste von erkannten Geräten angezeigt
- auf Monitor 2 wird ein Branding und ein Dummy Screen angezeigt.

-> Die Frunktionen zum Anzeigen von Text am Screen wurden verbessert
Es sind nun "Funktionen" welche auch bestimmte Parameter benötigen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
;
; Diese Funktion überträgt daten von Position y auf Position x
; mit einer Länge von Z Wird verwendet um an bestimmte Positionen
; Daten zu schreiben (VideoRam zB)
;
; x ist Video RAM!
; y ist der Speicher 
; z Anzahl der Stellen
; i ist ein offset
; Verändert Abcj 
:WriteYinxLenZ

Kurz um alle Register werden hier benötigt und verändert.

@All andere Entwickler: Im Moment ist der Aufrufer dafür verantwortlich die Register zu sichern und danach weider herzustellen! Der Aufgerufene ist dafür verantwortlich, dass der Stack wieder auf seiner alten Position steht... Auch habe ich ein paar Speicherpositionen gesetzt um Daten immer an diesen Positionen zu halten.
»The_Real_Black« hat folgende Datei angehängt:
Happy Coding

8

Mittwoch, 31. Oktober 2012, 18:46

Dynamisch ist es doch am besten... die Initialisierung der Monitore erfolgt nun über eine Liste. Somit kann unter den Einstellungen auch eine Monitor Anzahl von 10 eingestellt werden! Ein hoch auf das DevKit! Es wird nun die Liste und die Anzahl der erkannten Monitore gespeichert. Angezeigt wird im Moment abwechselnd Screen 1 und 2 siehe Bilder.

Sinn davon: Wenn man mehrere Monitore hat kann man ohne Anpassung sofort etwas anzeigen auch wenn es (im Moment) redundante Daten sind. Wenn eine Reihenfolge vorgegeben ist zB Screen1-> Menü 2->Energie Übersicht 3->Radar Man hat also 2 Montore und kauft sich einen neuen LEM -> hat man sofort das Radar als neue Ansicht...
»The_Real_Black« hat folgende Dateien angehängt:
Happy Coding

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »The_Real_Black« (31. Oktober 2012, 19:02)


10

Mittwoch, 7. November 2012, 17:57

Okeeeee ich hoffe eines Tages ne ganze ecke mehr zu verstehen als jetzt, ist mir irgendwie zu.... naja sagen iwr theorethisch :D

Ähnliche Themen