forked from larsbrinkhoff/lbForth
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGEMDOS.TXT
2969 lines (1477 loc) · 81.5 KB
/
GEMDOS.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
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
r
ATARI GEMDOS
-
REFERENCE MANUAL
April 4, 1986
TABLE OF CONTENTS
Introduction
Calling GEMDOS
File Naming
File Operations
Processes
Extended Vectors
Error Handling
GEMDOS Calls
Executable File Format
Disk Structure
~/text/gemdos/intro Introduction ( 1 )
_I_N_T_R_O_D_U_C_T_I_O_N
________________________________
| THIS IS A PRELIMINARY DOCUMENT|
| AND IT DOES NOT CLAIM TO |
| PERFECTLY DESCRIBE REALITY |
| (or even GEMDOS). PLEASE |
| REPORT BUGS AND TYPOS TO |
||_________A_T_A_R_I_.___T_H_A_N_K_S_!________|_|
This is the Atari GEMDOS User's Manual. It describes
the internals and use of GEMDOS on the Atari ST. This
manual is divided into three parts; a tutorial and introduc-
tion for beginning users, a reference manual for application
writers, and appendices for GEMDOS wizards.
The GEMDOS Tutorial is a gentle introduction to the
basics of GEMDOS. Its intention is to get beginning users
started as quickly as possible. It gives example programs,
designed to exercise most of GEMDOS, which combine into a
simple commandline interface, or "shell". The tutorial also
covers common pitfalls and useful shortcuts.
The GEMDOS Reference Manual is the application-writer's
bible. It covers GEMDOS' calling conventions, file and han-
dle manipulation, process execution, and every GEMDOS call.
The Appendices contain nitty-gritty details and hints
for those who have to push GEMDOS to the limit. They are
for application writers (and the merely curious) who have
"need to know" about obscurities in the system.
To use this manual effectively readers should be fami-
liar with C and 68000 assembly language. Familiarity with
MSDOS, Unix[1], and the standard C runtime library will also
help.
____________________
[1] Unix ist ein eingetragenes Warenzeichen der Bell La-
boratories.
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/calling Calling GEMDOS ( 1 )
_C_A_L_L_I_N_G _C_O_N_V_E_N_T_I_O_N_S
GEMDOS uses the Alcyon (or Digital Research) C calling
conventions. Note that these conventions may differ from
other 68000 C compilers. If you are using another C com-
piler it might not be possible to call GEMDOS directly;
please check your compiler's documentation for compatibil-
ity.
Arguments are pushed on the stack, in reverse order of
their declaration. The GEMDOS function number is pushed
last, as a WORD. To do the call to GEMDOS, a 68000 "TRAP
#1" instruction is executed. The trap can be made with the
68000 in user or supervisor mode.
NOTE
Applications running in supervisor mode may be
forced back into user mode after making a GEM AES
call.
Stack Snapshot
(Just Before a GEMDOS Trap)
______________________________
|__s_t_a_c_k_|_________c_o_n_t_e_n_t_s_______|
| (sp)| WORD function number|
| 2(sp)| argument 1 |
| X(sp)| argument 2 |
| Y(sp)| argument 3 |
| .| . |
| .| ... and so on ... |
| .| . |
|_______|_______________________|
Results are returned in D0. Registers D0-D2 and A0-A2
can be modified; registers D3-D7 and A3-A7 will always be
preserved. The caller is responsible for popping the argu-
ments (including the function number) off of the stack after
the call.
The Alcyon C compiler does not generate TRAP instruc-
tions, so most applications use a small assembly-language
binding. It typically looks like:
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/calling Calling GEMDOS ( 2 )
_________________________________________________________
| text |
| *+ |
| * GEMDOS binding for Alcyon C |
| * |
| * NOTE: |
| * This binding is NOT re-entrant, and cannot |
| * be shared by foreground and interrupt code. |
| * |
| *- |
| .globl _gemdos |
| _gemdos: |
| move.l (sp)+,t1sav ; save ret addr |
| trap #1 ; call GEMDOS |
| move.l t1sav,-(sp) ; restore ret addr |
| rts ; do "real" return |
| |
| bss |
| t1sav: ds.l 1 ; saved ret addr |
||________________________________________________________|_|
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/filenames File Names ( 1 )
_F_I_L_E_N_A_M_E_S
A filename consists of a drive specification followed
by a pathname and a simple filename. A drive specification
consists of a single letter, A through P, followed by a
colon; if the specification is missing, the default drive is
used. A pathname consists of a list of simple filenames
separated with backslashes. If the pathname starts with a
backslash it is anchored in the root directory, otherwise it
is anchored in the current directory. If the pathname is
missing, the current directory is used. A simple filename
consists of one to eight characters, optionally followed by
a period and zero to three more characters.
Legal characters in filenames and pathnames include the
alphabet (A-Z), digits (0-9), and most punctuation.
Periods, colons, backslashes, slashes, question-marks,
asterisks, control characters (including NULs), and charac-
ters greater than 0x7f may never appear in filenames.
Lowercase letters are converted to uppercase.
A full file specification may not exceed 125 charac-
ters.
_______________________________
|__L_e_g_a_l__C_h_a_r_a_c_t_e_r_s__i_n__F_i_l_e_n_a_m_e_s_|
| letters A-Z, a-z |
| numbers 0-9 |
| _ (underscore) |
| ! @ # $ % ^ & ( ) |
| + - = ~ ` ; ' " , |
| < > | [ ] { } |
|_______________________________|
In a pathname, "." refers to the current directory and
".." refers to the current directory's parent directory.
Thus, the paths:
"..\..\foo"
and
".\.\.\.\.\.\..\.\.\..\.\foo"
refer to the same file two directories up from the current
one. (There is no parent directory at the root.)
There are three character devices. Only the calls
Fread(), Fwrite() Fopen(), Fcreate(), and Fclose(), and the
standard I/O functions work on them:
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/filenames File Names ( 2 )
____________________________________________
|_____n_a_m_e__________h_a_n_d_l_e___________d_e_v_i_c_e_____|
| CON:, con:| 0x0ffff (-1)| system console|
| AUX:, aux:| 0x0fffe (-2)| RS232 port |
| PRN:, prn:| 0x0fffd (-3)| printer port |
|____________|_______________|_________________|
An Fopen() or Fcreate() call on one of the character
devices will return a character device handle. The handle
is WORD negative, but not LONG negative.
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/fileops File Operations ( 1 )
_F_I_L_E _O_P_E_R_A_T_I_O_N_S
GEMDOS places no restrictions on what a file may con-
tain. Most applications assume that text files contain
lines separated with carriage-return linefeeds, with a
control-Z indicating the end of file. The format of execut-
able files is documented in the Appendix.
The GEMDOS calls Fcreate() and Fopen() return small,
positive 16-bit integers, called handles, that refer to open
files. A file may be opened for reading only, for writing
only, or for reading and writing. Closing the file relinqu-
ishes the handle, allowing the handle to be re-used.
There are three kinds of handles. Standard handles
range from 0 to 5, and may refer to character devices or
files. Non-standard handles start at 6, and refer only to
files. Character handles refer only to character devices;
the handle numbers range from 0xfffd to 0xffff, which are
WORD negative, but not LONG negative.
When a process does a Pexec() call the child process
inherits the parent's standard handles. Handle 0 is often
referred to as "standard input" or "standard output"; nor-
mally it is connected to the console, CON:. With Fdup() and
Fforce() calls it is possible to redirect a process's stan-
dard I/O to or from a file or another character device.
When a media change occurs, all files open on the disk
that was removed are forced closed by GEMDOS.
_B_U_G_S
There is no concept of "standard error" output.
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/processes Processes ( 1 )
_P_R_O_C_E_S_S_E_S
Although GEMDOS does not support multitasking, it is
possible to execute processes in a subroutine-like manner.
A process may "call" another with Pexec(); the child process
will terminate with a WORD return code.
A process owns any files it opens and any memory it
allocates. Open files are closed and memory is deallocated
when the process terminates.
Before a process is actually terminated GEMDOS will
call extended vector 0x102. This allows applications to
make a "last ditch" effort to recover from error conditions,
or to deinstall themselves.
The memory model used by GEMDOS is similar to MSDOS's.
A process runs in the TPA (Transient Program Area). The
first 0x100 bytes of the TPA is the process's basepage,
which contains process-specific information.
Basepage Structure
___________________________________________________
|__o_f_f_s_e_t_______n_a_m_e_______________d_e_s_c_r_i_p_t_i_o_n_________|
| 0x00 p_lowtpa -> base of TPA |
| 0x04 p_hitpa -> end of TPA |
| 0x08 p_tbase base of text segment |
| 0x0c p_tlen size of text segment |
| 0x10 p_dbase base of data segment |
| 0x14 p_dlen size of data segment |
| 0x18 p_bbase size of BSS segment |
| 0x1c p_blen base of BSS segment |
| 0x20 p_dta Disk Transfer Address (DTA)|
| 0x24 p_parent -> parent's basepage |
| 0x28 (reserved) |
| 0x2c p_env -> enviroment string |
| 0x80 p_cmdlin commandline image |
|___________________________________________________|
`p_lowtpa' points to the basepage (to itself).
`p_hitpa' points to the TPA's limit, to the first unusable
location. `p_tbase', `p_tlen' and so on contain the start-
ing addresses and sizes of the text, data and BSS segments.
`p_parent' points to the process's parent process's
basepage. `p_env' points to the enviroment string [see
Pexec()].
The first byte of the commandline image contains the
number of characters in the commandline. The second through
Nth bytes contain the image. The image is _n_o_t guaranteed to
be null-terminated.
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/processes Processes ( 2 )
An application receives control at the starting address
of its text segment. The second longword on the stack,
4(sp), will contain a pointer to the process's basepage.
Normally all free memory is allocated to a new process; if
the process is going to use Malloc() or Pexec() then it must
relocate its stack and call Mshrink() to release memory back
to the system. The stack segment starts near the highest
TPA location and grows toward the BSS.
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/vectors Extended Vectors ( 1 )
_E_X_T_E_N_D_E_D _V_E_C_T_O_R_S
The 68000 uses vectors 0x02 through 0xff, corresponding
to absolute locations 0x0000 through 0x03fc. GEMDOS adds
eight _l_o_g_i_c_a_l vectors, numbered 0x100 through 0x107. The
absolute locations of the logical vectors is undefined; it
is up to the BIOS to allocate storage for them.
Logical Vector Assignments
_________________________________________
|_____v_e_c_t_o_r__________________u_s_e___________|
| 0x100 | timer tick |
| 0x101 | critical error handler |
| 0x102 | terminate (^C) handler |
| 0x103 - 0x107| reserved for future use|
|_______________|__________________________|
0x100 Timer Tick
This vector is called periodically (at 50hz) by
the BIOS to maintain the system's date/time-of-day
clock and do housekeeping. The first word on the
stack, 4(sp), contains the number of milliseconds from
the last timer tick interrupt.
To intercept the timer vector, use the BIOS call
to get and set the vector. Each handler should execute
its own code first, and then follow the old vector.
Interrupt handlers should be short and sweet; dawdling
here will affect system performance.
All registers (except SP and USP) are modified by
GEMDOS. The BIOS takes responsibility for saving
registers D0-D7/A0-A6; therefore handlers chained to
this interrupt do not have to save and restore regis-
ters.
0x101 Critical Error Handler
The Critical Error Handler is called by the BIOS
to handle certain errors (rwabs() disk errors and media
change requests.) It allows the application to handle
the errors as it sees fit.
The first word on the stack, 4(sp), is an error
number. Depending on the error, other arguments may
also be on the stack. The critical error handler
should preserve registers D3-D7/A3-A6. When the
handler returns, D0 contains a result code:
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/vectors Extended Vectors ( 2 )
________________________________________________________
|__v_a_l_u_e__i_n__D_0_._L___________________m_e_a_n_i_n_g_________________|
| 0x00010000 | retry |
| 0x00000000 | pretend there wasn't an error (ignore)|
| 0xffffffXX | abort with an error |
|_______________|_________________________________________|
The default critical error handler simply returns
-1.
0x102 Terminate (^C) Handler
Before a process is actually terminated, GEMDOS
calls the terminate vector. If the terminate vector
points to an RTS (the default case), the process will
be terminated. If the application does not wish to be
terminated it should do a longjump (or its equivalent)
to an appropriate handler.
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/errors Error Handling ( 1 )
_E_R_R_O_R _N_U_M_B_E_R_S
All error numbers are negative. Two ranges of errors are
defined; BIOS errors range from -1 to -31 and GEMDOS errors
range from -32 to -127.
BIOS Error Codes
__________________________________________________
|___n_a_m_e_____n_u_m_b_e_r_____________d_e_s_c_r_i_p_t_i_o_n___________|
| E_OK 0 OK (no error) |
| ERROR -1 Error |
| EDRVNR -2 Drive not ready |
| EUNCMD -3 Unknown command |
| E_CRC -4 CRC error |
| EBADRQ -5 Bad request |
| E_SEEK -6 Seek error |
| EMEDIA -7 Unknown media |
| ESECNF -8 Sector not found |
| EPAPER -9 Out of paper |
| EWRITF -10 Write fault |
| EREADF -11 Read fault |
| -12 (unused) |
| EWRPRO -13 Write on write-protected media|
| E_CHNG -14 Media change detected |
| EUNDEV -15 Unknown device |
| EBADSF -16 Bad sectors on format |
| EOTHER -17 Insert other disk (request) |
|__________________________________________________|
`EOTHER' is really a request from the BIOS to insert
another disk in drive A:. The "virtual" disk number (0 or
1) is at 6(sp). This feature is used to fake GEMDOS into
thinking that a single drive system really has two drives.
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/errors Error Handling ( 2 )
GEMDOS Error Codes
(numbers in parenthesis
are MSDOS-equivalent error#s)
____________________________________________________
|___n_a_m_e______n_u_m_b_e_r______________d_e_s_c_r_i_p_t_i_o_n___________|
| EINVFN -32 (1) Invalid function number |
| EFILNF -33 (2) File not found |
| EPTHNF -34 (3) Path not found |
| ENHNDL -35 (4) Handle pool exhausted |
| EACCDN -36 (5) Access denied |
| EIHNDL -37 (6) Invalid handle |
| ENSMEM -39 (8) Insufficient memory |
| EIMBA -40 (9) Invalid memory block address |
| EDRIVE -46 (15) Invalid drive specification |
| ENMFIL -47 (18) No more files |
| ERANGE -64 Range error |
| EINTRN -65 GEMDOS internal error |
| EPLFMT -66 Invalid executable file format|
| EGSBF -67 Memory block growth failure |
|____________________________________________________|
4/4/86 Dyer Atari GEMDOS
GEMDOS FUNCTIONS BY NUMBER
0x00 Pterm0 - Terminate Process
0x01 Cconin - Read character from Standard Input
0x02 Cconout - Write Character to Standard Output
0x03 Cauxin - Read Character from Standard AUX:
0x04 Cauxout - Write Character to Standard AUX:
0x05 Cprnout - Write Character to Standard PRN:
0x06 Crawio - Raw I/O to Standard Input/Output
0x07 Crawcin - Raw Input from Standard Input
0x08 Cnecin - Read Character from Standard Input, No Echo
0x09 Cconws - Write String to Standard Output
0x0A Cconrs - Read Edited String from Standard Input
0x0B Cconis - Check Status of Standard Input
0x0E Dsetdrv - Set Default Drive
0x10 Cconos - Check Status of Standard Output
0x11 Cprnos - Check Status of Standard PRN:
0x12 Cauxis - Check Status of Standard AUX: Input
0x13 Cauxos - Check Status of Standard AUX: Output
0x19 Dgetdrv - Get Default Drive
0x1A Fsetdta - Set DTA (Disk Transfer Address)
0x20 Super - Get/Set/Inquire Supervisor Mode
0x2A Tgetdate - Get Date
0x2B Tsetdate - Set Date
0x2C Tgettime - Get Time
0x2D Tsettime - Set Time
0x2F Fgetdta - Get DTA (Disk Transfer Address)
0x30 Sversion - Get Version Number
0x31 Ptermres - Terminate and Stay Resident
0x36 Dfree - Get Drive Free Space
0x39 Dcreate - Create Directory
0x3A Ddelete - Delete Directory
0x3B Dsetpath - Set Current Directory
0x3C Fcreate - Create File
0x3D Fopen - Open File
0x3E Fclose - Close File
0x3F Fread - Read From File
0x40 Fwrite - Write To File
0x41 Fdelete - Delete File
0x42 Fseek - Seek File Pointer
0x43 Fattrib - Get/Set File Attributes
0x45 Fdup - Duplicate File Handle
0x46 Fforce - Force File Handle
0x47 Dgetpath - Get Current Directory
0x48 Malloc - Allocate Memory
0x49 Mfree - Release Memory
0x4A Mshrink - Shrink Size of Allocated Block
0x4B Pexec - Load/Execute Process
0x4C Pterm - Terminate Process
0x4E Fsfirst - Search First
0x4F Fsnext - Search Next
0x56 Frename - Rename File
0x57 Fdatime - Get/Set File Timestamp
~/text/gemdos/funcs File System Calls ( 2 )
GEMDOS FUNCTIONS BY NAME
0x03 Cauxin - Read Character from Standard AUX:
0x12 Cauxis - Check Status of Standard AUX: Input
0x13 Cauxos - Check Status of Standard AUX: Output
0x04 Cauxout - Write Character to Standard AUX:
0x01 Cconin - Read character from Standard Input
0x0B Cconis - Check Status of Standard Input
0x10 Cconos - Check Status of Standard Output
0x02 Cconout - Write Character to Standard Output
0x0A Cconrs - Read Edited String from Standard Input
0x09 Cconws - Write String to Standard Output
0x08 Cnecin - Read Character from Standard Input, No Echo
0x11 Cprnos - Check Status of Standard PRN:
0x05 Cprnout - Write Character to Standard PRN:
0x07 Crawcin - Raw Input from Standard Input
0x06 Crawio - Raw I/O to Standard Input/Output
0x39 Dcreate - Create Directory
0x3A Ddelete - Delete Directory
0x36 Dfree - Get Drive Free Space
0x19 Dgetdrv - Get Default Drive
0x47 Dgetpath - Get Current Directory
0x0E Dsetdrv - Set Default Drive
0x3B Dsetpath - Set Current Directory
0x43 Fattrib - Get/Set File Attributes
0x3E Fclose - Close File
0x3C Fcreate - Create File
0x57 Fdatime - Get/Set File Timestamp
0x41 Fdelete - Delete File
0x45 Fdup - Duplicate File Handle
0x46 Fforce - Force File Handle
0x2F Fgetdta - Get DTA (Disk Transfer Address)
0x3D Fopen - Open File
0x3F Fread - Read From File
0x56 Frename - Rename File
0x42 Fseek - Seek File Pointer
0x1A Fsetdta - Set DTA (Disk Transfer Address)
0x4E Fsfirst - Search First
0x4F Fsnext - Search Next
0x40 Fwrite - Write To File
0x48 Malloc - Allocate Memory
0x49 Mfree - Release Memory
0x4A Mshrink - Shrink Size of Allocated Block
0x4B Pexec - Load/Execute Process
0x4C Pterm - Terminate Process
0x00 Pterm0 - Terminate Process
0x31 Ptermres - Terminate and Stay Resident
0x20 Super - Get/Set/Inquire Supervisor Mode
0x30 Sversion - Get Version Number
0x2A Tgetdate - Get Date
0x2C Tgettime - Get Time
0x2B Tsetdate - Set Date
0x2D Tsettime - Set Time
4/4/86 Dyer Atari GEMDOS
~/text/gemdos/funcs File System Calls ( 3 )
_________________________________
|0x00 Pterm0 - Terminate Process|