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 224: | Zeile 224: | ||
| </ | </ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| \\ | \\ | ||
| \\ | \\ | ||
| Zeile 262: | Zeile 265: | ||
| </ | </ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | |||
| + | <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.1185477535.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
