hardware:doku:techrefguide:anhanga
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hardware:doku:techrefguide:anhanga [26/07/2007 21:07] – ergänzt. uxt | hardware:doku:techrefguide:anhanga [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
===== ANHANG A: .RUN PROGRAMM BEISPIEL ===== | ===== ANHANG A: .RUN PROGRAMM BEISPIEL ===== | ||
- | Abschnitt 3.6 hebt die wichtigsten Entwicklungsbedingungen hervor, die zu berücksichtigen sind wenn man .RUN Programme schreibt.\\ | + | Abschnitt |
Auf der Emulator-Diskette befinden sich folgende Dateien:\\ | Auf der Emulator-Diskette befinden sich folgende Dateien:\\ | ||
Zeile 19: | Zeile 19: | ||
Bemerkungen bezüglich der Verbindung zwischen " | Bemerkungen bezüglich der Verbindung zwischen " | ||
- | Für " | + | Für " |
RU_C.ASM ist der Header der für die Verbindung zu einem " | RU_C.ASM ist der Header der für die Verbindung zu einem " | ||
Zeile 25: | Zeile 25: | ||
Der RU_C.ASM Header funktioniert mit Turbo C und kann als Leitfaden zur Modifikation anderer " | Der RU_C.ASM Header funktioniert mit Turbo C und kann als Leitfaden zur Modifikation anderer " | ||
- | Die meisten " | + | Die meisten " |
- | Kontaktieren sie Atari bezüglich RUN Starup | + | Kontaktieren sie Atari bezüglich RUN Startup |
\\ | \\ | ||
\\ | \\ | ||
Zeile 223: | Zeile 223: | ||
end rnrn_main | end rnrn_main | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | <code C> | ||
+ | /* MAIN.C | ||
+ | |||
+ | Copyright DIP Ltd, 1989 | ||
+ | |||
+ | DIP Pocket PC RUN file ' | ||
+ | */ | ||
+ | |||
+ | char buf[2]; | ||
+ | |||
+ | char *str=" | ||
+ | |||
+ | unsigned int __brklvl; | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | puts(str); | ||
+ | |||
+ | buf[0]=' | ||
+ | buf[1]=0; | ||
+ | |||
+ | puts(& | ||
+ | |||
+ | return(0); | ||
+ | } | ||
+ | |||
+ | void _exit() | ||
+ | /* | ||
+ | Dummy exit function required for the Turboc libraries. | ||
+ | */ | ||
+ | {} | ||
</ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | <code asm> | ||
+ | |||
+ | TITLE RU_C.ASM | ||
+ | |||
+ | comment * | ||
+ | Copyright DIP Ltd., 1989 | ||
+ | |||
+ | ' | ||
+ | |||
+ | Memory usage: | ||
+ | |||
+ | -------------------------------------------- High memory ------- | ||
+ | SP: Stack | ||
+ | ---------------------------------------------------------------- | ||
+ | Uninitialised data | ||
+ | ---------------------------------------------------------------- | ||
+ | DS/ | ||
+ | ---------------------------------------------------------------- | ||
+ | ES: PSP | ||
+ | -------------------------------------------- Low memory -------- | ||
+ | * | ||
+ | |||
+ | ; | ||
+ | |||
+ | ; code and fixed data (less than 64k). | ||
+ | _TEXT | ||
+ | _TEXT ENDS | ||
+ | |||
+ | ; code ends (marker segment) | ||
+ | _TEXTEND | ||
+ | _TEXTEND | ||
+ | |||
+ | ; initialised data transferred into RAM. | ||
+ | _DATA | ||
+ | _DATA ENDS | ||
+ | |||
+ | ; uninitialised data which is allocated space in RAM. | ||
+ | _BSS SEGMENT WORD PUBLIC ' | ||
+ | _BSS ENDS | ||
+ | |||
+ | ; uninitialised data end (marker segment). | ||
+ | _BSSEND SEGMENT BYTE PUBLIC ' | ||
+ | _BSSEND ENDS | ||
+ | |||
+ | DGROUP GROUP _DATA, | ||
+ | |||
+ | ASSUME | ||
+ | |||
+ | extrn _main: | ||
+ | |||
+ | STACKSIZE equ 128 ; | ||
+ | |||
+ | ; At the start, SS, DS and ES all point to the program segment prefix. | ||
+ | ; CS is a ptr into the memory card. | ||
+ | |||
+ | _TEXT | ||
+ | |||
+ | org 0 ; ip is zero on entry. | ||
+ | |||
+ | start proc near ; | ||
+ | ; terminate. | ||
+ | |||
+ | mov dx, | ||
+ | add dx,10h | ||
+ | mov ds,dx | ||
+ | |||
+ | mov bx, | ||
+ | add bx, | ||
+ | |||
+ | push bx ; | ||
+ | |||
+ | shr bx,1 | ||
+ | shr bx,1 | ||
+ | shr bx,1 | ||
+ | shr bx,1 | ||
+ | add bx, | ||
+ | |||
+ | mov ah,4ah | ||
+ | int 21h ; | ||
+ | jc abort ; | ||
+ | |||
+ | pop bx ; get calc'd p back. | ||
+ | mov ax,ds | ||
+ | mov ss, | ||
+ | mov sp,bx | ||
+ | |||
+ | push ds | ||
+ | pop es ; target is allocated RAM after PSP. | ||
+ | |||
+ | push cs | ||
+ | pop ds ; source is memory card. | ||
+ | |||
+ | mov si, offset _TEXT: | ||
+ | add si, 0Fh ; round up to 1st byte in data. | ||
+ | and si, 0FFF0h ; data is para aligned on the card. | ||
+ | ; ds:si is ptr to start of init data. | ||
+ | xor di, | ||
+ | ; es:di is ptr to alloc' | ||
+ | mov cx, offset DGROUP: | ||
+ | inc cx ; round up: ensure last byte is copied. | ||
+ | shr cx,1 | ||
+ | |||
+ | cld | ||
+ | rep movsw ; | ||
+ | |||
+ | push es | ||
+ | pop ds ; DS back to ptr to RAM. | ||
+ | |||
+ | mov di, | ||
+ | mov cx, | ||
+ | sub cx, | ||
+ | xor al, | ||
+ | rep stosb | ||
+ | |||
+ | call _main ; | ||
+ | |||
+ | mov ah, | ||
+ | int 21h | ||
+ | |||
+ | abort: | ||
+ | mov ax, | ||
+ | int 21h | ||
+ | start endp | ||
+ | |||
+ | _TEXT ENDS | ||
+ | |||
+ | |||
+ | _TEXTEND | ||
+ | etext label byte ; | ||
+ | _TEXTEND | ||
+ | |||
+ | _DATA | ||
+ | public _errno | ||
+ | _errno dw 0 | ||
+ | _DATA ENDS | ||
+ | |||
+ | _BSS SEGMENT | ||
+ | bdata label | ||
+ | _BSS ENDS | ||
+ | |||
+ | _BSSEND SEGMENT | ||
+ | edata label | ||
+ | _BSSEND ENDS | ||
+ | |||
+ | end start | ||
+ | </ | ||
+ | |||
+ |
hardware/doku/techrefguide/anhanga.1185477324.txt.gz · Zuletzt geändert: 16/02/2024 17:02 (Externe Bearbeitung)