Following is a description of the files contained in the archive for AOL Programmers' University's Advanced Pascal for Apple IIGS course, which spanned August, 1992 through February, 1993. Instructor was Jim Merritt (Presbyte). *** File: A2GS.PLog.1 This is the edited log for the first session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.08.10. *** File: APIIGS.Asst.1 EQUIPMENT: Apple IIGS NEEDS: Orca Pascal (to complete assignment) This is the initial assignment for Advanced Pascal on the Apple IIGS. *** File: A2GS.Class.Info This file includes miscellaneous information about the Programmers' University Advanced Pascal for the Apple IIGS course, and about its instructor, Jim Merritt. Find textbook acquisition information and a mini-outline here. *** Directory: Asst.1.Key * File: ciphertext EQUIPMENT: Any computer that can read text files NEEDS: Decoder program as specified in Asst 1 main file This is "ciphertext," the encoded file that your decoder program is to translate into plaintext, according to the method given in the Assignment 1 description. It contains upper-case, lower-case, and punctuation; feel free to deal with case and punctuation during translation as you see fit. As I have mentioned elsewhere, the statistical method of assignment 1 will NOT decipher this file with 100% accuracy, but it should give you something that is extremely readable. * File: decoder.pas EQUIPMENT: Any computer that can read text files NEEDS: Pascal compiler (originally written for ORCA/Pascal) This is the source text for the program that "decodes" the "ciphertext" file. * File: plaintext EQUIPMENT: Any computer that can read text files NEEDS: compiled version of "decoder.pas" and copy of "cipertext" file This is the output of the "decoder.pas" file, when given "ciphertext" as input. *** File: A2GS.PLog.2 This is the edited log for the second session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.08.17. *** File: A2GS.PLog.3 This is the edited log for the third session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.08.31. *** File: A2GS.PLog.4 This is the edited log for the fourth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.09.14. *** File: APIIGS.Asst.2 EQUIPMENT: Apple IIGS NEEDS: Orca Pascal (to complete assignment) This is the second assignment for Advanced Pascal on the Apple IIGS. *** File: Prob.1.5a.pas NEEDS: Apple IIGS, Orca Pascal Prob.1.5a.pas: This satisfies the "custom" portion of Assignment 2 for the Advanced Pascal for the Apple IIGS course. It is a modified version of Prob.1.5.pas, taken from the source-text disks for the Byteworks' "Toolbox Programming in Pascal" course. *** File: P.Type.Casting This is a discussion of type-casting and the two main methods of accomplishing it in modern Pascal compilers. I wrote this to supplement the discussion of type-casting that we had in the Advanced Pascal for the Apple IIGS class, in hopes that we could then use our weekly, "live" Q&A time for other topics. While brief mention is made of the Apple IIGS, its system software, and processor's architectural aspects, the coverage is actually rather independent of platform, and may be of interest to Pascal programmers on PCs, Macs, or Commodores as well. (For Eight-bit Apple II users: note that Apple Pascal supports only the older, variant-record style of type-casting; even so, this file may contain information of interest to you.) I was going to make this discussion even more comprehensive, but ran up against the text-editor window limit in the Macintosh version of AOL. It could also use a few good charts and figures, which I can't easily include within a text-only file. But if you have a copy of Koffman (or any good Pascal textbook) at hand, and refer to the syntax diagrams and examples in that book, you should be able to understand everything in this file with no difficulty at all. *** File: A2GS.PLog.5 This is the edited log for the fifth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.09.21. *** File: A2GS.PLog.6 This is the edited log for the sixth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.09.28. *** File: A2GS.PLog.7 This is the edited log for the seventh session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.10.19. *** File: A2GS.Plog.8 This is the edited log for the eighth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.11.02. *** File: APIIGS.Asst.3 NEEDS: Orca, w/ Pascal and Rez (to complete the assignment) This is the third assignment for Advanced Pascal on the Apple IIGS. *** File: No.Key.For.Ast3 Announcement that there will be no posted key for Assignment #3 of the Advanced Pascal for Apple IIGS course. *** File: A2GS.PLog.9 This is the edited log for the ninth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.11.23. *** File: A2GS.PLog.10 This is the edited log for the tenth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.11.30. *** File: A2GS.PLog.11 This is the edited log for the eleventh session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.12.07. *** File: A2GS.PLog.12 This is the edited log for the twelfth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 92.12.14. *** File: GSOSExtras.p NEEDS: Apple IIGS, GS/OS, ORCA/Pascal to compile and employ This is an example UNIT that shows how free-union variant records can be used to get around eccentricities of operating system design, to produce Pascal definitions for operating system components. The resulting GSOSExtras UNIT itself is somewhat ugly and kludgy, but permits its clients to have reasonably legible, convenient, and elegant access to FST-specific call parameter blocks, in conjunction with the use of the GS/OS "FSTSpecific" operating system call. The technique used involves nested free-unions, where non-variant fields at the top of the structure are used in practice to substitute for the tagfields that would normally be part of the variant record definitions. Here, we had a "two-dimensional" nested structure, corresponding to a variable parameter-block structure in GS/OS that changes based on the values of two independent fields, but the technique can be generalized for as many dimensions as your particular needs require (and your compiler supports!). Any questions or comments should be sent via Email to Presbyte (Merritt) or Odyssey II (Flynn). Merritt apologizes in advance for the spotty internal commentary, and perhaps someday will have time to rework the source code to make it a bit more beautiful and well-documented. For now, refer to A2GS Adv Pascal Class Logs #11 and #12 (found elsewhere in the archive containing this ReadMe file), for more background on the problem this unit attempts to solve. *** File: A2GS.PLog.13 This is the edited log for the thirteenth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 93.01.11. *** File: A2GS.PLog.14 This is the edited log for the fourteenth session of the Programmers' University Advanced Pascal for the Apple IIGS course, 93.01.25. *** File: A2GS.PLog.15 This is the edited log for the fifteenth (and final) session of the Programmers' University Advanced Pascal for the Apple IIGS course, 93.02.01. *** File: univsorts.p NEEDS: Pascal compiler with UNITS, and parametric procedures A unit that provides a grab-bag of sorts for use with any data type. See A2GS Advanced Pascal Class Log #15 for more info. Originally compiled with ORCA Pascal, but if your compiler has UNITs and permits parametric procedures, it should compile and work for you, too, regardless of your development environment or target system. *** File: testsorts.p NEEDS: Pascal compiler with UNITs and parametric procedures See A2GS Advanced Pascal Class log #15 for more info. This program shows how to use the universal sort UNIT, and how to write the callback procedures for proper interfacing to the unit. This was originally compiled on the Apple IIGS using ORCA Pascal, but if your compiler supports UNITs and parametric procedures, you should have no trouble, whatever your development system or brand of computer. *** File: msg.board.log This contains all messages posted to the "Online Apple IIgs Pascal Class" message board, which were not of a routine, administrative nature (e.g., "I just uploaded the chat log from last week's class.," etc.). Some non-routine administrative matters and some technical matters were discussed.