home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / sys / atari / st / tech / 4089 < prev    next >
Encoding:
Text File  |  1992-07-21  |  8.3 KB  |  298 lines

  1. Newsgroups: comp.sys.atari.st.tech
  2. Path: sparky!uunet!cs.utexas.edu!wupost!gumby!destroyer!ubc-cs!unixg.ubc.ca!loon.ubc.ca!mintha
  3. From: mintha@geog.ubc.ca (Jim Mintha)
  4. Subject: Beginnings of a FAQ
  5. Message-ID: <1992Jul22.085058.18954@unixg.ubc.ca>
  6. Sender: news@unixg.ubc.ca (Usenet News Maintenance)
  7. Nntp-Posting-Host: loon.geog.ubc.ca
  8. Organization: University of British Columbia, Vancouver, B.C., Canada
  9. Date: Wed, 22 Jul 1992 08:50:58 GMT
  10. Lines: 286
  11.  
  12. I had some spare time so I began to work on a FAQ for comp.sys.atari.st.tech
  13. This is what I have come up with so far.  I was unsure as to how far to
  14. extend the scope of this, but sections can be added/deleted as appropriate.
  15. All comments and contributions are most welcome, and since this is a first
  16. draft, I take absolutely no responsibility for the inevidable errors in this.
  17. (not that I would anyway!)
  18.  
  19. My email address is: mintha@geog.ubc.ca  if you have problems with this then
  20. you can try mailing to dorothy@presto.ig.com with some sort of note at the
  21. start mentioning that this is for me (Jim Mintha)
  22.  
  23. (csas-FAQ refers to the comp.sys.atari.st FAQ)
  24.  
  25. Table of Contents:
  26.  
  27. 0. Read the comp.sys.atari.st FAQ first
  28. 1. Programming
  29.  
  30.   1) Language Alternatives
  31.     1) C Language
  32.     2) GFA Basic
  33.  
  34.   2) Gnu Development System
  35.     1) Overview & requirements
  36.     2) What files are needed
  37.     3) Installation
  38.     4) Common Problems
  39.  
  40.   3) Operating System Specifics
  41.     1) Where to get more info
  42.     2) UNIXMODE - what is it
  43.  
  44. 2. MiNT
  45.   1) Overview
  46.     1) What is MiNT
  47.     2) What isn't MiNT (& what is MultiTOS)
  48.     3) What do you need to run MiNT
  49.  
  50.   2) Installation
  51.     1) What Files are needed
  52.     2) Addition Files
  53.     3) Setting up configuration files
  54.     4) MGR
  55.  
  56.   3) Using MiNT
  57.   4) Programming with MiNT
  58.   5) Other Problems
  59.  
  60. 3.  Hardware Mods
  61.   1) Memory Upgrades
  62.   2) Overscan
  63.   3) Accelerators
  64.  
  65.  
  66. And this is what I have so far in the way of answers/contents
  67.  
  68. 1. Programming.
  69.  
  70. 1.1.0) Language Alternatives
  71.  
  72. (From csas-FAQ)  Languages available for the Atari ST:
  73.  
  74. 68000 assembly, abc, APL, awk, Basic, C, C++, Elan, Fortran,
  75. Forth, Icon, Lisp, Modula2, OPS5, perl, Prolog, Scheme, 
  76. Smalltalk, Xlisp, Xprolog, Xscheme
  77.  
  78. 1.1.1) C Language
  79.  
  80. 'C' is probably the most widely used language available on the
  81. atari ST (For good or bad - no flames please)  There are a number of C
  82. packages available, this is a non-exhaustive list of them, with 
  83. their relative (de)merits. (+, and -'s)
  84.  
  85. Pure C (formerly Turbo C)
  86.  
  87. + Full integrated environment
  88. + Fast and produces Good Code
  89. + Ansi compatible
  90. + Has integrated source debugger
  91.  
  92. - Documentation is still in German
  93.  
  94.  
  95. Laser C
  96.  
  97. (Haven't tried it)
  98.  
  99. Gnu C (et. al.)
  100.  
  101. + Available for free 
  102. + Produces good code
  103. + Source Debugger
  104. + Ansi compatible
  105. + Source Code available
  106.  
  107. - Requires at least 2.5 meg and a bunch hard drive space
  108. - Not that fast
  109.  
  110. Sozobon C
  111.  
  112. + Available for free
  113. + Source code available
  114. + Small (no hard drive needed/ 1Mb machine okay)
  115.  
  116. - Not ansi compatible
  117. - Not that fast
  118.  
  119. Heat & Serve C
  120.  
  121. (someone explain what the difference here is?)
  122.  
  123.  
  124. 1.1.2) GFA Basic
  125.  
  126. (haven't used it)
  127.  
  128.  
  129. 1.2.1) Gnu Development System
  130.  
  131. The GNU package (GNU stands for Gnu's Not Unix) is a suite of program
  132. that provide a complete development system.  It is available for quite
  133. a number of computers.  (for more info on the GNU project check out
  134. the newsgroup gnu.misc.discuss, or FTP information files on
  135. prep.ai.mit.edu (pub/gnu/...))  The majority of the program have been
  136. port to the ST thanks to the efforts of a number of people (insert
  137. names of people who have done this - Bammi, etc.) (see csas-FAQ :GNU:)
  138.  
  139. System Requirements:
  140.  
  141. The Gnu C compiler requires at least 2.5 meg to compile anything more
  142. than a Hello, World! program.  The bigger the program the more memory
  143. (especially with optimization)
  144.  
  145. 1.2.2) What Files are Needed
  146.  
  147. There are quite a number of files needed to get GNU up and running
  148. these are the files I needed from atari.archive: 
  149.  
  150. Directories are at atari.archive in atari/gnustuff/tos (=~)
  151.  
  152. gcc21b02.zoo (~gcc/)       Binaries for C compiler
  153. gccdoc.zoo (~gcc/)        Documentation for GCC
  154. libolb80.zoo (~gnulib/)   Gnu Library files (binaries)
  155. gmlibo23.zoo (~gemlib/)   Gem library files (binaries)
  156. includ80.zoo (~include/)  Include files
  157. pmlolb18.zoo (~pmathlib/) Math library files (binaries)
  158. utlbin27.zoo (~util/)     Binaries of other program (gnu-ld gnu-as etc.)
  159. gplibo07.zoo (~g++/)      G++ libraries (binaries) (for C++)
  160. gpincl07.zoo (~g++/)      G++ include files (for C++)
  161. crt.zoo (atari/new)*      startup files crt0.o and gcrt0.o (in new
  162.                           directory until they are moved to the
  163.                           correct spot.)
  164.     
  165.  
  166. Notes:
  167.  
  168. The above is for version 2.1 of the compiler.  There are also binaries
  169. for version 1.4, which also works well, and is a bit smaller.
  170.  
  171. Source files for all of the above can be found in the same
  172. directories as the binaries.
  173.  
  174. The compiler (gcc) will compile both C, and C++ code (ver. 2.1 - 1.4
  175. has separate programs gcc and g++)
  176.  
  177. 1.2.3) Installation
  178.  
  179. How you install the files on your hard drive is somewhat dependent on
  180. how you organize the layout of your hard drive, whether you are using
  181. UNIXMODE (see section 1.3.2) and the phase of the moon.
  182.  
  183. The is the basic tree on my drive D:
  184.  
  185. d:\gnu\
  186.        bin\
  187.        lib\
  188.        include\
  189.  
  190. Throw all the executables in bin, the library files in lib, and the
  191. include files in include/gcc or include/g++
  192.  
  193. You will also need to set some environment variables.  How you do
  194. this will depend on what shell you are using.
  195.  
  196. GNUINC is a comma separated list of directories where you put the
  197. include files for the library.
  198. GXXINC is a comma separated list of directories where you pu the
  199. include files for the g++ library
  200. GCCEXEC is the directory where the binary executables gcc-cc1.ttp
  201. gcc-cpp.ttp, gcc-ld.ttp, etc. are located (must add the gcc- at
  202. the end as gcc will look for $GCCEXEC + cc1.ttp etc.
  203. TEMP is a directory where the compiler can write temporary files
  204. (a ramdisk is good here)
  205.  
  206. setenv GNUINC 'd:\gnu\include\gcc'
  207. setenv GNULIB 'd:\gnu\lib'
  208. setenv GCCEXEC 'd:\gnu\bin\gcc-'
  209. setenv GXXINC 'd:\gnu\include\g++'
  210. setenv TEMP 'd:\tmp'
  211.  
  212. After all this you should be able to type
  213.  
  214. gcc -o hello hello.c   (provided hello.c exists :)
  215.  
  216. Notes:
  217.  
  218. If you are using gulam you should add
  219. set env_style mw
  220. to your gulam.g files
  221.  
  222. If you are using MiNT then you can use /dev/d instead of d:
  223.  
  224. You need to add the path to gcc.ttp to you path variable
  225.  
  226. If things don't work, try gcc -v which will tell you exactly
  227. what it is doing
  228.  
  229. For C++ you need to add -lg++  for example:
  230. gcc -o hello hello.cc -lg++
  231.  
  232.  
  233. 1.2.4) Common Problems
  234.  
  235. Prob:  Upon linking you get errors with references to a symbol _splitmem_
  236. and other errors.
  237. Answer:  Get the current version of crt0.o and gcrt0.o (If you can't
  238. find them, you can get the source to the gnu libraries, and compile
  239. crt0.c (gcc -c crt0.c) to get crt0.o)
  240.  
  241.  
  242. 1.3) Operating System Specifics
  243.  
  244. 1.3.1) Where to find the information.
  245.  
  246. The best way to get a lot of information concerning the internals of
  247. the operating system is to become a register developer.  You will then
  248. get a whole bunch of documentation.
  249.  
  250. Alternatively the following files are available; (somewhere)
  251.  
  252. "Hitchhikers guide to the Bios" - describes all the bios, and xbios
  253. calls.  As well as atari's VT52 emulation, and miscellaneous other
  254. interesting stuff.  Can be found...??
  255.  
  256. "Gemdos Guide" - describes the gemdos calls
  257.  
  258. ???
  259.  
  260. 1.3.2) UNIXMODE
  261.  
  262. UNIXMODE is a method of providing access to longer files names under
  263. TOS.  In a nutshell it maps longer names to TOS's 8.3 length.  It
  264. keeps the mappings in a file called .dir in the same directory as the
  265. file.  UNIXMODE is not a program in itself, but rather just an
  266. environment variable.  If a program supports UNIXMODE then it will
  267. allow you to use the longer file names, other programs will just use
  268. the shorter TOS ones. 
  269.  
  270. Further documentation on the use of UNIXMODE can by found in
  271. UNIXMODE.doc which is located somewhere on atari.archive
  272.  
  273. 2. MiNT
  274.  
  275. 2.1.1)  What is MiNT?
  276.  
  277. From the mint documentation:
  278.  
  279. ...
  280.  
  281. mint section still being worked on
  282.  
  283. 3. Hardware Modifications
  284.  
  285. I haven't done many hardware mods on my atari, so any info for this
  286. section would be appreciated.  Commercial add-ons belong in csas-FAQ
  287. rather than here.  This more homebrew kind of stuff.
  288.  
  289. Contributors:
  290.  
  291. Still to be done.
  292.  
  293. Jim
  294.  
  295. --
  296. Jim Mintha                       Home: (604) 467-2148
  297. mintha@geog.ubc.ca               Work: (604) 465-5074
  298.