MagicPC :mec1-Scnittstelle Im Wesentlichen ist das folgende eine HTML-Aufarbeitung der Originaldokumentation von ASH 1) Konzept Die mec1-Schnittstelle ermöglicht es, im Motorola-Code von Emulator vorgebenene Funktionen aufrufen. Sie entspricht der mec0-Schnittstelle; die Funktionen sind jedoch nicht in einer DLL frei definierbar, sondern schon vom Emulator vorgegeben. Aufruf: dc.w $43bf,$0031 ruft die mec1-Funktion mit der Nummer 0x31 auf. ($43bf ist der Opcode für chk <ea>,D1, mit <ea> = 111111 binär, also ungültig). 2) Die Funktionen $0001: long emu_version: Parameter: keine return: d0: Versions-Nummer $0002: long emu_enquire: Ermittelt Verschiedenes. Parameter: long d0: was willst Du wissen? return: long d0: Wert bisher definiert: $0003: void emu_getexepath: Ermittelt vollen Pfad (incl. Laufwerk, ohne MAGIC_PC.EXE) Parameter: a0: char *bufadr (Buffer) $0004: int emu_install_newvdi: Parameter: a0: Byte *bufadr (neuer Inhalt von NVDI_PC.DLL) NVDI_PC.DLL, wie besprochen. $0010: void dw_addline: ! ab 03.97 Text in neuer Zeile im Debug-Fenster ausgeben Parameter: a0: Zeiger auf den Text. $0011: void dw_addtext: ! ab 03.97 Text im Debug-Fenster ausgeben Parameter: a0: Zeiger auf den Text. $0011: void dw_formtxt: ! ab 03.97 Text sprintf-like im Debug-Fenster ausgeben Parameter: a0: Zeiger auf den Format-String
printer_open öffnet den Standarddrucker und beginnt ein neues Dokument Parameter: a0: char *DocName (NULL-Pointer erlaubt) $0032: int printer_close ! ab 03.97 printer_close beendet das zuvor geöffnete Dokument und schließt den Drucker Parameter: keine return: d0>0: alles klar $0033: int printer_write ! ab 03.97 Parameter: a0: Byte *pData; // Zeiger auf den DatenBuffer return: d0: übertragene Bytes. $0040: DWORD getTickCount ! ab 03.97 return: d0: TickCount (msec seit Start des Rechners) $0041: DWORD getDrivePath ! ab 02.99 Die Funktion ermittelt den Windows-Pfad für ein Magic-Laufwerk. Parameter: d0: DriveNr (0 für A:, 1 für B:, ...) return: d0: 0: nicht gefunden, $0042: DWORD setClipboardDir ! ab 02.99 Parameter: a0: char *pPath // NULL: auf Default setzen return: d0: 1 Beispiel: movea.l stringadr,a0 * $0043: long getMouseWheel Parameter: d0.l: 1: Position nach dem Auslesen zurücksetzen Beispiel: moveq #1,d0 * Position nach dem Auslesen zurücksetzen $0045: long setCompiler ! ab 17.06.99 Parameter: d0.l: Auswahl, im Moment realisert:
|