|
|
1.1 root 1: .ds ZZ DEVELOPMENT PACKAGE
2: .TH DMDLD 1 "630 MTG"
3: .SH NAME
4: dmdld \- 630 MTG application bootstrap loader
5: .SH SYNOPSIS
6: \f3dmdld [\f1 options \f3]\f1 file \f3[\f1 application - arguments \f3]\f1
7: .SH DESCRIPTION
8: The
9: .I dmdld
10: program downloads the named
11: .I file
12: from the host, for execution in the 630 MTG terminal's window connected
13: to its standard output. It can also be used to invoke
14: cached applications.
15: .PP
16: The \fIdmdld\fR program works in \fIlayers(1)\fR and non-layers environments.
17: In \fIlayers(1)\fR, the download runs on top of the existing \fIxt\fR error-correcting
18: protocol. In non-layers, \fIdmdld\fR temporarily puts the 630
19: MTG terminal into
20: \fIxt\fR protocol, and mimics that protocol from its side, thus insuring an error-free
21: download.
22: .PP
23: .I Dmdld
24: first asks the terminal if there is a cached application
25: of name
26: .I file
27: already in the terminal. The inquiry uses the filename
28: clipped from any pathname prefix.
29: If such an application exists and is
30: available, that application will be booted in the window without going
31: through the download sequence.
32: .PP
33: If a cached application of inquired filename
34: does not exist
35: in the terminal or is not available (see \fIcache(3L)\fR for reasons),
36: .I dmdld
37: will attempt to download
38: .I file
39: from the host.
40: Files to be downloaded by
41: .I dmdld
42: must be 630 object files created with
43: \fIdmdcc(1)\fR.
44: .PP
45: During compilation, \fIdmdcc(1)\fR looks for the programming environment identification
46: (PEID) number of all the library functions link-loaded, and assumes the highest number
47: as the PEID of the application. During the download initialization, \fIdmdld\fR
48: will send this number to the terminal. If the terminal's firmware version does not support
49: this PEID - in other words, the firmware does not have some new library functions used
50: by the application, the download will be aborted. The argument flag
51: .B \-f
52: will override this checking, but the sanity of the application (after being downloaded
53: and running) cannot be guaranteed.
54: .PP
55: The optional \f2application-arguments\f1 are also sent to the terminal in order to
56: initialize the parameters \fIargc\fR and \fIargv\fR of the function \fImain\fR
57: of the application.
58: .PP
59: During the download, the 630 mouse cursor will turn into a
60: "coffee cup" and the progress
61: of the download is shown by a gradual filling of the window with inverse video.
62: The code to be downloaded is relocated on-the-fly by \fIdmdld\fR to the
63: memory area allocated for it by the terminal.
64: If the download succeeds, the application will take over the
65: window and start execution.
66: .PP
67: The following options are supported by \fIdmdld\fR:
68: .TP
69: .B \-d
70: causes a printout of the download information on the
71: diagnostic output (standard error).
72: .TP
73: .B \-p
74: prints non-layers protocol statistics on the diagnostic output (standard error).
75: Note that this option forces the
76: .B \-d
77: option. In \fIlayers(1)\fR, this option is the same as the
78: .B \-d
79: option.
80: .TP
81: .B \-z
82: loads the process but does not run it.
83: The process can then be started using
84: .IR dmdpi (1).
85: This option works only under
86: .IR layers (1).
87: .TP
88: .B \-f
89: forces the download even if the programming environment identification
90: number of the application is not supported by the terminal it is downloaded
91: into.
92: .TP
93: .B \-n
94: is a null option, and is ignored by \f2dmdld\f1. It is used by
95: processes that want to fork \f2dmdld\f1 with a variable argument
96: option.
97: .TP
98: \f3\-Z\f1 \f2n\f1
99: overrides the inherent stack size of the download application and sets it
100: to \fIn\fR bytes. \fIN\fR must be greater than or equal to 2048, or else stack
101: size is defaulted to 2048. Inherent stack size of the download application
102: is specified through the -Z option of \fIdmdcc(1)\fR (or defaulted to 2048).
103:
104: .TP
105: .B \-T
106: loads an absolute file (already link-loaded to a fixed address)
107: such as a new version of the terminal's firmware into the terminal's RAM space.
108: This download is called a takeover (overlay) download because it will close all
109: physical ports except for the one running \fIdmdld\fR. The whole terminal screen
110: will turn blank, and will be gradually filled up with inverse video representing
111: the code being downloaded. When the download is finished, execution will begin at
112: the first address of \fIfile\fR. Relocation will be done by \fIdmdld\fR only if the
113: first address of \fIfile\fR is lower than the first available RAM address of the
114: terminal. This is necessary because low-addressed RAM is used to store the
115: terminal's system tables and variables, and overwriting them with the downloaded data
116: may put the terminal into undetermined states. The \f3\-N\f1
117: option can be used instead, if the relocation possibility is
118: not wanted.
119: .TP
120: .B \-N
121: loads an absolute file into the terminal's RAM space. The
122: difference between the \f3\-T\f1 and \f3\-N\f1 options is that
123: the \f3\-N\f1 does not relocate the absolute file. Therefore
124: the absolute file can be generated without relocation
125: information.
126: .PP
127: The \f3\-T\f1 and \f3\-N\f1 options only work in the
128: non-layers environment, and are exclusive of each other.
129: \
130: .PP
131: The environment variable
132: .B JPATH
133: is the analog of the shell's
134: .B PATH
135: variable to define a set of directories in which to search for
136: .IR file .
137: .TP
138: \s-1\f3NOTE\s+1\f1:
139: Standard error should be redirected when using the
140: .B \-d
141: or
142: .B \-p
143: options.
144: .SH EXAMPLE
145: Invoking the terminal resident \fBPF Edit\fR application using \fIdmdld\fR:
146: .br
147: .ti +4
148: .ft CM
149: dmdld "PF Edit"
150: .ft R
151: .PP
152: Invoking a \fIdmdcc(1)\fR compiled application:
153: .br
154: .ti +4
155: .ft CM
156: dmdld dmda.out
157: .ft R
158: .PP
159: Invoking a \fIdmdcc(1)\fR compiled application with the
160: .B \-d
161: flag, redirecting standard error to \fItemp\fR:
162: .br
163: .ti +4
164: .ft CM
165: dmdld -d dmda.out 2>temp
166: .ft R
167: .PP
168: Invoking a \fIdmdcc(1)\fR compiled application with \f2application-argument\f1:
169: .br
170: .ti +4
171: .ft CM
172: dmdld $DMD/lib/demolib/clock "`date`"
173: .ft R
174:
175: .SH SEE ALSO
176: cache(3L), dmdcc(1), dmdpi(1), jx(1).
177: .br
178: layers(1) in the
179: \fIUNIX System V Release 3 User's Reference Manual\fR.
180: .br
181: layers(1) in the \fI5620 Dot-Mapped Display Reference Manual\fR.
182:
183: .SH DIAGNOSTICS
184: .PP
185: The error message "\fIdmdld: ... is not compatible with terminal\fR"
186: means that the application the user attempts to
187: download cannot execute safely in the terminal because it calls
188: library routines which do not exist in the terminal's firmware version
189: (i.e. the programming environment ID of the application is "newer" than the
190: one supported
191: by the terminal). A firmware upgrade is necessary, or the user can force
192: the download by using the
193: .B \-f
194: flag.
195: .PP
196: The error messages "\fIdmdld: cannot access ...\fR" or "\fIdmdld: cannot open ...\fR"
197: appearing when the named \fIfile\fR is known to be in the cache, indicate that the
198: application is not available for booting, and \fIdmdld\fR cannot find or open the
199: named \fIfile\fR in the host.
200: .PP
201: The error message "\fIdmdld: no memory in terminal\fR" indicates
202: that the terminal has run out of memory to accept the download. The user may
203: free up memory (by deleting windows, etc..) and re-try.
204: .PP
205: Other error messages are self-explanatory.
206:
207: .SH BUGS
208: The \f2application-arguments\f1 are not sent to the terminal
209: to update \fIargc\fR and \fIargv\fR if the named
210: \fIfile\fR is found in the terminal's application cache.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.