-
Notifications
You must be signed in to change notification settings - Fork 4
/
ABOUT.txt
288 lines (195 loc) · 8.23 KB
/
ABOUT.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
Zach Zwergel 2014-09-05 21:50:16 UTC
Hi,
I would like to know If it is possible to port the C source of CP/M-68k
to i386. Is it possible? If it is, What would it take to make a bootable
floppy image (QEMU)?
--
Best Regards,
Zach Z.
--Born in the 1990s, but like older computers!--
--- news://freenews.netfront.net/ - complaints: ***@netfront.net ---
Roger Ivie 2014-09-06 00:06:15 UTC
Post by Zach Zwergel
I would like to know If it is possible to port the C source of CP/M-68k
to i386. Is it possible?
Ought to be. I've run it on VAX, ARM, and Cortex-M3.
Post by Zach Zwergel
If it is, What would it take to make a bootable floppy image (QEMU)?
Quite a bit of work. Remember that an x86 boots into real mode, so you
need some 8086 code to set up the processor model and jump into 386
mode. I've never done it, so I don't know everything that's involved.
--
roger ivie
***@ridgenet.net
Zach Zwergel 2014-09-06 00:44:17 UTC
Hi Roger Ivie!
I knew that. I would also like to use GCC to complile it. I have tried
using your "Exchange" program as a stating point. I do not understand
how to link it so that I can boot it using GRUB and the MULTIBOOT
Specification.
Any advice would be appreciated!
P.S. is there also a way to run it on the Raspberry PI?
--
Best Regards,
Zach Z.
--Born in the 1990s, but like older computers!--
--- news://freenews.netfront.net/ - complaints: ***@netfront.net ---
Roger Ivie 2014-09-06 06:03:08 UTC
Post by Zach Zwergel
I would also like to use GCC to complile it. I have tried
using your "Exchange" program as a stating point. I do not understand
how to link it so that I can boot it using GRUB and the MULTIBOOT
Any advice would be appreciated!
I know nothing about GRUB and the MULTIBOOT specification, so I can't
help you.
Exchange was never intended to be a standalone OS; it was a
proof-of-concept answering the question "how hard would it be
to make CP/M-68K go through GCC?"
My Cortex-M3 port would be a better starting point; it's several
generations along and I've done a better job of splitting out the
architecture- and system-dependent portions of the code. I have
a device driver scheme for console and disk drivers; the Cortex-M3
port is the ARM port with console and disk drivers for the LM3S9D92
(where "disk" means the processor's internal flash) and one assembly
file to fiddle with the stack pointer.
The ARM port has run on a larger machine, the ill-fated HawkBoard, but
that was quite some time ago, before I cleaned up the driver model.
Of course, what the Cortex-M3 port primarily lacks is documentation...
Post by Zach Zwergel
P.S. is there also a way to run it on the Raspberry PI?
Not at the moment, no. I'd like to, someday, but given that I made zero
progress on the Arduino Due port over the summer (my Cortex-M3 port
runs on the LM3S9D92, not the chip used in the Arduino Due), I would
suggest not holding your breath.
--
roger ivie
***@ridgenet.net
Zach Zwergel
2014-09-06 14:26:42 UTC
Post by Roger Ivie
Post by Zach Zwergel
I would also like to use GCC to complile it. I have tried
using your "Exchange" program as a stating point. I do not understand
how to link it so that I can boot it using GRUB and the MULTIBOOT
Specification.
Any advice would be appreciated!
I know nothing about GRUB and the MULTIBOOT specification, so I can't
help you.
I can look this up for myself.
Post by Roger Ivie
Exchange was never intended to be a standalone OS; it was a
proof-of-concept answering the question "how hard would it be
to make CP/M-68K go through GCC?"
I wasn't sure of that. So basically, It was just showing how to hack it
into going through a modern C compiler.
Post by Roger Ivie
My Cortex-M3 port would be a better starting point; it's several
generations along and I've done a better job of splitting out the
architecture- and system-dependent portions of the code. I have
a device driver scheme for console and disk drivers; the Cortex-M3
port is the ARM port with console and disk drivers for the LM3S9D92
(where "disk" means the processor's internal flash) and one assembly
file to fiddle with the stack pointer.
The ARM port has run on a larger machine, the ill-fated HawkBoard, but
that was quite some time ago, before I cleaned up the driver model.
Of course, what the Cortex-M3 port primarily lacks is documentation...
That would also be useful.
Post by Roger Ivie
Post by Zach Zwergel
P.S. is there also a way to run it on the Raspberry PI?
Not at the moment, no. I'd like to, someday, but given that I made zero
progress on the Arduino Due port over the summer (my Cortex-M3 port
runs on the LM3S9D92, not the chip used in the Arduino Due), I would
suggest not holding your breath.
So, basically, It would be writing drivers for the correct hardware such
as the VGA board and a diskette drive. Is that right?
--
Best Regards,
Zach Z.
--Born in the 1990s, but like older computers!--
--- news://freenews.netfront.net/ - complaints: ***@netfront.net ---
Roger Ivie
2014-09-06 18:52:25 UTC
Post by Zach Zwergel
So, basically, It would be writing drivers for the correct hardware such
as the VGA board and a diskette drive. Is that right?
You'd also need to do the assembly bit that fiddles with the stack
pointer.
But, mostly, you'd have to decide if you want the system to work the way
I like it. It's CP/M-80ish in that a loaded program is passed a pointer
to the base page, which includes a function pointer back into the
system. CP/M-68K traditionally used a software interrupt to make system
calls. My Cortex-M3 port, like CP/M-80, doesn't require interrupts.
Give me the weekend to spiff up a few things and I'll post it somewhere
you can download it and poke through it.
Like I said, there's no documentation.
--
roger ivie
***@ridgenet.net
Zach Zwergel
2014-09-06 19:26:44 UTC
Post by Roger Ivie
Post by Zach Zwergel
So, basically, It would be writing drivers for the correct hardware such
as the VGA board and a diskette drive. Is that right?
You'd also need to do the assembly bit that fiddles with the stack
pointer.
Do you mean initialize the SP?
Post by Roger Ivie
But, mostly, you'd have to decide if you want the system to work the way
I like it. It's CP/M-80ish in that a loaded program is passed a pointer
to the base page, which includes a function pointer back into the
system. CP/M-68K traditionally used a software interrupt to make system
calls. My Cortex-M3 port, like CP/M-80, doesn't require interrupts.
I know that there is something called the IDT in X86 Protected mode. I
think the i386 Flat mode (aka. Unreal) would also be a good idea.
Post by Roger Ivie
Give me the weekend to spiff up a few things and I'll post it somewhere
you can download it and poke through it.
Like I said, there's no documentation.
Thank you very much in advance!
--
Best Regards,
Zach Z.
--Born in the 1990s, but like older computers!--
--- news://freenews.netfront.net/ - complaints: ***@netfront.net ---
Roger Ivie 2014-09-08 04:48:48 UTC
You'd also need to do the assembly bit that fiddles with the stack
pointer.
Do you mean initialize the SP?
Well, initialize the SP and call a function on the new stack.
Give me the weekend to spiff up a few things and I'll post it somewhere
you can download it and poke through it.
Thank you very much in advance! You can Email it to me or post it on
this group.
Enjoy!
--
roger ivie
***@ridgenet.net
Zachzwergel15@hotmail.com 2016-08-11 01:47:39 UTC
You'd also need to do the assembly bit that fiddles with the stack
pointer.
Do you mean initialize the SP?
Well, initialize the SP and call a function on the new stack.
Give me the weekend to spiff up a few things and I'll post it somewhere
you can download it and poke through it.
Thank you very much in advance! You can Email it to me or post it on
this group.
Enjoy!
--
roger ivie
Hi,
It's been a very long time since I looked at this. I am thinking of giving
it another try.
r***@gmail.com 2016-08-11 13:47:39 UTC
Post by ***@hotmail.com
It's been a very long time since I looked at this. I am thinking of giving
it another try.
Never got around to getting my web server back up after the big meltdown
it had over the holidays. E-mail me and I'll see if I can figure out how
to get gmail to let me send you a copy. The .zip file containing my
Cortex-M3 port is about 680K.
It is, naturally, short on documentation.
--
roger ivie
***@gmail.com