hardware:doku:techrefguide:anhangc
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hardware:doku:techrefguide:anhangc [26/07/2007 23:07] – ergänzt. uxt | hardware:doku:techrefguide:anhangc [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Zur Illustrierung einer Atari Portfolio typischen Erweiterung haben wir eine Erweiterung entwickelt die eine LED bei jedem System-Tick aufleuchten lässt. Um dem Benutzer die Funktionsweise transparent darstellen zu können haben wir eine ROM-Extension verwendet.\\ | Zur Illustrierung einer Atari Portfolio typischen Erweiterung haben wir eine Erweiterung entwickelt die eine LED bei jedem System-Tick aufleuchten lässt. Um dem Benutzer die Funktionsweise transparent darstellen zu können haben wir eine ROM-Extension verwendet.\\ | ||
+ | |||
=== SPEZIFIKATIONEN DER ERWEITERUNG === | === SPEZIFIKATIONEN DER ERWEITERUNG === | ||
Zeile 8: | Zeile 9: | ||
* mit einer PID von 64H | * mit einer PID von 64H | ||
* mit sämtlicher Software auf einem Extension-ROM | * mit sämtlicher Software auf einem Extension-ROM | ||
- | * Nur bei eingeschaltenem | + | * Nur bei eingeschaltetem |
* als Terminating Peripheral | * als Terminating Peripheral | ||
- | * Erweiterung schaltet sich mit ausgeschaltener | + | * Erweiterung schaltet sich mit ausgeschalteter |
=== Hardwareentwicklung (siehe Schaltplan und Abschnitte 2.6 und 2.7) === | === Hardwareentwicklung (siehe Schaltplan und Abschnitte 2.6 und 2.7) === | ||
- | * es ist eine Dekodierlogik vorhanden um die PID in 807FH einzulesen. (Da es nicht nötig ist festzustellen ob die LED an ist, wird der Latch für eienen | + | * es ist eine Dekodierlogik vorhanden um die PID in 807FH einzulesen. (Da es nicht nötig ist festzustellen ob die LED an ist, wird der Latch für einen Schreibvorgang in 807FH dekodiert um Dekodier-Logik zu sparen.) |
* jeder weitere Schreibvorgang in 807FH schaltet die LED ein oder aus | * jeder weitere Schreibvorgang in 807FH schaltet die LED ein oder aus | ||
* Wenn der Latch gesetzt ist leuchtet die LED | * Wenn der Latch gesetzt ist leuchtet die LED | ||
* Wenn der Latch zurückgesetzt wird geht die LED aus | * Wenn der Latch zurückgesetzt wird geht die LED aus | ||
- | * Die Schaltung wird von 5VS gespeißt | + | * Die Schaltung wird von 5VS gespeist |
* Die Puffersignale ABUF/BBUF und PDET werden ebenfalls benutzt | * Die Puffersignale ABUF/BBUF und PDET werden ebenfalls benutzt | ||
+ | |||
Zeile 28: | Zeile 31: | ||
* Jeder Aufruf von Int 1CH wird durch Schreiben in I/O 807FH die LED ein- oder ausschalten | * Jeder Aufruf von Int 1CH wird durch Schreiben in I/O 807FH die LED ein- oder ausschalten | ||
* Das TSR deinstalliert sich selbst wenn die Erweiterung entfernt wird | * Das TSR deinstalliert sich selbst wenn die Erweiterung entfernt wird | ||
- | * Es wird vorausgesetzt, | + | * Es wird vorausgesetzt, |
Zeile 38: | Zeile 41: | ||
+ | {{: | ||
Zeile 246: | Zeile 249: | ||
end xrom_main | end xrom_main | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
- | </code> | + | < |
+ | ; | ||
+ | ; ; | ||
+ | ; | ||
+ | ; | ||
+ | ; ; | ||
+ | ; DIP Pocket PC ROM Extension DEMO program ; | ||
+ | ; ; | ||
+ | ; ; | ||
+ | ; A ROM extension may be run from a Credit Card Memory ; | ||
+ | ; or an Extension ROM. ; | ||
+ | ; ; | ||
+ | ; The Extension code must preserve ALL registers! ; | ||
+ | ; ; | ||
+ | ; The Pre-BIOS vector MUST return by a FAR JMP to ; | ||
+ | ; 0FFFE:0, as no stack is set up at this stage ; | ||
+ | ; ; | ||
+ | ; | ||
+ | |||
+ | name XROM | ||
+ | |||
+ | assume cs: | ||
+ | |||
+ | LF equ 0aH ; | ||
+ | CR equ 0dH ; | ||
+ | |||
+ | BIOX equ 0aa55H ; | ||
+ | DOSX equ 055aaH ; | ||
+ | BIDO equ 05555H ; | ||
+ | |||
+ | cseg segment | ||
+ | |||
+ | org 0H ; | ||
+ | |||
+ | xrom_main label near | ||
+ | |||
+ | bixt_type dw BIOX ; | ||
+ | |||
+ | bixt_size db 0 ; | ||
+ | |||
+ | org 3H | ||
+ | bixt_gbio label byte ; | ||
+ | bixt_gdos label byte ; | ||
+ | jmp genx_vect ; | ||
+ | |||
+ | org 40H | ||
+ | bixt_user label byte ; | ||
+ | db ' | ||
+ | |||
+ | org 50H | ||
+ | bixt_preb: | ||
+ | |||
+ | org 55H | ||
+ | bixt_bext: | ||
+ | |||
+ | org 5aH | ||
+ | bixt_pdos: | ||
+ | |||
+ | org 5fH | ||
+ | bixt_dext: | ||
+ | |||
+ | org 64H | ||
+ | bixt_ados: | ||
+ | |||
+ | org 69H | ||
+ | bixt_pwdn: | ||
+ | |||
+ | org 6eH | ||
+ | bixt_pwup: | ||
+ | |||
+ | xrom_proc proc FAR | ||
+ | |||
+ | ; | ||
+ | |||
+ | genx_vect label near | ||
+ | |||
+ | push bp ; | ||
+ | |||
+ | cmp cs: | ||
+ | jne not_genb ; | ||
+ | |||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | not_genb: | ||
+ | cmp cs: | ||
+ | jne not_gend ; | ||
+ | |||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | not_gend: | ||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | |||
+ | |||
+ | preb_vect label near | ||
+ | |||
+ | jmp dword ptr cs: | ||
+ | |||
+ | preb_retn dw 0 | ||
+ | dw 0fffeH | ||
+ | |||
+ | bext_vect label near ; | ||
+ | |||
+ | push bp | ||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | |||
+ | pdos_vect label near ; | ||
+ | |||
+ | push bp | ||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | |||
+ | dext_vect label near ; | ||
+ | |||
+ | push bp | ||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | |||
+ | ados_vect label near ; | ||
+ | |||
+ | push bp | ||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | |||
+ | pwdn_vect label near ; | ||
+ | |||
+ | push bp | ||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | |||
+ | pwup_vect label near ; | ||
+ | |||
+ | push bp | ||
+ | mov bp, | ||
+ | jmp short xrom_disp | ||
+ | |||
+ | xrom_disp label near ; | ||
+ | |||
+ | push ax ; | ||
+ | push bx | ||
+ | push cx | ||
+ | push dx | ||
+ | push es | ||
+ | |||
+ | call disp_text ; | ||
+ | |||
+ | mov ax, | ||
+ | int 61H | ||
+ | |||
+ | or dl, | ||
+ | jnz not_norm ; | ||
+ | |||
+ | mov bp, | ||
+ | jmp short stat_disp | ||
+ | not_norm: | ||
+ | dec dl ; | ||
+ | jnz not_drva ; | ||
+ | |||
+ | mov bp, | ||
+ | jmp short stat_disp | ||
+ | not_drva: | ||
+ | dec dl ; | ||
+ | jnz not_drvb ; | ||
+ | |||
+ | mov bp, | ||
+ | jmp short stat_disp | ||
+ | not_drvb: | ||
+ | dec dl ; | ||
+ | jnz not_xrom ; | ||
+ | |||
+ | mov bp, | ||
+ | jmp short stat_disp | ||
+ | not_xrom: | ||
+ | mov bp, | ||
+ | stat_disp: | ||
+ | call disp_text ; | ||
+ | |||
+ | mov bp, | ||
+ | call disp_text | ||
+ | |||
+ | pop es ; | ||
+ | pop dx | ||
+ | pop cx | ||
+ | pop bx | ||
+ | pop ax | ||
+ | pop bp | ||
+ | |||
+ | ret ; | ||
+ | |||
+ | xrom_proc endp | ||
+ | |||
+ | ; | ||
+ | ; ; | ||
+ | ; Main Display routine ; | ||
+ | ; ; | ||
+ | ; | ||
+ | |||
+ | disp_text proc near | ||
+ | |||
+ | xor bh, | ||
+ | mov ah, | ||
+ | int 10H | ||
+ | |||
+ | push cs ; | ||
+ | pop es | ||
+ | |||
+ | xor ch, | ||
+ | mov cl, | ||
+ | inc bp ; | ||
+ | |||
+ | mov ax, | ||
+ | int 10H | ||
+ | |||
+ | ret | ||
+ | |||
+ | disp_text endp | ||
+ | |||
+ | gbio_text db gdos_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | gdos_text db bext_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | bext_text db pdos_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | pdos_text db dext_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | dext_text db ados_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | ados_text db pwdn_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | pwdn_text db pwup_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | pwup_text db norm_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | norm_text db drva_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | drva_text db drvb_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | drvb_text db xrom_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | xrom_text db invl_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | invl_text db crlf_text-$-1 | ||
+ | db ' | ||
+ | |||
+ | crlf_text db 2, | ||
+ | |||
+ | cseg ends | ||
+ | end xrom_main | ||
+ | |||
+ | </ | ||
hardware/doku/techrefguide/anhangc.1185485902.txt.gz · Zuletzt geändert: 16/02/2024 17:02 (Externe Bearbeitung)