Buchempfehlung
Visual Basic 6 Kochbuch
Visual Basic 6 Kochbuch
Viele praktische Tipps zum Programmieren mit Visual Basic 6, die sich oft auch auf FB übertragen lassen. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Konzept für einen Konsolenemulator

Uploader:MitgliedWestbeam
Datum/Zeit:29.08.2012 21:29:44

'Ein kleines Konzept für einen Konsolen Emulator, lässt sich auf alle Spielekonsolen übertragen

Dim Shared As Integer cpu_register(8)       'Register
Dim Shared As Integer cpu_halt          'Ist die CPU auf Stop oder nicht?
Dim Shared As Integer cpu_ie                'Interrupt Enable(falls cpu_ie=1 dann wird Interrupt ausgeführt)
Dim Shared As Integer cpu_pc                'Program Counter

Declare Sub cpu_interrupt()             'Interrupt ausführen
Declare Sub cpu_opcode(opcode As Integer) 'Opcode ausführen

Dim Shared As Integer memory(8192)      '8 KB Speicher
Dim Shared As Integer vram(128)         '128 Byte Video RAM
Dim Shared As Integer rram(8192)            '8 KB ROM Speicher(für die Spiele)

Declare Sub memory_writebyte(adr As Integer,value As Integer)
Declare Function memory_readbyte(adr As Integer)As Integer

While (cpu_halt=0)                          'Solange die CPU nicht auf Stop ist
    'Hauptschleife
Wend

Sub cpu_interrupt()
    If cpu_ie=1 Then                        'Wird ein Interrupt ausgeführt?
        'Interrupts
    End If
End Sub

Sub cpu_opcode(opcode As Integer)
    Select Case opcode
        Case &h01
            'Führe Opcode 1 aus
        Case &h02
            'Führe Opcode 2 aus
        Case Else
            Print "Opcode unbekannt"
            End
    End Select
End Sub

Sub memory_writebyte(adr As Integer,value As Integer)
    memory(adr)=value                       'Wert an die Adresse "adr" schreiben
End Sub

Function memory_readbyte(adr As Integer)As Integer
    Return memory(adr)                      'Wert an der Adresse "adr" lesen
End Function