íEíCfÃ       Initializing Media        This has the effect of creating more work for the programmer. He must be aware not only of the program's functionality, but must also be concerned with "fitting" it into available memory.Traditionally, programmers for single-user, non-multitasking systems, have tended to assume that all of the memory from the end of the program code to the Basic Disk Operating System (BDOS) was available to use as desired. This meant, in reality, the application programs could "over-write" the Console Command Processor AAN-11/1   Uªÿ BOOT       DIRECTORY  Ø232APR88A 232APR88A AC06A     0AIM-NEWSA 5BBS-DISKA ;€CAIRNSA   @COLORRIBA B€COPYRGHTA DCPM-CC04A ODSCSHOWA  [EDIT-01A  _GMKHLM11A d€GOGODOS2A i		READMEA   r€ANN-11.PPTu

‡&BLOCKS LEFT!BLOCKS LEFT!? Why can't we go on, "willy-nilly" the way we have done for the past 15 years?The answers to these questions are not obvious, but we are all painfully aware of the implications. Limited memory space means restricting the application programs to run in the available memory space. As a result, we often compromise the functionality of an application to conserve space. Yet, we want the program to be operational on the broadest cross-section of 8-bit CP/M machines with as much functionality as is possible.BÌ1 ×67                         VIRTUAL SYSTEMS                 Ben Grey, Cedar Mill Z-Node 24In this month's article we are going to examine the dynamics of memory management as it can be applied to writing programs for CP/M and ZCPR.  In my first article, we briefly touched on the limitations placed on programs because of memory size restrictions. We found that systems with a fixed memory, let's say 64K, require large programs to be segmented, or "overlayed" if they are to fit in the available memory.(CCP) in order to gain the extra 2K it occupies.Today, however, we are concerned with maximizing the programmer's efficiency to solve the problem at hand, and to minimize the "overhead" he must encounter to produce a working application. In other words, we wish to allow him to write programs that will work in a minimum memory size, with very little regard for managing the available memory space.What techniques are available? How do we implement them? Why are these methods so important in the 8-bit world efore we can really consider "how" to do these things, we must first look at the way standard CP/M systems currently "load and execute" the programs we run. And in order to really look at this problem, we really need to know what the "memory image" normally looks like.[There are several systems that do not adhere to the "general" rules I will discuss, notably some of the early Northstar Systems. However, if you have one of these early systems, you already know the differences.]Memory in 8-bit computers    TPA              |      ~ 53405 (52.5K)     |                             | 0100 +-----------------------------+     |                             |     |           Page 0            |          256 (0.25k)     |                             | 0000 +-----------------------------+Bear in mind, however, this is a "theoretical" system layout, and is NOT indicative of the system you may be using. It is provided merely for purposes of discussion. We will develop an image that will match your own system ne OS segments are a fixed size. For example, in the most common implementation, the CCP requres 8 256-byte pages, or 2048 bytes. The BDOS, requires 14 256-byte pages, or 3584 bytes. The BIOS, on the other hand, has a "variable" size, and generally runs about 4096 bytes, and disk buffers perhaps as much as 2048 bytes. There is one more area in memory, Page 0, that is reserved for "communications" between the OS and application program, it is fixed at 256 bytes.For purposes of discussing the CP/M (ZRDOS) OS me when you have questions. I would prefer you do this by calling Cedar Mill Z-Node 24 [503] 644-4621 and leaving a message to ALL USERS.....[Note: the following code example was produced using WordStar (tm) and should not be "extracted" from the article to assemble. Instead, a separate file called PAGE0.MAC (or .Z80) will be provided to assemble.]        TITLE   'PAGE 0 Definitions - CP/M Computer Systems'; Program       --------------  ; Note: Undefined at moment ; Segment       Page 0 ; Author           BIOS              |         4096 ( 4.0k)     |                             | E800 +-----------------------------+     |                             |     |           BDOS              |         3584 ( 3.5k)     |                             | DA00 +-----------------------------+     |                             |     |            CCP              |         2048 ( 2.0k)     |                             | D200 +-----------------------------+     |                             |     |         generally begins at address 0000H (the H stands for hexadecimal or base 16) and goes to address FFFFH. If this hexadecimal number is converted to it's decimal equivalent, we find that it is equal to 65,535 or 64K (1K in computerese = 1024 bytes).In many current systems, the operating system (OS) builds from the top (FFFFH) down toward the bottom (0000H). The memory is consecutive, or sequential, or contiguous. That is, there are no gaps in it from the lowest byte to the highest byte.Moreover, many of thext month. TPA stands for Transient Program Area and is the area in memory where application programs load.Before we can really begin our project, we need to know just a little more about the page 0 and what it contains. Rather than present it in graphic form, I'm going to illustrate it with assembler statements so we can use this information in writing future programs.I do not intend to explain the rudiments of assembler language syntax, you should study your manuals and you should feel free to contact, it is generally easier to think of memory from top to bottom, while for applications, we want to consider memory from the bottom to the top...Based on the previous discussion, then, we find a "typical" memory image to look something like the following:FFFF +-----------------------------+     |                             |     |        Disk Buffers         |         2048 ( 2.0k)     |                             | F800 +-----------------------------+     |                             |     |        Ben Grey ; Language      Z80 Assembler ; Date          04 APR 88 ; Previous      None; Conditional DefinitionsNO      EQU     0000            ; Define NO YES     EQU     not NO          ; Define YES; Assembler DefinitionM80     EQU     NO              ; MicroSoft SLR     EQU     yes             ; SLR Systems ZAS     EQU     NO              ; Echelon; Version Levels, DateVERSN   EQU     00              ; Version  Number REVSN   EQU     00              ; Revision LevelVMNTH   EQU     04      a TITLE and a brief few lines of what the program's name is, who wrote it, what the language used is, the date and some comment about previuos versions. If desired, a few (very few) lines can be added to address its function:; Program ; Segment       Page 0 ; Author        Ben Grey ; Language      Z80 Assembler ; Date          04 APR 88 ; Previous      None; Function      This is a code segment to illustrate the contents                 of ;               the CP/M Page 0. It is "never" compiled in re EQU     BDOS+0E00H      ; Base of BIOS; Start of Page 0 if     M80 .Z80 ASEG ORG     0000         endifRST0    EQU     $               ; Restart Vector 0WBOOT:  JP      BIOS+3          ; Warm Boot Entry IOBTYE: DB      00              ; Input/Output Byte USRDSK: DB      00              ; MS Nybble = User, LS Nybble =                                   Disk BDOSV:  JP      BDOS+6          ; BDOS Function CallRST1:   DS      8               ; Restart Vector 1 RST2:   DS      8               ; RestF or even TRUE and FALSE in the same way.; Conditional DefinitionsNO      EQU     0000            ; Define NO YES     EQU     not NO          ; Define YESOFF     EQU     0000            ; Define OFF ON      EQU     not OFF         ; Define ONOr we could do something like this:TRUE    EQU     YES             ; Define TRUE FALSE   EQU     NO              ; Define FALSEThese statements will permit us to conditionally select certain options in the program at later points. The following three statemeDS      04              ; 007C - 007FDMABFR: DS      128             ; 0080 - 00FF        ENDThis example of code actually generates a Page 0. This is NOT something we normally need to do for ourselves, since the OS will always insure the correct values are stored in this area. It is for illustration only and is intended to be a little introduction as to style and form. Most of it is self explanatory, and I will minimize my description of it.In general, all programs we write will begin the same way:         ; Version Month VDATE   EQU     04              ; Version Date VYEAR   EQU     88              ; Version Year; Operating System DefinitionsCPM22   EQU     NO              ; CP/M Version 2.2 CPM30   EQU     NO              ; CP/M Version 3.0 (CP/M+) ZCPR3   EQU     yes             ; Using ZCPR  3.x ZRDOS   EQU     yes             ; Using ZRDOS 1.xBASE    EQU     0000            ; Base of Memory CCP     EQU     BASE+0D200H     ; Base of CCP BDOS    EQU     CCP+0800H       ; Base of BDOS BIOS   al                 life.Even experienced programmers take time to create the above section in EVERY program they write. Think about it... Would you remember all of the stuff five or even ten years from now? Probably not, and this bit of documentation serves to inform the reader, as well as refresh our own memories in the future. It is a good programming practice. Do it!The next two statements are directives to the assembler, defining two commonly used values, YES and NO. We could have defined ON and OFart Vector 2 RST3:   DS      8               ; Restart Vector 3 RST4:   DS      8               ; Restart Vector 4 RST5:   DS      8               ; Restart Vector 5 RST6:   DS      8               ; Restart Vector 6 RST7:   DS      8               ; Restart Vector 7 (Debug                                   Utilities)DS      16              ; 0040 - 004F        DS      11              ; 0050 - 005BFCB1:   DS      16              ; Default FCB 1 FCB2:   DS      16              ; Default FCB 2        nts define which assembler we will use when we put the program together. Only ONE of the options should be YES, the rest should be NO. Already, we are using the conditionals we defined in the last few lines of code. Why do this? Well because it is important for others to know "how" you assembled the program, and what assembler you used. Not all assemblers are created equal!; Assembler DefinitionM80     EQU     NO              ; MicroSoft SLR     EQU     yes             ; SLR Systems ZAS     EQU     NO  nes the "bottom" or "beginning" of memory. Notice that the CCP equate is defined as the BASE+0D200H. This is done so that the program can know not only where the CCP is located, but also to keep the "symbol" CCP a relocatable item. (I'll discuss relocatability later.)Likewise, the BDOS address is an "offset" of fixed value from the CCP, and since we know the CCP is 2048 bytes, or 8*256, (note that 256 in hex is 100) so we add 8*100 (0800H) to the CCP beginning address, to find the beginning of the BDOS. W file name? Well inside the program it is necessary to identify the same two values. In addition, I've included the Version Date so we can tell when we last modified the program. You should get in the habit of updating these values EVERY time you edit the program. If desired, the time may also be added, altho not required:; Version Levels, Date, TimeVERSN   EQU     00              ; Version  Number REVSN   EQU     00              ; Revision LevelVMNTH   EQU     04              ; Version Month VDATE   U     BDOS+0E00H      ; Base of BIOS EPROM   EQU     BIOS+1000H      ; Base of EPROM or Buffers[Note: if 2K = 8*256, then 4K = 16*256, thus 10*100 = 1000H.)Confused? I hope not. Hexadecimal arithmetic is discussed in nearly every computer textbook I have ever seen. Remember, when dealing with computers, they "think" in base 16 (hexadecimal), not base 10 (decimal) like we do. So you ask, why couldn't we use decimal numbers to define these values? The answer is we could, but since we are talking about thetant.CPM22   EQU     NO              ; CP/M Version 2.2 CPM30   EQU     NO              ; CP/M Version 3.0 (CP/M+) ZCPR3   EQU     yes             ; Using ZCPR  3.x ZRDOS   EQU     yes             ; Using ZRDOS 1.xThe next set of equates define some of the important and often used addresses in our systems:BASE    EQU     0000            ; Base of Memory CCP     EQU     BASE+0D200H     ; Base of CCP BDOS    EQU     CCP+0800H       ; Base of BDOS BIOS    EQU     BDOS+0E00H      ; Base of BIOSBASE defi            ; EchelonIn this case, I used one of the SLR Systems' assemblers, SLR180+, a virtual memory assembler. All SLR assemblers use the same syntax. If you are using M80, then you would set M80 EQU yes, and SLR EQU NO. The same rules prevail in the case of the last equate for ZAS, the Echelon Inc., product. There could be others added to the list as well, but for our purposes, these are the only three assemblers that will concern us.Recall my discussing version and revision levels as a part of thee also know that the BDOS is 14 256-byte pages (14 in hex is 0E, so 0E*100 = 0E00H).If we also wished to include the usual 2K of buffer space generally found after the BIOS, we could add one more equate ... however, we would have to know EXACTLY how big the BIOS is, and round it up to the next even 1K boundary. We have assumed a 4K BIOS so we would have:BASE    EQU     0000            ; Base of Memory CCP     EQU     BASE+0D200H     ; Base of CCP BDOS    EQU     CCP+0800H       ; Base of BDOS BIOS    EQEQU     04              ; Version Date VYEAR   EQU     88              ; Version YearVHOUR   EQU     07              ; Version Hour VMINS   EQU     00              ; Version Minutes VSECS   EQU     00              ; Version SecondsSince we will be writing programs to run under both CP/M and ZRDOS, and will probably be using both the standard CCP and ZCPR, we should define these values also. This is a further aid to documentation. At this point, it is not significant, but later it will become quite impor real hardware, and will be concerned about "real memory" addresses, it is more appropriate to work in hexadecimal values. After all, the output of the assemblers always provides us with the hex values in the listing (NEVER the decimal ones)...The next few statements are significant if you are using M80 as the assembler. They are NOT required for SLR or ZAS and therefore we want to make them "conditional" on the assembler we are using. That is, if we are using M80, then these statements will be used, if wIOS Warm Boot Entry is found. The EQU $ says: assign the address of the Program Counter (0000 at this point) to the label RST0.RST0    EQU     $               ; Restart Vector 0The next line defines the label WBOOTE (warm boot entry) as a jump (JP) to the BIOS+3. If you looked at the beginning of the BIOS, you would see that it begins with a series of jump instructions, pointing to the various functions the BIOS provides. Normally, we do not concern ourselves with this information, because the BDOS also" segment. It is not required by the other two assemblers.The ORG statement tells M80 where in memory we want this code located.  This directive causes M80 to put a special value in the relocatable file that will be generated by the assembler, so that L80, the linker, will be able to "place" it in the proper memory area, namely Page 0.Now we have the basic definitions, we will examine just what is in Page 0, and what the values mean...RST0    EQU     $               ; Restart Vector 0WBOOTE: JP          00              ; Input/Output ByteThe label USRDSK defines two values: the four leftmost bits contain the current "user area" and the four rightmost bits define the current "disk" (the logged in or default disk). When a byte is divided into two 4-bit values, we refer to them as the Most Significant (MS) and Least Significant (LS) Nybble. Perhaps an illustration will be helpful:USRDSK: DB      00              ; MS Nybble = User, LS Nybble = Disk               User DiskMS Nybble -->  0000 0000 r 6 RST7:   DS      8               ; Restart Vector 7 (Debug Utilities)DS      16              ; 0040 - 004F        DS      11              ; 0050 - 005BFCB1:   DS      16              ; Default FCB 1 FCB2:   DS      16              ; Default FCB 2        DS      04              ; 007C - 007FDMABFR: DS      128             ; 0080 - 00FF        ENDThe first line, defines (informationally) where the first Restart Vector begins. It just so happens, this is the same address where the jump to the Be are not, they will not be used. Please note the style, the conditional "if" is offset one column, and is in "lower case"... This makes it easy to find in a large listing (ditto for the "endif"). if     M80 .Z80 ASEG ORG     0000         endifIn the case of M80, which can assemble both 8080 Intel and Z80 Zilog mnemonics, we need to inform it which set of mnemonics we are using. In our case, we will ALWAYS use the Zilog codes. (The .Z80 directive)The ASEG statement tells M80 that this is an "absolute knows about this jump table, and when we make a function call to BDOS, it locates the BIOS and provides the necessary linkage for us.WBOOT:  JP      BIOS+3          ; Warm Boot EntryThe next line defines the label IOBYTE. It is defined as a single byte (DB = Define Byte) with a value in the byte of 00H. This byte is often used by the BIOS and other applications to "re- direct" the input/output of a program. (In standard CP/M systems, the STAT command manipulates the contents of this byte.)IOBTYE: DB  BIOS+3          ; Warm Boot Entry IOBTYE: DB      00              ; Input/Output Byte USRDSK: DB      00              ; MS Nybble = User, LS Nybble = Disk BDOSFV: JP      BDOS+6          ; BDOS Function CallRST1:   DS      8               ; Restart Vector 1 RST2:   DS      8               ; Restart Vector 2 RST3:   DS      8               ; Restart Vector 3 RST4:   DS      8               ; Restart Vector 4 RST5:   DS      8               ; Restart Vector 5 RST6:   DS      8               ; Restart Vecto <-- LS Nybble                 Bit 7  ----/         \---- Bit 0The next line BDOSFV: JP      BDOS+6          ; BDOS Function Calldefines the entry point to the BDOS that we call to have an OS function performed for us. Most programs load a "function code" into Register C, and appropriate information in the other registers and then perform the instruction:        CALL    BDOSFV        ; Perform Function CallFor example: suppose we want to know if a character is waiting on the console for input. We four bytes, merely allocating memory as above:        DS      04              ; 007C - 007FAnd lastly comes the default Direct Memory Access Buffer. This is the area where CP/M generally stores a record read from one of the floppy disks (or hard disk). It is ALWAYS 128-bytes, because CP/M thinks ALL physical records are 128-bytes in length.DMABFR: DS      128             ; 0080 - 00FFThen the assembler directive, END, to define the obvious, the end of the program.        ENDIn this month's articquires lots of words and examples. The contents of Page 0 are so very important, I wanted to start with it so you will understand some of the more rudimentary locations in your memory image.The next seven lines represent the remaining Restart Vectors. There are eight of them in the Z80 machine. In general they are unused at present in most machines. However, with the new OS and some new applications, these bytes will be used. (DS = Define Storage in bytes)RST1:   DS      8               ; Restart Vectore.You must have a printer capable of printing a minimum of 121 columns.  Most 80 column dot-matrix machines can be set to "condensed" mode and will work fine. The file can be printed with PIP and has imbedded ^L (Control-L) at appropriate places to cause a Form Feed (new page). The source code for this file is also available on my Z-Node, Access Programming and PEG-3. Refer to your printer manual or documentation on PIP for more printing details.One more point of interest: Some assemblers display the asey allocate.DS      16              ; 0040 - 004F        DS      12              ; 0050 - 005BAlso located in Page 0 are two "default" File Control Blocks, at addresses 005CH and 006CH. These FCBs are generally filled in by the CCP if we have specified "arguments" on the command line. I will not bother with a discussion of their structure at this time. We will cover it in detail at a later time.FCB1:   DS      16              ; Default FCB 1 FCB2:   DS      16              ; Default FCB 2Next, are might use Function Code 11 (Read Console Status) to determine this. The code would be:LD      C,11          ; FC = Console Status CALL    BDOSFV        ; Perform OS FunctionWhen control is returned to us from the OS, (right after the CALL), we will have a value in Register A. If it is 00, no character was waiting, if it is NOT 00, then a character is waiting. But I digress! We only have a few more lines of code to go, and we will have completed this article...Unfortunately, this kind of explanation rele, I have described the basic layout of memory and the contents of Page 0. Next month, we will begin a "real" program and discuss more memory management. If you do not have BUFFERS.DOC at this time, you might retrieve it for next months column.Your assignment: You should try to assemble this program and print out the resulting listing. Keep it handy for the future, as we will refer to it over and over again. If you do not have M80, SLR or ZAS, you can get a copy of the compiled listing file from my Z-Nod 1 RST2:   DS      8               ; Restart Vector 2 RST3:   DS      8               ; Restart Vector 3 RST4:   DS      8               ; Restart Vector 4 RST5:   DS      8               ; Restart Vector 5 RST6:   DS      8               ; Restart Vector 6 RST7:   DS      8               ; Restart Vector 7 (Debug Utilities)The next two lines, merely allocate 28 bytes of memory. Nothing of any interest is in them. The addresses to the right, in the comments area, merely indicate what "memory locations" thsembled address as it is actually stored in memory, low byte, then high byte.  The SLR assemblers can display it both ways. I chose to show it as high-byte and low-byte, simply because it is easier to read. M80, however, does just the opposite.         ; MicroSoft SLR     EQU     yes             ; SLR Systems ZAS     EQU     NO              ; Echelon; Version Levels, DateVERSN   EQU     00              ; Version  Number REVSN   EQU     00              ; Revision LevelVMNTH   EQU     04     ? Why can't we go on, "willy-nilly" the way we have done for the past 15 years?The answers to these questions are not obvious, but we are all painfully aware of the implications. Limited memory space means restricting the application programs to run in the available memory space. As a result, we often compromise the functionality of an application to conserve space. Yet, we want the program to be operational on the broadest cross-section of 8-bit CP/M machines with as much functionality as is possible.BÌ1 ×67                         VIRTUAL SYSTEMS                 Ben Grey, Cedar Mill Z-Node 24In this month's article we are going to examine the dynamics of memory management as it can be applied to writing programs for CP/M and ZCPR.  In my first article, we briefly touched on the limitations placed on programs because of memory size restrictions. We found that systems with a fixed memory, let's say 64K, require large programs to be segmented, or "overlayed" if they are to fit in the available memory.generally begins at address 0000H (the H stands for hexadecimal or base 16) and goes to address FFFFH. If this hexadecimal number is converted to it's decimal equivalent, we find that it is equal to 65,535 or 64K (1K in computerese = 1024 bytes).In many current systems, the operating system (OS) builds from the top (FFFFH) down toward the bottom (0000H). The memory is consecutive, or sequential, or contiguous. That is, there are no gaps in it from the lowest byte to the highest byte.Moreover, many of th(CCP) in order to gain the extra 2K it occupies.Today, however, we are concerned with maximizing the programmer's efficiency to solve the problem at hand, and to minimize the "overhead" he must encounter to produce a working application. In other words, we wish to allow him to write programs that will work in a minimum memory size, with very little regard for managing the available memory space.What techniques are available? How do we implement them? Why are these methods so important in the 8-bit world         ; Version Month VDATE   EQU     04              ; Version Date VYEAR   EQU     88              ; Version Year; Operating System DefinitionsCPM22   EQU     NO              ; CP/M Version 2.2 CPM30   EQU     NO              ; CP/M Version 3.0 (CP/M+) ZCPR3   EQU     yes             ; Using ZCPR  3.x ZRDOS   EQU     yes             ; Using ZRDOS 1.xBASE    EQU     0000            ; Base of Memory CCP     EQU     BASE+0D200H     ; Base of CCP BDOS    EQU     CCP+0800H       ; Base of BDOS BIOS   efore we can really consider "how" to do these things, we must first look at the way standard CP/M systems currently "load and execute" the programs we run. And in order to really look at this problem, we really need to know what the "memory image" normally looks like.[There are several systems that do not adhere to the "general" rules I will discuss, notably some of the early Northstar Systems. However, if you have one of these early systems, you already know the differences.]Memory in 8-bit computers   This has the effect of creating more work for the programmer. He must be aware not only of the program's functionality, but must also be concerned with "fitting" it into available memory.Traditionally, programmers for single-user, non-multitasking systems, have tended to assume that all of the memory from the end of the program code to the Basic Disk Operating System (BDOS) was available to use as desired. This meant, in reality, the application programs could "over-write" the Console Command Processor e OS segments are a fixed size. For example, in the most common implementation, the CCP requres 8 256-byte pages, or 2048 bytes. The BDOS, requires 14 256-byte pages, or 3584 bytes. The BIOS, on the other hand, has a "variable" size, and generally runs about 4096 bytes, and disk buffers perhaps as much as 2048 bytes. There is one more area in memory, Page 0, that is reserved for "communications" between the OS and application program, it is fixed at 256 bytes.For purposes of discussing the CP/M (ZRDOS) OS me when you have questions. I would prefer you do this by calling Cedar Mill Z-Node 24 [503] 644-4621 and leaving a message to ALL USERS.....[Note: the following code example was produced using WordStar (tm) and should not be "extracted" from the article to assemble. Instead, a separate file called PAGE0.MAC (or .Z80) will be provided to assemble.]        TITLE   'PAGE 0 Definitions - CP/M Computer Systems'; Program       --------------  ; Note: Undefined at moment ; Segment       Page 0 ; Author           BIOS              |         4096 ( 4.0k)     |                             | E800 +-----------------------------+     |                             |     |           BDOS              |         3584 ( 3.5k)     |                             | DA00 +-----------------------------+     |                             |     |            CCP              |         2048 ( 2.0k)     |                             | D200 +-----------------------------+     |                             |     |                  ; Version Month VDATE   EQU     04              ; Version Date VYEAR   EQU     88              ; Version Year; Operating System DefinitionsCPM22   EQU     NO              ; CP/M Version 2.2 CPM30   EQU     NO              ; CP/M Version 3.0 (CP/M+) ZCPR3   EQU     yes             ; Using ZCPR  3.x ZRDOS   EQU     yes             ; Using ZRDOS 1.xBASE    EQU     0000            ; Base of Memory CCP     EQU     BASE+0D200H     ; Base of CCP BDOS    EQU     CCP+0800H       ; Base of BDOS BIOS   ext month. TPA stands for Transient Program Area and is the area in memory where application programs load.Before we can really begin our project, we need to know just a little more about the page 0 and what it contains. Rather than present it in graphic form, I'm going to illustrate it with assembler statements so we can use this information in writing future programs.I do not intend to explain the rudiments of assembler language syntax, you should study your manuals and you should feel free to contact, it is generally easier to think of memory from top to bottom, while for applications, we want to consider memory from the bottom to the top...Based on the previous discussion, then, we find a "typical" memory image to look something like the following:FFFF +-----------------------------+     |                             |     |        Disk Buffers         |         2048 ( 2.0k)     |                             | F800 +-----------------------------+     |                             |     |        Ben Grey ; Language      Z80 Assembler ; Date          04 APR 88 ; Previous      None; Conditional DefinitionsNO      EQU     0000            ; Define NO YES     EQU     not NO          ; Define YES; Assembler DefinitionM80     EQU     NO              ; MicroSoft SLR     EQU     yes             ; SLR Systems ZAS     EQU     NO              ; Echelon; Version Levels, DateVERSN   EQU     00              ; Version  Number REVSN   EQU     00              ; Revision LevelVMNTH   EQU     04        TPA              |      ~ 53405 (52.5K)     |                             | 0100 +-----------------------------+     |                             |     |           Page 0            |          256 (0.25k)     |                             | 0000 +-----------------------------+Bear in mind, however, this is a "theoretical" system layout, and is NOT indicative of the system you may be using. It is provided merely for purposes of discussion. We will develop an image that will match your own system n EQU     BDOS+0E00H      ; Base of BIOS; Start of Page 0 if     M80 .Z80 ASEG ORG     0000         endifRST0    EQU     $               ; Restart Vector 0WBOOT:  JP      BIOS+3          ; Warm Boot Entry IOBTYE: DB      00              ; Input/Output Byte USRDSK: DB      00              ; MS Nybble = User, LS Nybble =                                   Disk BDOSV:  JP      BDOS+6          ; BDOS Function CallRST1:   DS      8               ; Restart Vector 1 RST2:   DS      8               ; RestF or even TRUE and FALSE in the same way.; Conditional DefinitionsNO      EQU     0000            ; Define NO YES     EQU     not NO          ; Define YESOFF     EQU     0000            ; Define OFF ON      EQU     not OFF         ; Define ONOr we could do something like this:TRUE    EQU     YES             ; Define TRUE FALSE   EQU     NO              ; Define FALSEThese statements will permit us to conditionally select certain options in the program at later points. The following three statemeDS      04              ; 007C - 007FDMABFR: DS      128             ; 0080 - 00FF        ENDThis example of code actually generates a Page 0. This is NOT something we normally need to do for ourselves, since the OS will always insure the correct values are stored in this area. It is for illustration only and is intended to be a little introduction as to style and form. Most of it is self explanatory, and I will minimize my description of it.In general, all programs we write will begin the same way:            ; EchelonIn this case, I used one of the SLR Systems' assemblers, SLR180+, a virtual memory assembler. All SLR assemblers use the same syntax. If you are using M80, then you would set M80 EQU yes, and SLR EQU NO. The same rules prevail in the case of the last equate for ZAS, the Echelon Inc., product. There could be others added to the list as well, but for our purposes, these are the only three assemblers that will concern us.Recall my discussing version and revision levels as a part of theal                 life.Even experienced programmers take time to create the above section in EVERY program they write. Think about it... Would you remember all of the stuff five or even ten years from now? Probably not, and this bit of documentation serves to inform the reader, as well as refresh our own memories in the future. It is a good programming practice. Do it!The next two statements are directives to the assembler, defining two commonly used values, YES and NO. We could have defined ON and OFart Vector 2 RST3:   DS      8               ; Restart Vector 3 RST4:   DS      8               ; Restart Vector 4 RST5:   DS      8               ; Restart Vector 5 RST6:   DS      8               ; Restart Vector 6 RST7:   DS      8               ; Restart Vector 7 (Debug                                   Utilities)DS      16              ; 0040 - 004F        DS      11              ; 0050 - 005BFCB1:   DS      16              ; Default FCB 1 FCB2:   DS      16              ; Default FCB 2        nts define which assembler we will use when we put the program together. Only ONE of the options should be YES, the rest should be NO. Already, we are using the conditionals we defined in the last few lines of code. Why do this? Well because it is important for others to know "how" you assembled the program, and what assembler you used. Not all assemblers are created equal!; Assembler DefinitionM80     EQU     NO              ; MicroSoft SLR     EQU     yes             ; SLR Systems ZAS     EQU     NO   a TITLE and a brief few lines of what the program's name is, who wrote it, what the language used is, the date and some comment about previuos versions. If desired, a few (very few) lines can be added to address its function:; Program ; Segment       Page 0 ; Author        Ben Grey ; Language      Z80 Assembler ; Date          04 APR 88 ; Previous      None; Function      This is a code segment to illustrate the contents                 of ;               the CP/M Page 0. It is "never" compiled in re file name? Well inside the program it is necessary to identify the same two values. In addition, I've included the Version Date so we can tell when we last modified the program. You should get in the habit of updating these values EVERY time you edit the program. If desired, the time may also be added, altho not required:; Version Levels, Date, TimeVERSN   EQU     00              ; Version  Number REVSN   EQU     00              ; Revision LevelVMNTH   EQU     04              ; Version Month VDATE   U     BDOS+0E00H      ; Base of BIOS EPROM   EQU     BIOS+1000H      ; Base of EPROM or Buffers[Note: if 2K = 8*256, then 4K = 16*256, thus 10*100 = 1000H.)Confused? I hope not. Hexadecimal arithmetic is discussed in nearly every computer textbook I have ever seen. Remember, when dealing with computers, they "think" in base 16 (hexadecimal), not base 10 (decimal) like we do. So you ask, why couldn't we use decimal numbers to define these values? The answer is we could, but since we are talking about thetant.CPM22   EQU     NO              ; CP/M Version 2.2 CPM30   EQU     NO              ; CP/M Version 3.0 (CP/M+) ZCPR3   EQU     yes             ; Using ZCPR  3.x ZRDOS   EQU     yes             ; Using ZRDOS 1.xThe next set of equates define some of the important and often used addresses in our systems:BASE    EQU     0000            ; Base of Memory CCP     EQU     BASE+0D200H     ; Base of CCP BDOS    EQU     CCP+0800H       ; Base of BDOS BIOS    EQU     BDOS+0E00H      ; Base of BIOSBASE defie are not, they will not be used. Please note the style, the conditional "if" is offset one column, and is in "lower case"... This makes it easy to find in a large listing (ditto for the "endif"). if     M80 .Z80 ASEG ORG     0000         endifIn the case of M80, which can assemble both 8080 Intel and Z80 Zilog mnemonics, we need to inform it which set of mnemonics we are using. In our case, we will ALWAYS use the Zilog codes. (The .Z80 directive)The ASEG statement tells M80 that this is an "absolutee also know that the BDOS is 14 256-byte pages (14 in hex is 0E, so 0E*100 = 0E00H).If we also wished to include the usual 2K of buffer space generally found after the BIOS, we could add one more equate ... however, we would have to know EXACTLY how big the BIOS is, and round it up to the next even 1K boundary. We have assumed a 4K BIOS so we would have:BASE    EQU     0000            ; Base of Memory CCP     EQU     BASE+0D200H     ; Base of CCP BDOS    EQU     CCP+0800H       ; Base of BDOS BIOS    EQEQU     04              ; Version Date VYEAR   EQU     88              ; Version YearVHOUR   EQU     07              ; Version Hour VMINS   EQU     00              ; Version Minutes VSECS   EQU     00              ; Version SecondsSince we will be writing programs to run under both CP/M and ZRDOS, and will probably be using both the standard CCP and ZCPR, we should define these values also. This is a further aid to documentation. At this point, it is not significant, but later it will become quite impor real hardware, and will be concerned about "real memory" addresses, it is more appropriate to work in hexadecimal values. After all, the output of the assemblers always provides us with the hex values in the listing (NEVER the decimal ones)...The next few statements are significant if you are using M80 as the assembler. They are NOT required for SLR or ZAS and therefore we want to make them "conditional" on the assembler we are using. That is, if we are using M80, then these statements will be used, if wnes the "bottom" or "beginning" of memory. Notice that the CCP equate is defined as the BASE+0D200H. This is done so that the program can know not only where the CCP is located, but also to keep the "symbol" CCP a relocatable item. (I'll discuss relocatability later.)Likewise, the BDOS address is an "offset" of fixed value from the CCP, and since we know the CCP is 2048 bytes, or 8*256, (note that 256 in hex is 100) so we add 8*100 (0800H) to the CCP beginning address, to find the beginning of the BDOS. W" segment. It is not required by the other two assemblers.The ORG statement tells M80 where in memory we want this code located.  This directive causes M80 to put a special value in the relocatable file that will be generated by the assembler, so that L80, the linker, will be able to "place" it in the proper memory area, namely Page 0.Now we have the basic definitions, we will examine just what is in Page 0, and what the values mean...RST0    EQU     $               ; Restart Vector 0WBOOTE: JP          00              ; Input/Output ByteThe label USRDSK defines two values: the four leftmost bits contain the current "user area" and the four rightmost bits define the current "disk" (the logged in or default disk). When a byte is divided into two 4-bit values, we refer to them as the Most Significant (MS) and Least Significant (LS) Nybble. Perhaps an illustration will be helpful:USRDSK: DB      00              ; MS Nybble = User, LS Nybble = Disk               User DiskMS Nybble -->  0000 0000 r 6 RST7:   DS      8               ; Restart Vector 7 (Debug Utilities)DS      16              ; 0040 - 004F        DS      11              ; 0050 - 005BFCB1:   DS      16              ; Default FCB 1 FCB2:   DS      16              ; Default FCB 2        DS      04              ; 007C - 007FDMABFR: DS      128             ; 0080 - 00FF        ENDThe first line, defines (informationally) where the first Restart Vector begins. It just so happens, this is the same address where the jump to the Bmight use Function Code 11 (Read Console Status) to determine this. The code would be:LD      C,11          ; FC = Console Status CALL    BDOSFV        ; Perform OS FunctionWhen control is returned to us from the OS, (right after the CALL), we will have a value in Register A. If it is 00, no character was waiting, if it is NOT 00, then a character is waiting. But I digress! We only have a few more lines of code to go, and we will have completed this article...Unfortunately, this kind of explanation re knows about this jump table, and when we make a function call to BDOS, it locates the BIOS and provides the necessary linkage for us.WBOOT:  JP      BIOS+3          ; Warm Boot EntryThe next line defines the label IOBYTE. It is defined as a single byte (DB = Define Byte) with a value in the byte of 00H. This byte is often used by the BIOS and other applications to "re- direct" the input/output of a program. (In standard CP/M systems, the STAT command manipulates the contents of this byte.)IOBTYE: DB  BIOS+3          ; Warm Boot Entry IOBTYE: DB      00              ; Input/Output Byte USRDSK: DB      00              ; MS Nybble = User, LS Nybble = Disk BDOSFV: JP      BDOS+6          ; BDOS Function CallRST1:   DS      8               ; Restart Vector 1 RST2:   DS      8               ; Restart Vector 2 RST3:   DS      8               ; Restart Vector 3 RST4:   DS      8               ; Restart Vector 4 RST5:   DS      8               ; Restart Vector 5 RST6:   DS      8               ; Restart Vecto <-- LS Nybble                 Bit 7  ----/         \---- Bit 0The next line BDOSFV: JP      BDOS+6          ; BDOS Function Calldefines the entry point to the BDOS that we call to have an OS function performed for us. Most programs load a "function code" into Register C, and appropriate information in the other registers and then perform the instruction:        CALL    BDOSFV        ; Perform Function CallFor example: suppose we want to know if a character is waiting on the console for input. We IOS Warm Boot Entry is found. The EQU $ says: assign the address of the Program Counter (0000 at this point) to the label RST0.RST0    EQU     $               ; Restart Vector 0The next line defines the label WBOOTE (warm boot entry) as a jump (JP) to the BIOS+3. If you looked at the beginning of the BIOS, you would see that it begins with a series of jump instructions, pointing to the various functions the BIOS provides. Normally, we do not concern ourselves with this information, because the BDOS alsoquires lots of words and examples. The contents of Page 0 are so very important, I wanted to start with it so you will understand some of the more rudimentary locations in your memory image.The next seven lines represent the remaining Restart Vectors. There are eight of them in the Z80 machine. In general they are unused at present in most machines. However, with the new OS and some new applications, these bytes will be used. (DS = Define Storage in bytes)RST1:   DS      8               ; Restart Vectore.You must have a printer capable of printing a minimum of 121 columns.  Most 80 column dot-matrix machines can be set to "condensed" mode and will work fine. The file can be printed with PIP and has imbedded ^L (Control-L) at appropriate places to cause a Form Feed (new page). The source code for this file is also available on my Z-Node, Access Programming and PEG-3. Refer to your printer manual or documentation on PIP for more printing details.One more point of interest: Some assemblers display the asey allocate.DS      16              ; 0040 - 004F        DS      12              ; 0050 - 005BAlso located in Page 0 are two "default" File Control Blocks, at addresses 005CH and 006CH. These FCBs are generally filled in by the CCP if we have specified "arguments" on the command line. I will not bother with a discussion of their structure at this time. We will cover it in detail at a later time.FCB1:   DS      16              ; Default FCB 1 FCB2:   DS      16              ; Default FCB 2Next, are          ; Version Month VDATE   EQU     04              ; Version Date VYEAR   EQU     88              ; Version Year; Operating System DefinitionsCPM22   EQU     NO              ; CP/M Version 2.2 CPM30   EQU     NO              ; CP/M Version 3.0 (CP/M+) ZCPR3   EQU     yes             ; Using ZCPR  3.x ZRDOS   EQU     yes             ; Using ZRDOS 1.xBASE    EQU     0000            ; Base of Memory CCP     EQU     BASE+0D200H     ; Base of CCP BDOS    EQU     CCP+0800H       ; Base of BDOS BIOS   le, I have described the basic layout of memory and the contents of Page 0. Next month, we will begin a "real" program and discuss more memory management. If you do not have BUFFERS.DOC at this time, you might retrieve it for next months column.Your assignment: You should try to assemble this program and print out the resulting listing. Keep it handy for the future, as we will refer to it over and over again. If you do not have M80, SLR or ZAS, you can get a copy of the compiled listing file from my Z-Nod 1 RST2:   DS      8               ; Restart Vector 2 RST3:   DS      8               ; Restart Vector 3 RST4:   DS      8               ; Restart Vector 4 RST5:   DS      8               ; Restart Vector 5 RST6:   DS      8               ; Restart Vector 6 RST7:   DS      8               ; Restart Vector 7 (Debug Utilities)The next two lines, merely allocate 28 bytes of memory. Nothing of any interest is in them. The addresses to the right, in the comments area, merely indicate what "memory locations" thsembled address as it is actually stored in memory, low byte, then high byte.  The SLR assemblers can display it both ways. I chose to show it as high-byte and low-byte, simply because it is easier to read. M80, however, does just the opposite.         ; MicroSoft SLR     EQU     yes             ; SLR Systems ZAS     EQU     NO              ; Echelon; Version Levels, DateVERSN   EQU     00              ; Version  Number REVSN   EQU     00              ; Revision LevelVMNTH   EQU     04     four bytes, merely allocating memory as above:        DS      04              ; 007C - 007FAnd lastly comes the default Direct Memory Access Buffer. This is the area where CP/M generally stores a record read from one of the floppy disks (or hard disk). It is ALWAYS 128-bytes, because CP/M thinks ALL physical records are 128-bytes in length.DMABFR: DS      128             ; 0080 - 00FFThen the assembler directive, END, to define the obvious, the end of the program.        ENDIn this month's articÌ1 ×68ADANCON 06 Report from the Slopsema's*****************************************************************My  first  recollection  of arriving at ADAMCON in Sarasota  this year was getting to warm,  sunny Florida and missing the driveway to the Holiday Inn.   Solving that problem was easy,  unlike  the ability  to digest all of the information and knowledge which was to be set forth at the convention.   We (excuse me if I forgot to introduce  ourselves; I'm Bob with my wife, Judy) found the front ente delving into  ADAM  lore and what we need to see come out in the  way  of products.   We  also went to the various rooms where modems  were hooked up and ganged up on CompuServe for a convention conference - which  if you missed,  was a superb example of  the  electronic superhighway at work!Tired  yet?   Sunday signaled and end in sight to the convention, so much was packed into that day.  Desktop Publishing, PowerPaint Part II,  hardware additions and how to do it!,  Midi  interface, LOGO  Part II and stop,  the opening night reception with all the goodies and drinks and of course, seeing everyone together for the first time - in our case after a two year drought.  It was  great seeing old friends and meeting new ones, but we certainly missed seeing some familiar faces from way up north - hope we see them next year  in Kitchner, site of ADAMCON 07.  Friday  began  with  Bob Blair convention chairman  giving  us  a welcome  to the sixth annual ADAM convention.   This was followed by PJ Herrington on "Ks presented,  and how  the  meals   and accomodations  were;  what  is harder to describe is the  feeling that  one gets when he/she first gets registered and those  faces from past conventions appear - like a whole new set of  relatives here for a reunion.  Then there is the whole experience of sharing a  common  interest in whatever part of the ADAM computer  is  in your  field of expertise - and whether you feel you are an expert or  not,  you  usually  find out that there is  someone  who  can certainlyay  morning brought about more TDOS,  touring the inside of the  ADAM  (actually Rich tore the thing apart  piece  by  little piece)  and  PowerPaint.   Various  lunch meetings  for  ANN  and programmers  were  held  poolside and wharfside  - ain't  Florida great?   The afternoon was to be freetime,  but with the LOGO and word  processor sessions available,  plus the demonstrations  for the fax program,  ultimate ADAM,  and repairs and vendor sales, I don't  think anyone went anywhere!   Evening brought morrance  quite handily and stumbled across the registration desk set up just inside,  introduced ourselves to the ADAMites manning the  desk and were hardily welcomed and introduced.   As we  were registering, many familiar faces from past ADAMCON's would appear and welcome us.   Finally,  after what seemed five  minutes,  but probably  an  hour,  what with meeting all our old   friends  and making  new friends,  we received our materials packet consisting of the agenda, area maps, advertisements, etc.Next  my favorite - Fileserver using and  IBM.   Just time for last minute preparations and then the banquet along with the  usual cocktail hour.   Following a delicious dinner were the presentation of the Gallery of Honor winners,  door prizes,  more door  prizes,  the  presentaion  of  the  banner  to  next  years convention hosts,  and lots of goodbyes,  hugs and plans to  meet next year in Kitchner, Ontario, Canada!It's  easy  to  tell you the mechanics  of  the  convention,  the subjects  of  the  sessioneeping the ADAM Community  Together".   The morning  sessions started out with the easy (?) stuff;  Intro  to TDOS,  Graphics Overview, &  Machine Language Made Easy (not what I called easy),  followed by lunch and afternoon sessions on word processing,  electronic highways (Zonkers term for modeming), and graphics (my personal favorite). Nightime brought about the usual - to  an ADAM convention - chasing around to different  rooms  to try out software, hardware and tips and tricks with each other. Saturd use what you have to offer.   There are always a lot of little  tricks and tips to learn,  even if you  feel  comfortable using  your favorite program - it's a comment often  heard.   But the  best  part  of  the  entire convention for  me  was  to  see something  that  just  amazed  me  - Rich  Drushel's  work  on  a FileServer program to make ADAM the master and any IBM the slave.  It could open up a whole new era for the ADAM;  just think  about using   andy  type  IBM  drive,   CD-ROM,   scanners(?),  running on a TI.  On that he showed GIFs to demonstrate the ability of the AIM board for graphics.  More on the specs later.  At that time he set a price for the board.  The current price is $179 US installed.At AdamCon04 I was able to demonstrate a partly working 80 column patch for TDOS (at AC03 I had not written any custom drivers).  I also now had my machine in a IBM AT case, which made it both more portable and durable. Gary had worked on the custom circuitry, but we needed to decide on a couple of cÌ1 ×68Editor's Note: The following was picked off Ottawa Freenet and is presented as received. It is an article written by Dale Wick, long time ADAM enthusiast and member of the Metro Toronto ADAM User's Group.Message #23 (28 is last): Date: Mon Nov  7 13:30:11 1994 From: dmwick@undergrad.math.uwaterloo.ca (Dale Wick) Subject: AIM board progress To: coladam-list@calum.csclub.uwaterloo.ca (coladam-list Mailing List)There is a small amount of progress that has been made since AdamCon on the AIM board.  F SmartBASIC 1.x  I even had a reasonable Assembly Language support library for writing applications that used AIM board graphics and modes.  I felt at AdamCon05 that Gary  Gary would soon ship his promised AIM boards.One of his concerns at the time of AdamCon04 was that the installation was too hard, but HLM-GMK were willing to take up that problem. At AdamCon06 a few of us agreed that if we were to buy a bunch of the boards, then maybe Gary would ship both them and the promised boards.  Even if we had  the AIM board didn't have any of the extra circuitry required to be compatible with the Adam.  Gary actually wired a button into the case of my Adam which allowed me to manually reset the AIM board. He had finished the custom circuitry for the TI version of the board, which is same design and he calls it the TIM (TI Image Maker).At AdamCon03 we were able to demonstrate the rock solid picture available on the Adam, but since I hadn't had a chance to write any drivers,  Gary brought with him a working TIM  etc  - mindboggeling ! It's usually a little hard to realize that the end is  near,  but the banquet dinner and some prizes of anything from harddrives to disks  and datapacks for the ADAM help to sooth the pain - and of course the promise that we can look forward to another meeting of the group with hopefully more participants next year in Kitchner!                         SEE YOU THERE!ustom IO ports for extended control of the Palette, etc.   As a result of AdamCon04 Gary received 6 orders plus he donated 1 as an AdamCon door prize.By AdamCon05 I had a working 80 column TDOS patch, and I now had the source for TDOS to make a generic driver for TDOS (although I still haven't completed that part).  I also had an image viewer for showing  pictures in 256 colour mode, and I had a GIF viewer for a regular Adam and I promised one for the AIM board.  I also had some sample programs written inirst, what is the AIM board and what can it do?AIM stands for Adam Image Maker.  Is was proposed by Gary Bowser of Oasis Pensive Abecutors (OPA makers of the smallest ever Adam 64k RAM card) at AdamCon02 in Toronto, where he showed schematics of his proposed design.For AdamCon03 he installed one of these boards in my machine.  His deal was that I could get an early version, as long as I didn't mind having my machine experimented with, and I wrote drivers for the board, which I agreed to.  At that point,to put them together and install them ourselves, at least the boards would be available, and everyone would finally be put right.  Since that time I have contacted Gary Bowser who is now working under his corporation (New and Improved Technologies)and asked him to price out the parts and give me a price.  Once again progress has been slower that I might have liked, but hopefully we can work something out.Specs:Although this has been called a VGA card or an EGA card for the Adam, it is actually differentid that thhee production run of the AIM boards will take a while still.Dale Wick  (dmwick@csclub.uwaterloo.ca)PS. Please edit the spelling mistakes and grammer for ANN or your newsletter.  Also note that I read any mail that gets to me, and it gets to me from anyplace I send mail. -- dmwick@csclub.uwaterloo.ca|Ask me about my Coleco Adam.  It does tricks CompuServe: 76545,2566| Come to AdamCon07 in Toronto Canada Maintainer of the Coleco Adam list. Mail coladam-admin@csclub.uwaterloo.cangable palette (those 16 colours on the Adam chan be changed to one of 512 different possibilities).  Also the horizontal and the vertiacl resolution can be doubled.  This offers up to 512x384.  The small area at the top and bottom of the screen can be replaced with what's called Overscan graphics, allowing a resolution of up to 512x424. In 256x192 mode you can have a fixed palette of 256 colours (3 gbits green, 3 bits red, 2 bits blue).  At any resolution you can have 16 colours from 512, with no colour bl on all ADAM bulletin board services and other BBS's willing to carry them, and that there should be no charge of any form to individual users for downloading these disks.2) ANN disks should not be available on BBS's because they are being sold to individual subscribers. To put them up for users to download  would be to make the product available for free while some users not able to contact a BBS  were being compelled to pay for the same product.Those in favour of the BBS method of distribution argue t was the Commodore 1084 and the adaptor to get was the Commodore RGB->RF converter. If the former is purchased, then a custom cable must be built to attach to the Commodore 1084.  If the later is boought, then you can attach the Adam to any TV or Composite monitor.  The probelm with the TV solution is that it is probably very hard to read the 80 column text on a TV. In either case Commodore is not making anything right now, so I would imagine that these monitors are getting harder to find.  Besides I'm afra that both of those.  First it runs on a 9958 Video Display Porocessor.  It is backwards compatible with the VDP in the Adam. That means that for the most part all Adam software will simply work without change.  There are some video games like Zaxon which lock up on the AIM borad, and some video games like Smurfs that run much faster on the AIM board.  Other than that everything else seems to be compatible.  For  new software, the AIM borad offser many new things.  It offers 80 column text mode, and a chaÌ1 ×67To BBS or Not.By R.H. MitchellRecently there has been a hot discussion on the FIDO-net about the distribution of ADAM News Network monthly disks. The topic has arisen before, and over the years various ANN policies with respect to disk distribution have led to confusion within the community over how and where the disks are to be made available.To summarize the arguements presently being heard, it could be said that there are essentially two points of view:1) ANN disks should be made availableeed problems.  There is also a special 4 colour mode useful for wordprocessing.  The VDP also has a blitter which does hardware line drawing, block moves, filling, and logical operations.  These can be used for fast action games, and paint programs.  It also has a special smooth scrolling mode for for games..So the next question is (assuming there were AIM boards avaiable), what do you need to make use of this great video replacement..  Well, you need the right monitor, or an adaptor .  The monitor to gethat the subscription fee is charged essentially to cover postage and mailing costs, and that no charge is being made for the actual material on the disks. They claim that the early intent of ANN organizers was to gain support for ANN disk distribution from the Bulletin Board Community and that once the demand was established, ANN froze out SYSOPs who had gladly and willingly provided this support. This the SYSOPs felt was unfair.Those supporting distribution of ANN disks to individual users for a subscriphy not? who is going to be stupid enough to spend long distance dollars to get it?" and so it was allowed. flash forward a bit. i put up the Asylum bbs. at this point in time, bob blair is responsible for ann, barry having bowed out. bob said it was okay to put up ann on my bbs.  that brings us to the present and now YOU are responsible. ( the weight crushing down on you yet, old friend?) and you seem to have another point of view. tis true, in this age of 2400 baud that a fellow could come in and get i inclusion on the disks is under discussion as is the copyright status of the disks themselves. Opposing viewpoints hold that the material may not be freely distributed without permission from the author, or that once it has been made part of an ANN disk it is fair game for anyone else to use or distribute as they see fit.The issue and its related parts is presently being discussed within the ADAM community. If you wish to be part of this discussion please drop a line with your comments to the following a as soon as everyone has had their say.line drawing, block moves, filling, and logical operations.  These can be used for fast action games, and paint programs.  It also has a special smooth scrolling mode for for games..So the next question is (assuming there were AIM boards avaiable), what do you need to make use of this great video replacement..  Well, you need the right monitor, or an adaptor .  The monitor to get4                                     11:12:00  Subject:  Todd Preston's Article    Status:  Public Received:  Yes                      Group:  Adamwell, let me put it in a historical light. i had asked barry long ago and far away if it was okay to have ann disk material on a bbs. i wasn't running one at that point, i don't think. however, i wanted folks like herman and the rest of the A-NET bbs bunch to be able to have these available.barry mulled it over and said something along the lines of "sure, wtion fee claimed that revenue so generated was needed to support other ANN projects such as the provision of seed money for ADAMCONs, and the production of publications such as the ADAM Survival Guide. They stated that is was unfair to make something available to part of the community for free when another part of the community had agreed to pay for it.Also at issue is the matter of copyright. Various opinions have been ventured, some of them expert. The copyright status of material contributed to ANN fort all in about 7 minutes and that's not too much money spent. 'specially as i put up the ENTIRE disk, either as .LBR or .IMG. should i stop doing that?  how about if i put up one or two of the files, sort of as a sampling? what do others think of this? or is this a decision you'd rather make on your own? let me know what you think, sir.--------------------------------------------------------------I've told Bart Lynch to carry on doing what he's doing for the time being. We'll make a decision as a groupddress:Ron Mitchell Editor ADAM News Network Apt 1107, 210 Gloucester St. Ottawa Ontario, Canada K2P 2K4.Or send an internet message to ac087@freenet.carleton.caIn the meantime, there follows some history on the issue for your consideration. This was graciously provided on FIDOnet by our good friend and fellow ADAMite, Bart Lynch.---------------------------------------------------------------To:  Ron Mitchell                   Message #:  52 From:  Bart Lynch                   Submitted:  12 Nov 9Ì1 ×65The following was received from the ADAM International Echo of FIDOnet, and is presented as received.To:  All                        Message #:  31 From:  Terry Cairns             Submitted:  13 Nov 94 19:09:00  Subject:  Scruffybear Software  Status:  Public Received:  Yes                  Group:  AdamAs promised here is a recent copy of my Catalog for the adam:All prices are in U.S. Dollars and therefore Canadians should make the necessary compensations!!! Sorry for that but it's a by-productg to tell you all for some time now about my source for esoteric colors of Panasonic-compatible ribbons. To wit: RIBBONS AND TONER TO GOThey have both a WATS line and a FAX number. WATS: 800-749-6910FAX: 407-679-6910 The similarity in these numbers is intentional.You will probably talk to Pat, who is cheerful and helpful.  PLEASE tell her I sent you; this helps enormously.  These ribbons are generic, but they work great with my Panasonic KX-P1180.  I don't like them as well with my KX-P1124, but-Casino On-line Games #1      $15 Casino On-Line Games #2      $15 Sports On-Line Games #1      $15 WarGames On-Line Games #1    $15 SkillTest On-Line Games #1   $15 Adventure On-Line Games #1   $15 Space On-Line Games #1       $15All the above disks have 10 On-line games included with documentation!!!98% of the public domain programs put out for Adam are also available at $3 a disk!!! Ask for specific titles!!!All software is available on Tapes, 160K Disks, and 720K Disks!!!Add $3.00 for each titing using an old ribbon or setting the gap be a bit wider on the print head.  My guess is that the powder blue is used by people who want a color which won't reproduce in photocopies.  My absolute favorite is purple; it prints much darker than black, and lasts longer. k!!!  (416)741-2432--- Maximus 2.02 * Origin: T.A.P.P.S. MUSIC BBS (416)741-2432 (1:250/307) =-=-=-=-=-=-=Ì1 ×67Color Print Ribbons:The following message was left on Compuserve's Adamania section by Patricia Herrington, Sysop to all.--------------------------------------------------------------- This morning, I dug out Yule Trim to make Christmas labels for my sister Mary (who, as some of you know, owns an IBM but prefers the labels I make with Swift's Label Printshop, particularly those I make from my own graphics.) As I searched for red and green and silver ribbons, it occurred to me that I have meanin of all my distribution sites being in the U.S.!!!Pro Golf Champ               $10 Pro Golf Linkbuilder         $15 AFL Football                 $10 Superior Basic V1.3          $5 Superior Basic V1.4          $10 Superior Basic V2.1          $15 Superior Basic V3.0          $20 TI PICS Vol 1-7              $5 each ALL 7 TI PICS Volumes        $25 APPLE PICS Vol 1-5           $5 ALL 5 APPLE PICS Volumes     $20A-NET BBS Software (Must have A-Net BBS to Run) ---------------------------------------------- then I don't use that printer with labels, anyway.  Merry Christmas!  PJ know it's early, but that's okay; the holidays tend to be too hectic to do all we want to do.  I guess it's more PC to say "Seasons Greetings" though; and, of course, PEACE, and SHALOM, and stuff.) Ribbons I have bought from the above source include red, green, gold, silver, blue, purple, orange, brown, and yellow.  There is also a "powder blue", but you can acheive that effect with a regular blue by a number of methods...  includle on Tape orders!!!Add $3.00 for shipping and handling on all orders!!!All Unpirated copies of the above software are supported by Scruffybear Software and the T.A.P.P.S. Music BBS!!! Call the BBS if any problems and queries!!!T.A.P.P.S. Music BBS  300-14400 Baud  The Adam Information Center 70 File areas 162 Message bases (Not all Adam) 70 On- line Games  24hrs 7 days a week!!!  (416)741-2432--- Maximus 2.02 * Origin: T.A.P.P.S. MUSIC BBS (416)741-2432 (1:250/307) =-=-=-=-=-=-=Ì1 ×69Editor's Note: Those of you familiar with Internet parlance will recognize the term 'FAQ' as meaning a file containing frequently asked questions. The following is one of two FAQ's presented on this disk. This one deals with copyright and was uploaded by ANN's founder and former Editor-in-Chief, Barry Wilson.To:  All                        Message #:  32 From:  Barry Wilson             Submitted:  25 Nov 94 15:31:00  Subject:  Copyright #1          Status:  Public Received:  Yes                  Grreproductive right: the right to reproduce the work in       copies;2) the adaptative right: the right to produce derivative works    based on the copyrighted work;3) the distribution right: the right to distribute copies of      the work;4) the performance right: the right to perform the copyrighted work publicly; 5) the display right: the right to display the copyrighted work   publicly;6) the attribution right (sometimes called the paternity       right): the right of the author to claim authoricensed to practice in your jurisdiction.Q1) What is a copyright?A copyright is a right of intellectual property granted to authors whereby they obtain, for a limited time, certain exclusive rights to their works.  In the United States, copyright is exclusively federal law, and derives from the "copyright clause" of the Constitution (Art. 1, sec. 8, cl. 8), which provides Congress with the power "to promote science and the useful arts, by securing for limited times to authors ... the exclusive right to phic works, pantomimes, and motion pictures and other audiovisual works.  It does not apply to sound recordings and to architectural works.  The attribution right and the integrity right apply only to works of visual art.Also, not all rights have the same duration: in the U.S., rights 1-5 normally have a duration of the author's life plus 50 years, while rights 6-7 endure only for the life of the author.These rights are not unbounded, and in the U.S., sections 107 through 120 of the copyright law catalofore: it need only embody a minimum level of creativity and owe its origin to the author claiming copyright. To use an extreme example, if two poets, each working in total isolation and unaware of one another's work, were to compose identical poems, both of the poems would meet the originality requirement for purposes of the copyright statute.  Feist Publications, Inc. v. Rural Telephone Service Company, Inc., 111 S.Ct. 1282, 1287-88 (1991).In the United States, these seven rights are recognized:1) the oup:  AdamFREQUENTLY ASKED QUESTIONS ABOUT COPYRIGHT (V. 1.0.1)Copyright 1993 Terry Carroll (c) 1993 Terry CarrollThis article contains frequently asked questions (FAQ) with answers relating to copyright law, particularly that of the United States.While all information in this article is believed to be correct at the time of writing, this article is for educational purposes only and does not purport to provide legal advice.  If you require legal advice, you should consult with a legal practitioner lship of the       work and to prevent the use of his or her name as the author      of a work he or she did not create;7) the integrity right: the right of an author to prevent the use of his or her name as the author of a distorted version of the work, to prevent intentional distortion of the work, and to prevent destruction of the work.         17 U.S.C. 106, 106A.Not all of these rights apply to all types of works.  For example, the display right applies to literary, musical, dramatic and choreogratheir ... writings."Copyright protects only an author's original expression.  It doesn't extend to any ideas, system or factual information that is conveyed in a copyrighted work, and it doesn't extend to any pre- existing material that the author has incorporated into a work. 17 U.S.C. 102(b), 103.The standard for originality is very low.  "Original" in this context means only that the work has its origin in the author. There is no requirement that the work be different from everything that has come beg a series of restrictions on the rights.  Some of these restrictions are discussed elsewhere in the FAQ (see, e.g., Q8 and Q16).And, by the way, many persons erroneously spell it "copywrite," apparently because of the association with written material.  The correct word is "copyright."  It derives from an author or publisher's right to the copy (copy here being used in the sense that it is used in the newspaper trade: the text of an article).--- * Origin: Andromeda II BBS  St. Loius, Mo (314) 869-5171he copyright might have been abandoned.  This is pretty rare.   Abandonment requires that the copyright holder intend to   abandon the copyright, and generally requires an unambiguous   statement or overt act on the part of the copyright holder that   indicates his or her intent to dedicate the work to the public   domain.  National Comics Pub. v. Fawcett Pub., 191 F.2d 594,   598 (2d Cir., 1951).  A statement that anyone who wishes to may   reproduce, perform, or display the work without restriction that of the United States.While all information in this article is believed to be correct at the time of writing, this article is for educational purposes only and does not purport to provide legal advice.  If you require legal advice, you should consult with a legal practitioner licensed to practice in your jurisdiction.Q2) What is "public domain?"In contrast to copyright is "public domain."  A work in the public domain is one that can be freely used by anyone for any purpose.It used to be that fact that the copyright holder had acquiesced in the publication of the work without notice back when notice was a requirement.  It was the publication without notice, and not the lack of enforcement, that actually worked to put the work in the public domain.  This is forfeiture of copyright, not abandonment.  Because the notice requirement is now gone from copyright law, these cases don't have much weight today.I can't find anything that supports the idea that failure to assert a copyright against an infrighted   (37 C.F.R. 202.1(a)).  Note, however, they can be trademarks.   As far as copyright law is concerned, they're public domain,   but as far as trademark law is concerned, they might be   protected. - The copyright might have been forfeited.  For example, the work   may have been published without notice prior to the change in   the law that eliminated the notice requirement (March 1, 1988,   the effective date of the Berne Convention Implementation Act,   PL 100-568, 102 Stat. 2853). - T (1:100/470) =-=-=-=-=-=-= --------------------------------------------------------------To:  All                        Message #:  35 From:  Barry Wilson             Submitted:  26 Nov 94 09:52:00  Subject:  Public Domain         Status:  Public Received:  Yes                  Group:  AdamFREQUENTLY ASKED QUESTIONS ABOUT COPYRIGHT (V. 1.0.1)Copyright 1993 Terry Carroll (c) 1993 Terry CarrollThis article contains frequently asked questions (FAQ) with answers relating to copyright law, particularlys   might be sufficient.  Simply posting it on a computer network   is not abandonment.There is a common belief that if someone infringes a copyright, and the copyright owner does not sue or otherwise put a stop to the infringement, the copyright is lost and the work goes into the public domain.  There is some pre-1988 law on this (e.g., Stuff v. E.C. Publications, 432 F.2d 143 (2d Cir., 1965) and Transgo v. Ajac Transmission Parts, 768 F.2d 1001 (9th Cir. 1985)), but it seems to derive mostly from the if a work was published without notice, it lost all copyright, and entered the public domain.  That's no longer true, and now public domain is more the exception than the rule.There are still a number of ways that a work may be public domain.  - The copyright may have expired (see Q4). - The work might be a work of the U.S. Government; such works   can't be copyrighted (see Q15). - The work might be one that can't be copyrighted.  For example,   titles, names, short phrases and slogans can't be copyringer can alone lead to placing the work in the public domain (if you have any authoritative information on this, please drop me a note at one of the addresses listed in the introduction).  Of course, circumstances may be such that the ability to sue a particular infringer might be waived (e.g., a statute of limitations may expire (see Q13), or if the infringer has reasonably relied to his or her detriment on the copyright holder's failure to sue, the doctrine of laches may bar a suit), but that's only wit            ; EchelonIn this case, I used one of the SLR Systems' assemblers, SLR180+, a virtual memory assembler. All SLR assemblers use the same syntax. If you are using M80, then you would set M80 EQU yes, and SLR EQU NO. The same rules prevail in the case of the last equate for ZAS, the Echelon Inc., product. There could be others added to the list as well, but for our purposes, these are the only three assemblers that will concern us.Recall my discussing version and revision levels as a part of thexample, what the programmer really wants to do is to retain the copyright, but provide a non-exclusive license to copy and distribute the work, with a condition on the license that only the cost of the media may be charged for it.  In this case, where the programmer has, in two consecutive sentences, both declared the work to be public domain and asserted a copyright in the work, it's unpredictable whether a court would interpret this as abandonment.If there is any restriction upon the use of the work, evputer users have to spend part of their time housekeeping--checking disk space, formatting new disks, cleaning out dead files, backing up good ones, moving others from disk to disk.  Fortunately, there are some public domain CP/M programs that make these jobs easier.  These programs are basic utilities that no one, from novice to expert, should be without.  (In fact, they were among the first programs to appear in the MS-DOS public domain after the IBM PC came out.  People who migrated from CP/M to IBM justregain copyrighted status.--- WILDMAIL!/WC v4.00  * Origin: Millennium BBS -*>ASP Approved<*- 1:100/480  (1:100/480.0) =-=-=-=-=-=-=t for others to know "how" you assembled the program, and what assembler you used. Not all assemblers are created equal!; Assembler DefinitionM80     EQU     NO              ; MicroSoft SLR     EQU     yes             ; SLR Systems ZAS     EQU     NO  h respect to that particular infringer, and does not affect the status of the copyright with respect to others.Sometimes you'll see a program on the network accompanied by a statement like "This program is public domain.  It may be freely distributed, but you may not charge more for it than the cost of the media."  Statements like these are contradictory.  If the program is public domain, you can do whatever you want with it, including charging whatever you want (although you might not get it).  In this eÌ1 ×69=============================================================== [   THE KAY*FOG RBBS  |  CPM-CC04.ART  |  posted 01/18/86  |  263 lines 14k  ]  The CP/M Connection                   Originally published in              by                               Computer Currents            Ted Silveira                           2550 9th Street        (copyright and all rights reserved)       Berkeley, CA  94710                            April 23, 1985                     BASIC UTILITIES     All comen the restriction that it cannot be sold, the work is not public domain. Rather, it's copyrighted, and the restrictions are essentially limitations on a licensee using one or more of the exclusive rights described above.  For example, the restriction that a work may only be given away for free is a limitation using the distribution right.Once a work is in the public domain, whether by expiration of copyright or by expressly being dedicated to the public domain by its copyright holder, it can never again  refused to give up these timesavers they'd gotten so used to.)FIVE BASIC UTILITIES     SD98 (Super Directory, version 9.8)   SD gets the vote as my "most used" program.  It's a small program with a number of options, but its main function is simple.  It shows the directory of a disk, with the files sorted into alphabetical order, and gives the size of each file, the free space left on the disk, the space used on the disk, and the number of files (see Listing 1 for an example).With one command, SD ans been written to the disk in the meantime, there's a very good chance that it has overwritten your erased file.  The time to use UNERASE is immediately after an accidental erasure.UNERASE only takes up 2K and is worth many times its weight in gold.  UNERA30 is the latest version; I've also used earlier versions successfully.FBAD60 (Find BAD sectors, version 6.0)   FINDBAD is another insurance program.  It checks a formatted disk for bad sectors and "locks out" any it finds by writing them into a speciaist files vertically, in four columns, rather than horizontally as in Listing 1.  Good-bye STAT and DIR.  I now put SD on all my program disks.SD also has some special options.  It can show every disk and user area in one command.  It can pause the display after every screenful.  It can show system files or not.  It can adjust the width of its screen display.  And it can write its output into a disk file.  People with hard disks will find the first two useful, Osborne owners the third, and almost everyonelways like to check.  FINDBAD's disk testing is non-destructive:  you can test a disk without damaging any files on it.FBAD60 is the latest version.  The earlier versions I've tried have worked well, but FBAD60 gives you a choice of either checking another disk or exiting to CP/M when it's done, a good feature if you're checking several disks.NSWP207 (New SWeeP, version 2.07)   If SD is the most used program on my disks, NSWP is the most useful.  It's my major housekeeping tool, and I'd hate to be withoyped ERA *.BAS when you meant to type ERA *.BAK, you'll understand the peace of mind this program gives.  It's a life-saver.When you first erase a file, it doesn't get wiped off your disk.  Instead, CP/M goes to the disk directory and marks the file as erased, making the disk space the file occupied available for use.  UNERASE simply goes to the disk directory and marks the file active again.  Your file will be recovered, safe and sound, as long nothing else has been written to that disk.  If something haswers the three most common questions:  Where's that file?  How big is it?  How much space is left?  Until I got SD, I had to use CP/M's DIR to answer the first question and STAT to answer the second and third.  But DIR doesn't alphabetize its display of files, and STAT is 6K and slow, with a display that's hard to read if your disk has many files.  SD is fast and small (2K, if you reassemble to eliminate unneeded options, about 4K otherwise).  And it has a very clean display, which you can even modify to ll file named [UNUSED].BAD.  As long as the bad sectors are in this file, CP/M won't try to use them.I use FINDBAD to check every disk after formatting.  Though formatting programs catch most bad sector problems, FINDBAD has found a few that have slipped through (saving me certain grief).  I also use FINDBAD periodically on any disk that is aging or behaving suspiciously.  Disks do deteriorate, and though disk errors can happen for various reasons--such as a disk not being seated properly in the drive--I a the last.You'll also find other directory programs in the public domain: D, S, XDIR, and others, some of which are SD masquerading under another name.  All will do the job for most people.  People who have hard disks will probably want the original SD.  SD98 is the latest, but I've used versions back past SD78--they work fine.UNERA30 (UNERAse, version 3.0)   UNERASE is my least-used program, but I put it on every program disk, too.  As its name suggests, UNERASE recovers erased files.  If you've ever tut it.If you take a look at the NSWP menu shown in Listing 2, you'll get an idea what it can do.  It does not slice, dice, or julienne, but it does nearly everything else.  You can copy, rename, and delete individual files.  You can tag files for mass copying or deletion and rename groups of files using wildcards (renaming *.OBJ to *.COM, for example).  You can squeeze files into a special compressed (but generally unreadable form) for storage and then unsqueeze them again.  You can check disk space, set  1.11),  USQ120 (UnSQueeze, version 1.20)  These two make a set.  SQ squeezes a file into a special compressed form, which may be as little as 70-75% of its original size.  There are programs, like NSWP, that will let you view squeezed text files, but you can't edit them or do anything else useful--they're mainly for storage.USQ, as you've guessed, unsqueezes a squeezed file, returning it to its original form.  USQ and SQ use an error-checking system to make sure that a newly-unsqueezed file is identical s.  Without NSWP, I would have been barking mad long before I finished.As you can see in Listing 2, NSWP presents the files on a disk one by one in a vertical column, in alphabetical order.  You can act on the file your cursor is next to and can move either up or down the list.  The menu scrolls off the screen as the list grows, of course, but you can get it back at any time by typing a question mark (?).  You can back out of any command up until the last moment, and NSWP always asks for verification befoing, you can use them with CP/M's SUBMIT program to do batch processing; you can't do that with NSWP.Try to get the latest versions of these programs, SQ111 and USQ120.  These versions were written in assembly language, so they're much smaller and faster than earlier versions, which were written in the C language.  You may also find these programs under their original names, NSQ111 (for New SQueeze) and NUSQ120 (for New UnSQueeze).  The RCP/M or users' group where you get them should also have a file callminor).  DISK7 doesn't have NSWP's squeeze/unsqueeze, file attribute, mass rename, or mass delete commands, and some of its other commands are not as flexible.  But it has all of NSWP's most used functions, it's equally fast, and it takes up only 4K on your disk.  If your disks are crammed full, DISK7 may be for you.THREE MORE PROGRAMS FOR SERIOUS COLLECTORS   If you get serious about collecting public domain software, there are three more programs you'll want in your basic kit.SQ111 (SQueeze, versionfile attributes (like read-only or system), send files to the printer, and view text files on the screen, even squeezed ones.  Just try getting PIP to do all that.Perhaps best of all, once NSWP is running, you can remove disks and insert new ones as often as you want; you never have to exit the program just to hit ^C.  This feature alone makes NSWP indispensable.  When I changed my computer from single-sided to double-sided drives, I spent a long afternoon with NSWP transferring all my files onto new diskto the original unsqueezed file.  And both allow you to copy a file to another disk while you squeeze or unsqueeze it.You need to be able to squeeze and unsqueeze files because all RCP/Ms (Remote CP/M bulletin board systems) and even some users' groups squeeze many of their files to save space.  To use these files, you'll have to unsqueeze them, and you'll probably want to squeeze your own files for backup storage.  NSWP can handle these chores, of course, but at times, SQ and USQ are handier.  For one thre deleting files.NSWP207 is the latest version.  It takes up 12K on your disks and is worth every bit; you'll never go back to PIP once you've used it.  There are similar programs you may run across, but most don't bear comparison.  WASH is older than NSWP and not as flexible.  SWEEP is very similar to NSWP (which was modeled on it) but is slower and much bigger (28K or so).The only other program you may want to consider is DISK7, which shows up in two versions, DISK76 and DISK77B (the differences are ed SQUEEZE.DOC, SQ/USQ.DOC, or something similar, which explains the ins and outs of squeezed files.DE-LBR (DE-LiBRary)  Along with squeezed files, you'll also need to be able to handle library files, which have the filetype LBR and are used heavily on RCP/Ms for convenience and compactness.  A LBR file is really several smaller files gathered together in a collection that CP/M treats as a single large file.  To use the LBR file, you must be able to extract all the member files from the library; you can'tEQU     04              ; Version Date VYEAR   EQU     88              ; Version YearVHOUR   EQU     07              ; Version Hour VMINS   EQU     00              ; Version Minutes VSECS   EQU     00              ; Version SecondsSince we will be writing programs to run under both CP/M and ZRDOS, and will probably be using both the standard CCP and ZCPR, we should define these values also. This is a further aid to documentation. At this point, it is not significant, but later it will become quite imporAll these programs are available in some version on every RCP/M I've ever seen; they're basic stock.  They'll also be available through any users' group that has a software library, though the RCP/Ms are more likely to have the latest versions.If you don't have a modem to call the RCP/Ms, and you don't belong to a users' group or know anyone who does, then scratch together $20 or so and join either FOG or PicoNet, both of which have large public domain libraries available in a variety of disk formats.  Yous of this material and I intend to check it out. Meanwhile the two Newsbytes pieces that appear on this disk should be used with discretion and giving full credit to NewsBytes Magazine and the individual authors as appropriate.(NEWS)(BROADCAST)(TOR)(00011)Discovery Channel Plans Technology Series 11/04/94 TORONTO, ONTARIO, CANADA, 1994 NOV 4 (NB) -- The Discovery Channel, a specialty television service, will run six pilot programs early in 1995 on computers and technology. Two series are expected to r                       (408) 847-0867           --------------------------------------------------------------- Ted Silveira is a freelance writer and contributing editor to several computer-oriented publications.  He appreciates suggestions or feedback and can be reached through the KAY*FOG RBBS (415)285-2687 and CompuServe (72135,1447) or by mail to 2756 Mattison Lane, Santa Cruz, CA 95065.  do much with them until you do.The simplest way to deal with LBR files is to use a program called DE-LBR, which does only one thing--extract member files from a LBR file with little fuss.  Two other programs, NULU11 and LU310, let you build and rearrange LBR files as well as extract members, but most people have no reason to build LBR files, though they can be useful on a hard disk.  If you want to build libraries, NULU11 is the best.  For most people, DE-LBR is plenty.WHERE TO GET THESE PROGRAMS Ì1 ×67Editor's Note:This is an item from the NewsBytes online magazine. NewsBytes has been around the online scene for some time and is available through subscribing BBS's on both sides of the border. Items are current and topical, frequently dealing with late breaking issues in the global computer industry. Bart Lynch as uploaded this particular piece which deals with upcoming upcoming television productions due to air early in 1995.NOTE To Newsletter Editors: I'm not at all sure of the copyright statu can also look in the "Networks and User Groups" section in  Computer Currents  for groups catering to specific machines, like BAMDUA for Morrows and BAKUP for Kaypros.Those of you who also have MS-DOS computers will find versions of all these programs, under similar names, in the MS-DOS public domain.FOG                                   PicoNet                  P.O. Box 3474                         P.O. Box 391566          Daly City, CA  94015                  Mountain View, CA  94039 (415) 755-4140 esult from the pilots.The first five hour-long shows, produced by five different Canadian production companies, will make up a mini-series that Discovery Channel is calling Cyber Wars. John Panikkar, program director for the television company, told Newsbytes viewers will be asked for their reaction to the shows, and this will play a part in choosing one of the shows to become a series of 13 half- hour programs to be broadcast next fall."The intent is to get the viewers of Discovery Channel as involved s been written to the disk in the meantime, there's a very good chance that it has overwritten your erased file.  The time to use UNERASE is immediately after an accidental erasure.UNERASE only takes up 2K and is worth many times its weight in gold.  UNERA30 is the latest version; I've also used earlier versions successfully.FBAD60 (Find BAD sectors, version 6.0)   FINDBAD is another insurance program.  It checks a formatted disk for bad sectors and "locks out" any it finds by writing them into a specia Frantics, who has a long-standing interest in personal computing.Binary Groove, the second program, will look at trends and news in computing, including a piece on how computers help build better swimmers and dinosaurs and an item on how to get the most from a computer salesperson.The third program, called Chipheads, is billed as a "show and tell exploration of computer technology."Hi-Tech Culture, the fourth pilot, focuses more on social implications than on hard-core technology, with topics such asl to allow that others are also busy and this gets put aside. Maybe I'll get used to operating in a vacuum. If that happens I'm going to start using a series of pseudonyms for by-lines.---------------------------------------------------------------- Communications are the key. This net is actually more than these disks. The net actually includes any and all ways that ADAMites use to communicate, yes even 'snail-mail' letters. We will not maintain any kind of existance either as individuals or as individ(Grant Buckler/19941104/Press Contact: John Panikkar, Discovery Channel, 416-494-2929, fax 416-490-7067; Public Contact: Discovery Channel, 416-494-2929) rased, making the disk space the file occupied available for use.  UNERASE simply goes to the disk directory and marks the file active again.  Your file will be recovered, safe and sound, as long nothing else has been written to that disk.  If something haas possible in decisions about Discovery Channel programming," he said.The sixth program will be an hour devoted to the Internet -- the increasingly popular global data network -- and Panikkar said this will be the pilot for a separate series.The first program, airing January 4, is called Cybersurfer. It will have a live studio audience, plus another kind of live audience of home computer users connected through the Internet. The host is Paul Chato, a former member of the Toronto-based comedy troupe TheÌ1 ×67Editor's Notesby Ron Mitchell Editor-in Chief ADAM News NetworkNovember 28, 1994State of the NET. Very very quiet to date. The first disk to hit the streets in a while, ANN-Nov-94, has probably not made the full rounds yet. Would like to make it quite clear somehow that I do expect to hear from anyone and everyone receiving ANN disks. Even if it's just a short 1 paragraph letter costing minimum postage. Now I'll be the first to admit that I'm terrible at responding to letters. Might be logica "Do kids learn better in a virtual school?" and "Is Cybersex better than the real McCoy?"The final Cyber Wars contender, E-Scape Velocity, will ask whether humans should explore outer space in person or let computers do it alone.The programs will air on Discovery Channel on consecutive Wednesday evenings from January 4, at 8:00 p.m. Eastern time, except in the Pacific Time zone where they will appear at 9:00 p.m. Pacific time. Each will be rebroadcast on the following Saturday at 3 p.m. Eastern time.ual groups. Surely it doesn't take much time to slap a few words on a piece of paper and stuff it into an envelope. "Yes I'm still here and still using ADAM - How are you?"-------------------------------------------------------------- Did you know:        1) We have a weekly live conference on Compuserve...for        those of you who have the money to do it. It's a blast       ... an hour of friendly chit-chat amongst ADAMites       Sunday evenings between 10pm and 11pm.    2) Beery Miller, GENIE sked for is public domain .GIF files. Few people are interested in anything else and will leave any club that doesn't provide it. What is the world coming to?User groups that cannot attract big name professional speakers appear generally to be in a state of decline, at least in this city, Canada's capital. -------------------------------------------------------------- For What It's Worth Dept.These disks will contain each month whatever is contributed plus what I can produce or collect from other sour          dmwick@calum.csclub.uwaterloo.ca      Don't forget, Neil and Dale, the brothers Wick will be       organizing ADAMCON 07, tentatively scheduled for July of      1995.    4) FIDONET traffic is up and there are a few new faces there,       a real breath of fresh air. If you have a BBS close to you       that carries FIDO traffic, check with the SYSOP to see if       he/she will bring in the ADAM International Echo. Most       FIDO carriers will do so, even if there is only 1 request.----lways like to check.  FINDBAD's disk testing is non-destructive:  you can test a disk without damaging any files on it.FBAD60 is the latest version.  The earlier versions I've tried have worked well, but FBAD60 gives you a choice of either checking another disk or exiting to CP/M when it's done, a good feature if you're checking several disks.NSWP207 (New SWeeP, version 2.07)   If SD is the most used program on my disks, NSWP is the most useful.  It's my major housekeeping tool, and I'd hate to be withoven away. Oh my! We won't get much vendor support like this.-------------------------------------------------------------- General Note on the state of things: I am also Commodore Librarian for the Ottawa Home Computing Club. Used to be a thriving source of revenue for the organization which also represent Amiga and IBM Special Interest Groups (SIGS). Now it appears that the IBM people are leaving in droves because OHCC does not place enough emphasis on product 'give-aways'. Software most frequently aTI-99/4 Sysop  has been trying to get       an ADAM SIG going on GENIE for months. Last time I was       on, it was a two way conversation between Beery and       myself. Where is everyone else!    3) Dale and Neil Wick are attempting to get some ADAM        chit-chat going on Internet. It started with a bang       but has now died off. Here's the address:               coladam-list@calum.csclub.uwaterloo.ca      And while we're at it: Dale Wick's Internet address is:                           ces. There may not be a diskfull each time. That will depend on how creative I get, and how many articles I get from fellow ADAMites.Best Wishes... and stay well!   -Ron Mitchell through (saving me certain grief).  I also use FINDBAD periodically on any disk that is aging or behaving suspiciously.  Disks do deteriorate, and though disk errors can happen for various reasons--such as a disk not being seated properly in the drive--I a---------------------------------------------------------- Most reports out of ADAMCON 06, (Sarasota Florida Oct 6- 9 1994) are positive. Good time was had by all. But there was one that disturbed me. George Koczwara of GMK/HLM Software in Cleveland phoned me last night and mentioned that they had sold absolutely nothing at ADAMCON 06. He added that he got the distinct impression that people had lost track of the fact that ADAM vendors were there to SELL merchandise. It appears some had expected it to be giÌ1 ×78                             G     Hardware                                  HLM     Software                               K        Co              NOVEMBER 1994                             MISCELLANEOUS PRODUCTS        Disks                                    Software 5.25 Disks (black)                      A-NET BBS Mods .............  N/C   100  .....................  32.00    PD Modem Pgms w/any Purchase  N/C    50  .....................  20.00     -compliments R. Freidman CIS-    *  Herman L. Mason - Sysop             George M. Koczwara - Sysop           * *****************************************************************************///////////////////////////////////////////////////////////////////////////// //                                 ORDER FORM                              // ///////////////////////////////////////////////////////////////////////////// |   Item Description                             | Qty |  Item Cost         | ----------------------------------------are send $1.00      Other programs  ..........  callModem Package Specials  Modem, serial, cables and ADAMlik 5   2400 Baud FAX ............ 145.00   2400 Baud ................ 130.00   1200 Baud ................  99.00                             ORPHANWARE TYPE PRODUCTS Disk Drive Conversions                  Cables  320K drive  .............  115.00       80 Col or Modem  .........   9.00  720K drive  .............  130.00       60 Pin Sideport  .........  14.00 80 Column Video Unit  .....  200                                           |     |                    | -----------------------------------------------------------------------------                                           Sub Total   |____________________|      Check or Money Order                Ship/Hndlg   |           3.50     |      U.S. funds only                                  ----------------------                                           Total Due   |____________________|      Send Order to:                            .00        20 Meg HD Sys (3.5 int) .. 225.00                                          40 Meg HD Sys (5.25 ext)   300.00***************************************************************************** *                   Monthly Specials are Posted on Our BBS                  *  *  Trading Post BBS                    ADAM eXchange BBS                    * *  24 Hours - 7 Days                   24 Hours - 7 Days                    * *  (216) 791-4022  8 1 N               (216) 883-9355  8 1 N                * 10  .....................   5.00 5.25 Disks (color)                      PD Pgms EOS/TDOS   100  .....................  38.00      160K disks  ..............   5.00    50  .....................  25.00    Smartbasic 1.X  ............  30.00    10  .....................   7.00  Disks come with labels, sleeves       ADAMlink V .................  24.95  and WP tabs                           Harddrive Upgrades                                          PowerPaint  ..............  call  For list of PD softw------------------------------------- |                                                |     |                    | ----------------------------------------------------------------------------- |                                                |     |                    | ----------------------------------------------------------------------------- |                                                |     |                    | ----------------------------------------------------------------------------- |     .00         w/3 Connector Y  .......  19.00 Orphanware Type Serial Board              60 Pin Sideport w/serial or  (in case)  ..............  45.00         modem cable  ............  23.00  with cables  ............  60.00         w/3 Connector Y  ........  28.00 Mini Winnie HD Accessories                ADAM DMP Parallel ........  13.00  Interface Cable  ........  40.00      No Slot Clock  .............  35.00  Game Board Mod  .........  40.00      Mini Winnie Hard Drive  Power Cable  ............  12             G   Hardware               HLM   Software      8912 Blaine Ave.        K      Co         Cleveland, OH 44106ites.Best Wishes... and stay well!   -Ron Mitchell through (saving me certain grief).  I also use FINDBAD periodically on any disk that is aging or behaving suspiciously.  Disks do deteriorate, and though disk errors can happen for various reasons--such as a disk not being seated properly in the drive--I aned this way       about programming techniques. In the case of this particular set       of programs, the author was a master of the ADAM computer.       Detailed study of Sol Swift's work would yield a payoff even if it       wasn't the only available guidance of GoDOS and GoBASIC.      I have over the years developed my own way of studying a program       listing. It takes work, and can sometimes be frustrating.  But       here are some tips:      1) Start at the beginning. Take it one line at Ì1 ×77      Going For Godos      by R.H. Mitchell      I dove into GoDOS without any particular idea of what might be the       most logical way of going about it. This article deals with the       dialogue box. We will start here and wander about until we've       covered most of Sol Swift's documentation.      Something I've discovered right at the outset is that the       documentation can only be fully understood when it is read in       conjunction with the listings of the sample programs tt variable is for.      3) Understand the meaning of each line      It's slow tedious work, but it will pay off. The temptation will       be to forge ahead even if you don't know what a particular command       does. Resist the urge, or later you'll pay.      4) Don't be afraid to mark up your listing.      You can always print another one. Take a pen and make notes as you       go. See if you can discover where the various segments of the       program begin and end, and draw a line between eait used there at line       1010.      It occurs to me that it may be a bit of a leap to presume that you       have DSconfig program. It is one of several that were released       with GoDOS and GoBASIC and it may have been separated in transit.       Since all of these files are now public domain, If your favourite       ADAM dealer doesn't have them, drop me a line.      The analysis of someone else's programming may seem to be a bit of       a bore, but you'd be surprised how much can be learlways like to check.  FINDBAD's disk testing is non-destructive:  you can test a disk without damaging any files on it.FBAD60 is the latest version.  The earlier versions I've tried have worked well, but FBAD60 gives you a choice of either checking another disk or exiting to CP/M when it's done, a good feature if you're checking several disks.NSWP207 (New SWeeP, version 2.07)   If SD is the most used program on my disks, NSWP is the most useful.  It's my major housekeeping tool, and I'd hate to be withoa time      Unless you are familiar with the program at hand there is no other       way. Variables are defined and routines written in a particular       sequence. If you jump into the middle, you're going run smack into       references to a variable or subroutine that you know nothing about.      2) Make notes.      This might seem like stating the obvious, but people sometimes       don't do it. Note each new variable the first time you come across       it. See if you can understand what thahat Sol       provides. My recommendation is that you print out not only the doc       files but also the sample programs. Keep them all in a loose-leaf       binder where you can also insert extra looseleaf paper. You're       going to need it.      Another thing I've discovered, as stated last article (Oct '94 ANN       disk) is that there are some commands which don't appear to be       described. <DOMSG> is one of them. 1f you look at the drive       configuration program DSconfig, you'll find ch of the       segments.      5) When you get to a 'gosub' or a 'goto', follow the thread. In       other words, go where the command tells you to go, and return to       the line that that the subroutine returns to. After a while,       you'll begin to see that certain subroutines do a particular       function many times at different points in the program.      6) A flow chart helps. See if you can put one together as you're       studying the program.         With all that said, we'll now taext fonts to the COLUMN60 mode so as to permit more       information in the box. It is also possible to utilize UNDERLINE60       to underline text as required. The DSconfig program does all of       this.      The box is closed with the command EXITDIALOG.      And that's all there is to it.      The following short GoBASIC program illustrates the use of       dialogue boxes and also the positioning of icons at the top of the       box. All I've not included any great messages of wisdom here, bthe program branchs       to line 6000 where it opens a dialogue box, places an "OK" icon       near the top left hand corner and prints a short set of help       instructions. The handpointer then appears over the "ok" icon and       the program waits for the user to read the message and press       return acknowledging the instructions. Once return is pressed, the       program returns to the top of the mainline.      Mainline?      That's jargon for the controlling routine within a program. It ines 5,6,7 set        11 REM up the arrays and     12 REM read in data at     13 REM lines 500-525     14 REM      15 REM *******************     16 REM      18 REM set graphics colors     19 REM background, fore-     20 REM ground and fonts     22 REM      23 REM *******************     25 GM2COLOR 15,1     30 GRAPHICS     33 SPECfontCOLOR 15,1     34 REM      35 REM *******************      36 REM      37 REM set big font and     38 REM and do heading     39 REM      40 PR #6: PRINT "ormation, some will be warnings and some       will offer choices such as STOP or CONTINUE. Anyone who's uses a       Macintosh or an IBM running Windows will be familiar with this       type of interaction.      While the dialog box is open, the placement all text written in       either direct mode or from a program is restricted to within the       dialog box. Using the commands HOME or CLS will clear the dialog       box, leaving all areas outside it untouched.  It is possible to       change tke a brief wander into one of       Sol's programs.  It's the one that allows you to configure GoDOS       for your particular complement of disk drives, but at this point       we're not particularly interested in what it does. Instead we'll       focus our attention on the subroutine starting at line 6000.      At this point the program has set up a message bar at the top of       the screen and a series of six pull-down menus. The fifth of these       menu choices offers help notes. If selected, ut       just enough information to show how text can be placed within the       box.      See what you can make of it, and we'll go into more detail in the       next installment.      0 REM *******************      1 REM Demo program      2 REM Godos Dialog Boxes      3 REM       4 REM *******************      5 DIM a$(50),g$(10)      6 FOR i = 1 TO 25: READ a$(i): NEXT i      7 FOR i = 1 TO 10: READ g$(i): NEXT      8 y = 7: REM y column coordinate for the icons.      9 REM      10 REM L      usually provides access to all the other program functions and a       place for the program to 'sit' while the user decides what to do       next.      In fact the process of opening a dialog box is accomplished with       one command:      STARTDIALOG      Wiith that command GoDOS constructs a box in the middle of the       screen complete with an area at the top convenient for placing       icons depending on the type of message tha the box will contain.       Some messages will be inf GoDOS RESIDENT"     41 PRINT "     ICONS      "     45 PR #0: REM normal font     46 REM      47 REM *******************     48 REM      49 REM open dialog box     50 StartDIALOG     51 COLUMN60     52 FOR x = 1 TO 25     53 REM look for down arrow     54 IF a$ = CHR$(162) THEN  x = x-2     55 IF x < 1 THEN  x = 1     57 PutICON x AT y,7: y = y+7: IF y > 22 THEN  y = 7     58 t = INT(RND(1)*10+1)     60 PRINT: PRINT: PRINT SPC(13);: PRINT a$(x)     62 PRINT: PRINT: PRINT: PRINT g$(t)     8project.BBS-DISK.TXTThe discussion on FIDO rages hot and heavy. How are the ANN disks to be made available. Will you the poor subscriber be affected?CAIRNS.CATScruffybear is back! Terry Cairns' latest software catalog.COLORRIB.TXTPatricia Herrington advises us  of her source for color ribbons. Courtesy Bart Lynch, who adds, "The following messages appeared on the Compuserve Information Service.  This is THE oldest electronic gathering place for ADAM users in the US and Canada.  Lots of good con5 DATA eighteen,nineteen,twenty,twenty-one,twenty-two,twenty-three,             twenty-four,twenty-five    500 DATA ADAM Lives!,ADAMCON 07 - Kitchener July 1995,SUPPORT YOUR ANN,             Did you write Your ANN article?    515 DATA Season's Greetings from ANN, merry Christmas!,All the BEST for             '95 FROM ANN    520 DATA Santa Loves ADAM!,Peace and Joy at Christmas,Season's Greetings             from OTTAWA  65534 REM Ron Mitchell  65535 REM Nov 20 1994 Bart Lynch introduces these NewsBytes articles this way:There exists an electronic news service called NewsBytes. I recently stumbled across it on a local Seattle BBS. NewsBytes reports on the news in the computer community at large, concentrating chiefly on the 'Big Boys' like IBM and Mac machines. I will try to sift through this and see what sort of 'generic'  computer news I can submit to NN."DSCSHOW.TXTtalks about the Discovery Channel's plans for five one hour shows devoted to computer tech and Ì1 ×67ADAM News Network.Monthly Disk - November 1994Contents.232APR88.GBGAn article on Virtual Systems by Ben Grey, Cedar Mill Z-Node 24. This may seem a little complicated for the novice, but with careful and patient reading it is well worth checking out.AC06.TXTA report from the Slopsema family on  ADAMCON 06. Provided by Bart Lynch.AIM-NEWS.TXTCaptured from Internet, this article by Dale Wick outlines        the history and present status of this long awaited but highly criticized ADAM 0 GET a$: IF a$ = "" THEN 80     81 IF a$ = CHR$(27) THEN  PR #0: ExitDIALOG: TEXT: END     85 IF y <= 7 THEN  PutICON 18 AT 21,7: GOTO 90     86 PutICON 18 AT y-7,7     90 CLS     91 IF x > 24 THEN  x = 24     92 NEXT     93 REM      94 REM *******************     95 REM      96 TEXT: END     97 REM      98 REM      99 REM *******************    100 REM     500 DATA one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,             thirteen,fourteen,fifteen,sixteen,seventeen    50versations take place here and solid information is exchanged.  Check it out!"COPYRGHT.TXTA FAQ (Frequently Asked Questions) from Barry Wilson and Terry Carroll. Talks about copyright responsibilities in the US when it comes to software. CPMCC04.TXT Oldie but goodie from the KayFOG RBBS.  Article by Ted Silveira on basic CP/M utilities. Some of the material here is dated, such as references to 'squeezed' files, but in the main it's still valid and good stuff for the CP/M or TDOS newcomer.DSCSHOW.TXTing, you can use them with CP/M's SUBMIT program to do batch processing; you can't do that with NSWP.Try to get the latest versions of these programs, SQ111 and USQ120.  These versions were written in assembly language, so they're much smaller and faster than earlier versions, which were written in the C language.  You may also find these programs under their original names, NSQ111 (for New SQueeze) and NUSQ120 (for New UnSQueeze).  The RCP/M or users' group where you get them should also have a file calla sixth show about the Internet.EDIT01.TXTSome ramblings and ravings from your editor, mostly to do with with the current state of user attitudes.GMKHLM11.CATCatalog from GMK/HLM Software  of Cleveland Ohio. This one was    distributed at ADAMCON 06 and was downloaded from Bob Blair's     BBS.  Thanks Bob.GOGODOS2.TXTSecond of a series of articles by Ron Mitchell looking at GoDOS and GoBASIC from a novice viewpoint.  Short demo program included.README.1STThis file.ANN-11.PPTA PowerpaintøD@p@Døðððððððð‚E*q@¨U`À€À  @€ HZ>ð‚¶üÀÀÀx„¤hhxx<B‚â´<<ü A—žÐPøBêÀøDDDDDøðððððððð*U
ªUªU* @€`ÿàðÀÀÀÀÀÀ€xxxx0üüü<<<<px?À€<üüøˆˆˆˆˆˆ|?ÿüøððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøüþÿ?ÄdTLDDÄððððððððþÿàD??~x€àððøøøx0xx||~~~0xxxxxxx0xx||~~~0xxxxxxx`    (0ðððððððð}|øÿÿø`ðøøüü|8888<üøð}|øÿÿø`ðøøüü|w{xxxx0¼<<<<<{yxxx0üüüü|<px?À€<üüø~||8üüüü||8 px|?ü<<üüøxˆ€€€ˆpððððððððpˆ„¬l~x„‚T\<<¼ A—žÐPøBêÀ HZ>ð‚¶üÀÀÀ8D„¨¨x{w"BT4<<¼?@D¯lxxø‚Âäl,<€¤¶ypàˆˆHØðÀx„„¨hy{xÄ”´¼ðàÀ| ðððððððð`€€Añ @8Äáþcl1ø à`xxxxxx0xxxxxx0xxxxxx0øøxxx8xxxxxx0øøxxx8`@@@@Døðððððððð @€€2€@80îP  Pàc€€@  picture that you can use to print a label for this disk.ion will       be to forge ahead even if you don't know what a particular command       does. Resist the urge, or later you'll pay.      4) Don't be afraid to mark up your listing.      You can always print another one. Take a pen and make notes as you       go. See if you can discover where the various segments of the       program begin and end, and draw a line between eaððððððððøDDx@@Àðððððððð CGW7??€@@@Àààð?`Â—·¿x8àHDDÔt4 CGW7??€@@@Àààðpˆ„¨m8d‚ª¬¼üüpˆ„¬l~x„‚T\<<¼ A—žÐPøBêÀ8D„¨¨x{w"BT4<<¼`…¦tøä4àø| ðððððððð@‡\8|ÿðÿÿ
üÿÀ @€À(U(Dxxxxxxxxxxxxøø~{{xxxxxøøø~{{xxxxxøøø`    (0ðððððððð(DOŸŸ~||È6iø÷àà üñóðçÀÀ€xxxxøøøøxxxx{{yyyyxxøøøøøøøø{{yyyyxxøøøøøøøø| ðððððððð{yxxx0üüüü|<px?À€<üüøÀÀÀÀÀÀ€~||8üüüü||8xxx|?<<<|üøð{yxxx0àðøü|<{yxx0Ààðøü|8ˆˆˆˆˆˆ|ðððððððð‚ÆÆîîþþÖxüÌÌÌÌÌÌÆÆæææöÖÖüü´00000ÌÌÌÌÌÌüüðð``````ÌÌÌÌÌÌüxøüÌÌÌÌÌÌxx000000xüÌÌÀÀàpæællxxpxÆÆæææöÖÖxüÌÌÌÌÌÌÆÆÆÆÆÆÆÆxüÌÌÌÌü|><llÌÌþøDDxPHÆððððððððÖÖÆÆÆÆÆÌÌÌÌÌüxÞÎÎÎÆÆÆ00000xxüÌÌÌÌÌÌ```bf~þ00000xxÌÌÌÌÌüø00000xx8ÌÌüxxllffææÞÎÎÎÆÆÆÌÌÌÌÌüxîll,88ðàþøD@p@Døððøüÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿþüø0p0000üªm§™Î&_Vç]Ë55ÈH7=cK’<™©AFš¨3ÿ°Ðé,x{^HO_*ÏtÖ;­/ý’O&•\-òÉ¤'ª~üJî8Ðå¨™'_;ŽñÖ—?;ûÉrÍŒÍÖûÅæÇcø÷&÷ð´ÊJwmÐ­¤)l4¤A×YÂòSÕ*+•`Át%E9
Tþ¡êË_ØhÐ­¤)l4D“mR;Æ½A9ªö³O³ÿG^©\Šùùë2 ¾ü½œ1úÃš-Ù­$&“^ÎÂªA×ÙO–kf\ŽÞJb2¹7èå1ärÞµò†ß[·&ƒ[†“%k*¹àc]Ü=æšM’üVu?*¹¬ËMrb0=“Öw€Ùz§õå¯:ê}GÇòÍ:»Oþ+-|xÞ{ƒîë«JÜêÿª\µ)ÿ#
>Öe4X{w6è6XÛYþ¡šÿ×óBÊOu¢ë›ëËŸkÎ‚›ž±†lI–Áw6ï,7›ý{©\öf3A=ûCt¦ü®Û [ISØhHõ=ïZz®tóÝY~ªyYõ¼Ýšd¤›ž±å+ŸGÔzðL»/²ß`ã…®îÇ‚³IkÐ-øX—Ñ±ïô^~ª'­/Ç1ÞZÝí`}tã­·³JîÊQ¼ü ä“ê~,b°¾Ãl§¾JšÂF%­aÃ“IÊ?”³ú–ÕNççXÓYäz/?ÕY^dÐ ÛT2æ¨¤ºÍkòçyUÇ¸;{Ì5{ 'jk6ò¸×LŠ,9á½&±–'Ä="ÿsypïÆl:‹¦FoÝšLz A·œ£’6è|¬Ëh°>Öl½£”¡OœU›ž·ªcß5h
ÿLÍÖ;í‰è“è«î=Q™çÿs*oøÎÞªîÇ‚é,òNëËß¿hHó€üyÞ‚àzÞµzfÚ=¯x±dÿî,ü3-C¹ž''#}/÷“åš÷“÷æÈÃïV«z^é¹ÒâÅ’ý»³·5<7éž€éí{%÷B9öfó½¾üùÕ³?D•Äti“ËÞl¾7üÏ™y¿¾ü½ð‹†T`€ÅúØr?Y®™±³zfÚü?(GÉ'm÷^è™iô²y›ÜÃÓæÿÙÄbÑ^ü:½xLi/òUÊ7[q³ªA9ªûÅl|ÞµyAþ<¯³y‡Ì¬-?U,7ç]{v¤ý?ýŸÚ\bB²¯fëÝÃûŽåpö<õCä#?˜Î"ï±¬îMîáiXhÐí,oÞOTÒòëíón}ìmgÉ’%ûêad¶SÓØ\ãÞå¨’úòwæ¼½ÐÍÛ=P†yWgz¢Zddž|í8ÆÛßPŽ’O&T“Î¢¯r¯/a£ü*i
fKv+ÙdRØ€žhHo%›LÖ—¿~Ñ~þè,ïèy!ºU`±>V9ûÉrÍŒïõåïåŒQÊ7Ûª…s}[~å¼Ü’
ÛTrƒ®³³`¼/Àlè–ÔÎ‚1?U’5¯fIMb’øBTøì|Ò³Ðå(çeg4¤úö‡U¦³ˆxSÉÛðŸwmÐ-YI$Maƒ¨³`ÌOÝ«„ÀY¤•duöBÏL{9c¨\t;½‘ö¼!%&$ûzï…ž™ö@ƒné¹Ò…(^,ÙwÖ—¿˜ýþ°fK2¥Äö¤õå/å›½7•ÜÆø3ö^~]ü	¿Ixâ,^,Ù¯.œUÏ+=WZ¼X²¯/g~%¶FÚ¦5•ÜY0Þ@d:‹´6¾¡ÁÆ[~ÝiŒ?c	ZÍò—òÍ–_µ÷¤é{o222SƒŒ´³zfZ_þ^øECª0Àb}¬ÙzG/gŒR¾Ù².ÔðdÒÁú05<™tZÉ'=PÃ“Ä—{%wæ1z¢IxR’åø†r=éÿÆÔ—?;çJƒÈlè|¬Ëh°>¶œÊÑ[·&³MÂ“bÉÛ5|k21ÕÚø†aÕ [SƒŒt9jøÖdr/Há¼y{¢O2æ1üBpp–£ä“‰¶{ƒn%Ma£j˜|21[2Ãä“I4èvŒù)ÓÙ¤¶A÷5y222SƒŒtCš—UOô<³õŽûÐ$oM&†4d›ÜÃÓÊÍæÁG9‹|ùso{Üî,/²Œ^NÐroß6[g2Hhç¬³(¹‡§=Ð¼ƒãÜìð;þŒ5[’ËŽq/ÏñóþÝYtû¡™a{;3þð‹¦Ëñç=qàv)CõÝ×Ûx_y«n™Î"3ñ…øÝ¼ßPö¡ü$èæ*öïå§ÊO‚n®'fâ‹³Î"ô•ÌL|©¶ÍûÅ~o_ÐŽqÛYg‘iž(>W¾Ùúò7vŒó®Å[Íd¤6èyÆ…¦ü”ü3u]äªúöyÍÄgÕq¾n@%­–6-Â{¿jÓ",Pù‡*ÿ!˜ãÌ<†_}›¾^W9‹þgk&E–œ°ç5èv–YFƒõ±fKx"¤Z„SËOõ«ÑTgCMbÍF•\†ÂÎòT)´’ÖLŠ,9¡Ùžip¾n@%­VÒ½E5‰5y”D“D¦³ÎjŠG’w3™±³(•1ä²ªºï,BÓ£q7“i'ÍYTþ¡Êæ83áwæ1ÿƒctËŸO–O>ë,R>ƒçÅûâ^~ªŸ?z¢ç5è|¬Ëh°>ÖtÖYM‘ÝÎ‚ñ¾€¦<ŸqÂ/Pù‡ª¾ÝGùÍ«RC.Î¢àÑ¯¤5ò6"ÕÈ›lÊJÚ}qòvœ·$@TIt;‹Ú»³è˜k–£¬T^€Â³ÎjŠ4äE–Ñ}‘ÏBåfs:ärÞµç…Ôüª™tIx•z;‹f~ßQ}ÇÙ›-?_ÞörÆ(å›-÷“åš÷r‚:‹°ämP~M’üVgy‘et_ä³`ÈÄ"gÕiÆû*7›Ó!—ó®=/¤Ä„d_Kò_iH"gÕ‘
ç]Ë¯’¦°Ñ=3í>‰ž×4ï/–ì;‹ø©ÊÍæÁþy×’}­ä^(ÇÞl6uVSdD·Ä$ÿŠ¨³`ÌOõ*º>Î»öÿ4DŠÿ™öB÷UÿÏPç]E\“X³‘A{›øv/gŒo¹&±f#~O11±‡¡æN1™'ßMe¹¬ré~µ’î]m÷dddå§l¼ºÕJºwÊý6äwIn‘k#*ˆ³È—ÿ{ŒR¾Ù†óûy¿g6.÷í¥·½ow–Y†³h_d¿ç•£A·¬T^€JÚ [­¤{›­fù‹Ï•†³ˆHÕŽmÐíy³ä¼sô¶÷íî‹ì÷BÏL›ÜÃSgÄ?÷¼’„ÿ93á—£A·°³<UÝ­¤ºÕJº7‘³ÎjŠŒ²Þµ!U?þ4/âÅ’ý^NPù£°ç]tE’¦°Qgã†tb¶$A÷5•|Ýˆó®)lôDužE!=ýdùlî‰œuVS”Lòu#Î»–Ê¥ú¹6èÖÔ #½œ1ªoSÉ˜#V8ë,š¾³húF_œEÓw!ƒ„vÎNXü‰†4=OÕ$Öläñ½Ð3¶ã@œwmÐí'Ë5365@Fô@gÁ˜ŸêE²1Ô³?DÇ1Þ~k}ß«ÿQŽXü	p…4=OÕ$Öläñ•´Úw¦œ¡’;ä]7›Î:‹H`·ßZßc~ª©äÊg3?ÕT2æ"g2Hhç,ñ†ªÚ”ÿ7ôQ­¤'¼ˆ:XßM%wy¦Î [ÕýØÊg3?Õ}³ü/6¯2Û)%¶ßÄß=à,:j_œ™GCú­õÝ6ï':Xßå¼Õÿ3ÂtÖYD»ýÖúî,óSM%W>›ù©¦’19‹AB;g5äE–Ñ`}làë8k€f„Ô?c4ôá,š_Â!õãOÓ,¸œã¼«³h~	¯û4„Ô¦çmSÉ˜£iÜ—ðr%¾„ôí´è¾È¾ÙÞðø*i§8ë,J|!.)5‰5y”„#jNýªáíÝ“:‹^Ÿ|^°>öÞ	¡¶{'Sµ9‹_’*)5“"KNXŽXü	è`}‘³(ñåkI©I¬å	qCúvZtŽÑ}‘}gQâ‹wIéyùŸãÈgQâ‹'%¥ÆgŒ=Ð9F÷EöE‰/%¥ûT%­:À‹õá;ë,š’ÌÈ£{³Ùï,/²ŒîÒI#GŸ?z^ƒnß^:XßQ†rÕÏàyñ¾p%¾Hš6èVßëyï¼«é¬³š¢ƒ?Y>›‡_u€ëã¼kÍ¤È’~CI`·Ÿ¼7G~è‰ÅD¦³H³üÅçJ£ú6bUCŠÙxK˜LË¨\“X³‘GA”ÃYga2-#„¦Onè-g2‰5y ‰³H‹ÜÐ[„MŸÜÐ[„Î"dk6ò@äÎ:‹¦”Øåè…ž±z ê,ÖÇBù©æe€ÅúXp}²|6ÿÞ=Ð'ÑÛ%çãvt;Ów¦ó¯³è‡U=¯A·Ÿ¼7G~è‰Å¦³ÎjŠ´ñÍy×ÝÞ&¾ÝY0æ§*7›ûõåÏ½íq»³¼È2º/²o:‹’¢šl“Ú1î½M|û?Cõ@?y#üªëfë–nÓóT{g‘I¬ÙÈ£á¶3åÌsl†žWn–Ë½t›ž¼PIÓrMbÍFM³`gQÐ}•×ÿÅ¥Ûü?¨üQIT`;SÎ<Çf0Û¯ÿç#°Î"_þÜO–kfÜCoM&ò®%Ù§V•£†“%#º—Ÿª/¿³ˆ²ê6Ëª’0eC¶Sžykk6òèÌOÅ±@T¼X²ß ›×YDtó/¿ó®å¨/®¤)l”•ÊÐ¤õB9öf3‘é¬³Èˆî«/5‘˜|2¹'1™”ŸêÍ‘Á½E>™ôBÏLÅËz¢3ãíy!å9~Å‹%ûi’·&“{õ?z‹|2éI{Yg9oƒ‡ñy×^NÐæ…ÏÎÑauÞµ%ŸLLg‘ýáÞËv–¨ÂFåÏã}ÖÇöÿ”ÓØìlÐ­©AFºŸ,×Ì¸öËÑ$“˜LZR“Lb2qÑ­&;ÆüTÊt‹KöûÇg
G^SÉÎÎò"Ë¸|¬Ë¸—Ÿê,ïè¾ÈgÁlIžÜëÝ·7›ûùÃÙóÊÏzÞµ!5Þý42ÏÆ•´A·¦éÔ—ÿ{Œzö‡(å›u6¤J”£¾üv¤D¦³È;­/÷fs/ü¢!U?þ4/âÅ’ý{}ù¿Ç(å›u6¤ya£A·’¦°ÑNJ6iõ?t_a£'ªóll:ëÖ—¿œ·O¢ðçí…rôDÜþç¼kÉz9c4vŒ]gç?ç}QISØ0ui¹Wß­6ùlƒ¨ñøÕu+i•Ì?ÞGž³ºOþ+mH¯õåïUÎ»Ö '¾Ü«oÄæ^ÏÍÖ—ßY¼•´A·W‰™ò7Ôûûf«Ìr³y•™øâ¬³$¼šÔT#mMF–¼	/gÕ}õ±.*7›Ó!—ó®=/¤A·¦iÓYDB*l5ÙY0æ§RØ-•KÓŒ‚uÖÇö‘?S~Êþ™Þ›÷3xÞÝ¾5ì,ÒýXèåmÐm*cÈå¼k9ë'2g¿ã¼5[#zÀYt‘¨ÒŸØÞ¦r©’zw§}Ÿ×åè…¡úžwu)y{»3ÃBáŸiVÒ½‘¶;1©É’y$ïÔ)	;I–l2Ñæ¬³š¢©J5è–õ3Nø¹÷¼ÊÛž‘ÿ9Ž¼{ó>Æë,âªMùQ­¤'¼ˆ:XßÑrñò;ïšþ£ñšÎ:‹AB;g“{xÚð?å×ÛšÞî'þD/t_Oô@‡°Ze¶šå/fßÙ ûº/6—Ÿ_It›Êr9ïÚY0æ§Àl=x¦c~ÊÙåÂy×±±¹©Œ!—UÕýÊg3?f«!3”ó¨\ž³ºU;>±ù^ýráÃóörÆ(^$›Î:‹AB;g2Hhçìô‘çtŒ÷ô¼Ý~²\3cÓYD‚ˆî´ÿØ~ÿßc~ªéÉ÷†”Îõ•ó²³(•ÜY0ÞÐêÛÏày‘³Î¢é³Rù>Æûí‹ÍåÎ‚ñ¾pMŸ•ÊÝiâ¼kgÁx_8‹¦Ð8Ð}qòvŒ÷4Xë,š>+•ï©Ýiâ¼kgÁx_8ë,zÛ ýž"ß=ÐÈË±ªå¾½tœ·÷sMgÑ‰…˜"ÝôŒ­/9oÕX¬ó®Î¢ƒé¬³š"Rá¼k“{xÚæó©¤iAÒ¸pÞ’ø÷z×øÉå^_~g]ÎªA9ªo*yïÕÿ¨¼á×pÏ+ùdÒ·«V5¤úÖY2Ô½üToõ¼’O&}»
R}2TùÊçÝËO•¼ç9‹È'“*YxßÑë¹Ùr3Ç74ý§0¿úÒóTùùöiH"gÕ%“|Ýˆó®i°ñv¦;ä¼€^è¾ª°Xç]Eƒóu›ž±`¶šå/f¿{³¯~Ñf	ŽmÐíc¼à,úŸÚÜ=3mÐó®PÎ[à›UÎ:‹¾yöœÜüª™´³è«‘iÏÉM#-gÑW#Òž“›„dÎ:«)"}Î»–;XßAÐ~ý?­/)ßl¹³¼È2º/²ï,J%—k&E–œðÞ¼ð8ïÚóœEÎ"ÂdZFMŸÜÐ[Î"d&E–œ‘O&Úœuéï…nÞž× ÛO–kf|oÐm*cÈå¼kwÚgEH‹p**¹¡·µ9ë,ò¸Ù×“Ö—¿ê¨r‰ËO•òÍ–;XßQ-rCoÞ{¢yßá,*—þŸÂyóöÄ7ô¼Ýâ£ÔØJZ®™YrB³õ~Ëêî,RÒ œuybrCo)„ŒÏº•¡:Xßá,ZrCo©»©‹ìwæÊ½=Ë‹,£z^6¾í,"™’ìÞäžöÂÐ)ÉŒzÉ'b_ÏkrÏ§˜¨zfZ¼üÀYÄ}{é8o{9cTßBpŽUfkDèIëË_Ê7[vAäó®=¯x±d¿zfZu€ëc¡Î:‹LbÍFèÛûÝð8ªòÙÌO}ß'„ÚœE&±f#4™ªÍYg‘fù‹Ï•F/ü¢!)¿ëöD?Äy×ÝNµÝ'Sµ9‹B®tså5èv–§:ÎÛÔ³?D÷ÅæroßvÍò"Ëè¾È~SÉºe¥òTÒÝNµ™Î:‹ŒèocgúÎtþí,ÿPÕ·?¬jH1¯³Î"sêWooôm¤Ùs¯S§—¡wòz$ŸÚäSöÛYg>Ë¹Î:‹Ì©_5¼½Ñ·‘fÏ=¾EæÔ¯ÞÞèûëÔéåñí,2§~ÕðöFß„ÞÉûí,2§~ÕðöFßÉ§öÛYdNýªáí¾“{LÙogEÈ ¡³êÇgš–ðBˆðÇ¨ömM³àNKxUž³HqÂë®'¼á?Ð4.'¼4ÿÕ^Î"u×^iÈ‹óþ…{ƒæ¿zÂËY¤Òçý÷’O&ÚŠ%¯³Î¢)ÉŒ<J>™hëÝªMùQõãOÇ¾kP³õNëË_Ê7ë,âÎ×ÍU>ƒýT‰É'“û´„—³$´s6/«š³à{Í9Æ½&øø^É5•ÌMÏXgPNÏØÇxÍY0ÊË
z^9*i
I#ŸL¨³(§gìc¼æaºc4Xë,Êéû¯	>FCXAƒnÁÇMÏXgQNÏØÇxM%3Â
t;Æû¬-É“XgQâË÷ÿÝY0æ§ŠˆR¾Ùê»¯à_Eä,B	íœ¾Ùšø^sŽq¯	>¾WrM%sÓ3ÖYéû¯É€ÑÛïñÝY0æ§ÒK>±÷N¡!Ý§œEž±ñšFZøf¡A·FZÖÇ:‹ Xû¯	>FÀ7º7=cEž±ñšJf|³Ð ÛY0ÞÐ`}¬³$´sö‡-çåJZ¼X²ßTrgÁx_@ƒõ±Î ÿ%¼‚¦eè¯&‰/=i}ùKY•Ÿ³(ñE>ûªgUŽNÔ$ñ…:‹AB;g?¾nÁÇ}”Ÿª†‘VCÎ¢iÎ"g2Hhçì<¶&nzÆ–äIlƒr”ûÉ›nÎ«za¿!‡À6è:‹LÜôŒí†”òÍ>;Ÿô¬*w–YF÷EöE©äÝîSe¥ò”dÍ«Ù™<MïKDä,š‚³ÈÀYƒÄÝYƒÄÝYm›·ÊÆŸ±•´A·É=<í|]ÓYg§øÜì?ƒçmÐíN;ç]+o»7ûzÒÝ²RyœEœ·ê¤éæ}a:‹AB;g“§*óüç¼oÞJZV*/@%w°¾Ãl§”Ø=ÐôsyÎ ü?èÿâŒž›óÿ‰U%ùä(?¿Æë™Î¢ô%¼îðBéyª¬T^€¾„WÏ+^,Ù7Û¯Á9œE‰/A·°œgZŽBÂËl“ÿšJÞ›Í¦³(ñÅó¼åç×xý†B>¦³(Eh–çýÛOÞ›#?4=OuŒù)g[”¾„Béyª/áUÎqÞµe¥òÔ—¿ƒ!œE‰/òù¬*GÏkÐmÚY0æ§œEÈ ¡³ÆgŒ‚uM³àëc5@Æ&øX—á,B	íœ¢$ê,ÖÇ™­=ÐY0æ§z ?¬jHÇhÐuÖ¥gì½’Òq z¢!UŒËilî>ÖÇyWgQÐ­9õ+é¦glo¶7‡ûý5™·–Ç”SI{˜S¿’þî,óSÎ:‹Bã@@oî8o¡iÜOÞ›~fgÑ€„×}^hhš^é&¼œEã¾	/„Æ€¦Ypç?ç}ÑÏÜnÂËY4 á…Ð8Ð[†;Î[(G!áå¬³hJ‰mPŽž´¾ü¥|³åÎò"Ëè÷~w_dÿÞ ûtEã@ôrÆ(„|z¡û”£¬T^€h*ÿú$– =iƒn?Y®™qõ=ïÚÛÉ=<U·{9c8‹(ßl¹)Ÿ<üÎ×-øX—Ñ`}ì½A÷Õ—¿—3†³ˆòÍ6¤°Ñ [ISØ(=Wº™ bØðdRÉÁ[øgj:‹H‚n5ÙY0æ§z9c¨\
>Öe4XÛøº=i}ù³³|¬Ëh°>¶ú–óy×Ýš³à¦gì½A÷Õ³?„³6Ê}{©¤)l”„ž+ÝLT~ªy†°jÐ­9&rÖYtÒúò÷Â/RõãO³Á°Á(^,Ù¿×—¿ù‡*å›u…4/l4èVÒ6Ò	AeÒ’èTÉûŽ¦’¯qå…žhHÉÓÉ¤ú¦’·³¼8ï?ïÚË	Z_þÜO–kfl9ë¬wZ_þrÞª°Xç]‚7èy×^è™iô¼âÅ’ýr8{â:KÎ;GY©¼%¦eè1>ïZŽÎó‡¨A÷UÉûga£A·’¦°a¶ÞQµ)ÿ# !ôB÷Uè¦'Ct«U¦³Î$¾L7ä“	¢¾ü¹Ÿ,×Ì¸z›uùãvÉ'ç-˜Î:kø2ÝH‘O&HI¹êÇŸJZ_þÜO–kfl:ëì”dFÊÑð?gæ1üÒÍ[ÎÛ [ˆý@Cª0Àb}œwuq?Y®™q/ôÌ´”¡žý!ªï¾æeÕóBŠKö/âÅ’ý{ƒn%Ma£ø‡¨¾ÍqMJB6!ª¾©ämÐ­úñÇ$r!ƒ„vÎ~²¹öºo3Ç‘Wƒ=Ð,œ·½îÛÌ±P~Î S‹L£çAäŽ#ï^~ª;Ÿc¡©äòó;Xßá,’?à¨­¤å^ÏÍ¾¹ÐSV*/@?|²é,"	º…àå§ºO••Ê°PIëËŸûÉrÍŒ‰LgÑšW³'­:À‹õqÞµi\òÉ¤!5œ¦÷žèåŒá,ºîÛÌ±ýNg½¤4É™~÷¤M¦AÜ=¯A·àc]†³(Xk¶Þ¯áÎÌ£?ì½¾ü½È?T¿!=cã5ð·³(è¾þ°ºõ¼³`ÌO5¤—|btûÉ2äzoÐ}Î¢ [­Î‚1?Õ^ò‰mÐí'Ë53î	Ø‘šÎ:‹<‡àe¥ò}Ÿ*+•EÎNç?c~Š üüÎ‚1?Õ=3í~òÎ»jUu¿Üé8k€.gŒê[%oû=ÿlÿÛl“IîNcü{oHoÖYÄ5p?Y®™ñ½¾üåªžý!ª„ÀYgÑtùdr7œ¦H2šÎ ŸLîiÂ«'­/)ß¬³6tû½ßåE–Ñót;Ë‹,£ÁúXÓYgÑÔ'A7÷‡í†TÿÏPåªMùQð±.£ÁúXg‘î7Øø¼k¹hÐü7èö“åš{}ù;óëLù]·A·jSþGôæ0³Î"EÊ{½×ºÕæ‘ô¾½TmÊÿÓYgQ2ÉÝiŒ?cïå’OOÇyÛøõí,ÿPU>ƒýj?ÑFà¬³H‘¢ý!É¦é,R¤h?¹ßšLá¦ü€†TûÉ½êÇè­ÉÄà–¡©³Î"dÐÎÙ}±¹àc]³h_Âën‚uEàc]F1ûÕ·’–Ÿß±ïôî,J|á§:Ë>¯üüÎ”s§xZÉxæî,J|‘ÜÛI»]É½mpÛlèòrgQâ‹G’„w3™qÒÈÍvJ‰mÐíí¤Ýî>	gQâËLw6^uï1×¬G’„w3™qÒnõ"ÿPÕ×Y”ørÉò®%a€Ÿwm2â(G“Ô ªþ‡³(ñå"ÿPÕ·<†\V5¤úv_l^e:ë,šRb{Òúòw_ln\¤àc]4•Ü [`¼e¥òÜEzfº7›+o{ éÉåñ¡¬oœ™Çð{9c¨\úœEòt«0Àb}¬ê8ç]ÍÖ;­/)ßl¹ƒõÎ¢=3-ehÐí%Ë»–•Êp¯/ß®ê“èNûŒ3Ÿ¾³ÈøŒÑ [ªò¶ú¦’·ûbóy×Ý¾½˜íÔÖw8‹.ôÌ´
ŸcUwÏ1üÝã-Cùu§ˆó®•·Î¢Ë£y#@\2ÒMÏØ’Œ(°ßXsLÔ=3mþ”£ä“‰³ˆ„¡üü^ET5ÈH7=cTþ¡ˆîå§z•…Ío%Kf:ëì8o¡Ÿ¼ó®ZÕË	ZƒÄ—é.çmøŸUÕýúò›Î:kø2ÝMîá©³‰/Ó]¹5=“	‚ÝJšÂFCzkz&“{/ôÌ´xùAƒ®³}²\3ã^ÎÍËªç…ôÖôL&MZÉ'“’Ò[†N&¦³Î$¾Lws,„9FyYAƒngÁMÏØžR¼X²o|ˆÅöÀY„nyf2éÄðdÒ=3íÝò?ÒÓ!¬ÊJå»³‘ÜòÌdBT~ªA·’Ïõ<¥§CX••Ê%1<™9ë,BÉ=H{&öHÞ ÊJå(‰áÉ„¨úÎüÃÖ—¿ø\i8‹Ð…_4¤Ÿ?Ê½íq»$ûT%-,Ö‡OÔY^dÎ"´/²ß ›×tÖÙ):áõ$vº^ÊQ£ßZß%Q`±>üŽAT~ªß„ß%Q?þ9‹fÁ˜Ÿ‚^$÷r‚6èVÒ6ÊJ­2[#úÃ½¾üÎ" òÕ±œ_CšJ¾n4(GƒnÕX¬Í=à,:¯x±dÿ^~ªAÏ3®¤=Q†ž´¾ü¹Ÿ,×Ì¸—Íë,â9~Ã/GÉ'³%$ŸLz9cTýøS_þÜO–kfl:‹œE<@SfkD”Ç8‹|ùÒïÁ9îiÂëÛ¬³Î"#º½e¸ã¼­Ú”ÿÅìWßÎ”ßuUo8ë,Ò"å=„.tóö½(W›GÒ;ÎÛÎò¿¸wÍ«é,Ò"e’")y’ç-æ¼ûœui–¿3¿Î”ßut«6åDù©ŽqïšWÓYg‘)ž¹“O&¦#RÏtœ·pï8å(ùdb:ë,š’ÌÈ£º¯?œw­VC:DƒnÍ©_I÷“åš7¤ê€ñÝYäË_ òÕ=A7wˆÝî‹“·Ÿ,×Ì¸•7¯³è‡ó®Õ‚„×}^•|¯/g~¢€yŒ~ÎÎÎ"Žrãà5Û©Ð!ïZ†úòwˆò•Ïëå•?œEðÙù¤þy×r!8Çy×²Ryî%ÑªäjÝ_Â‹¨A÷9‹‚nåÏMÏØ^ÎåÅyÿöçÅæüb•é¬³H³üÅìWIÕ?c~
îå§*A7Ã½—Tþpqšîç]{¡=P}Ï»ö’OÄ¾†T06EÈ ¡³’¦°ÑTrÕX¬ßY$}òyÑùÏy_TÒ6œEò^-ëãíÛK%MaÃYgÉ“ØÝJšÂF”Ç…}(+µª!åç×YÄJå(|v>éYÕóÊ¯|¯~¯ºWrGgÁ˜Ÿ2E!U?þ4	œu–TØÝª:ÆüTCšž§tkNýªáí]ÎË`:ëì”Û ºýæïÎ‚1?UÌ~õí«RþC0Ç™yßÙô<Õ [“X³‘Ç7Ü«ÿQ_þâ¢A÷u¦;7èâ†ô<øó:”£A×¯’÷Ýi±O5Dšr6Û©cô“ÏÖÇv¦œyŽÍpwv¢è½¦å¼åÁQ›Wuæ§ŽâXh*¹æÔ¯ÞÞ5uvjt,CTûÎ”3Ï±z^¹Y.Å?Dõm*ÿS)fã-üyÊÑ!ïZØéüûæ…JZ,7="ÿsyÐ‹¼ï¨¾6Þç,CMbÍFß`:ë,©°º_ÂënÜY0æ§Rã3F7gyG~è¾Èg¡Ÿ?œ=¯A·³¼È2¬­î7è–;ÆüÔ½úº¯ãU‡c‡ïìçž× Û|®4ÊJå¸þ™–¡7‡;¿„×ý8ëìIëËß¿XÕÂÌ¯A·Ÿ,×Ì¸©äšS¿jx{C}ù3ìHïÎþ°ºýž¿K2Ë‹,ƒ¨³`ÌO5¤°Ñ [}¯ç½ó®å§œEûT%-Ã|N9/ƒÙ&“ÜÆø3ö^î'Ë53v]è™i!8Tþ pvB>™ äYüAœÃÙ	ùÄ0BæÔ¯ÞÞè{–ŸÏ•FÍÄôþíì„œÜPÁ9™˜Þuö"ÿP*—þŸžþ-w–YFÏƒÈÿG³Î"$'qOÊYg§$3òhPŽ^(ÇÞl.µõå/çí`ˆž×Ë£y1Ÿ×óœÝ4Ý9ÌÖˆnÞTòö¤MÒp÷K4èv0D÷Eö{^ƒ®³³¼È2¬½—Ç¨âà¦YpƒnÞÊëåŒQ}l¼¯!Õ×Y3)²ä„ß`:ëì×ÿóØå¨/ÕÆf|Þ6(GY©¼5tN{ \ò[ÚW÷cÕÿ4ÝÜTrÕãz‚Ìl5Ëß¿è‰†T`€ÅúØ†8ë,¡'Ä¤&ChúC5’9‹Lb-Oˆ‘ömÎ:«Yþ*iÐeh*cÈœuiª‘ìþ¡BpŽÝšÄZž;‹4´O"Ù¡ªMÏÛžø†îS÷òSÎ"C5’ÝMBOˆIM†Búù£A·àc]FÏkÐm°>ÖtÖYyqÞ¿÷žØÌqnvøýá¼kƒn¿ÇwgÁ˜Ÿ*?Õ ÛïùÛY~ªßûÝY0æ§ ÿ‹3êË_Ê7Û Ûq Î»ö¼rß™×ÙT2æ0[Íò÷rÆhÐ}ýdÑY~/ü¢!¾ÙÝÎò"Ëp|¬Ë¸—Ÿê,ïh°>Ì–,ßëËßYþ¡Jùf«ï¾:|sÞµA—£3ÝÙø#çEãà…’€ô¤õå/fã-×YÌž•\| ØxëËßYþ¡z•ê<7¤ÜOÞßfŽ%pÖÙÉ­M™S¿jx{£ï!¬¾ÜZí‘9õ«†·7ú¾Ùog½Ð3Ó(þgZ,y›—ëcËO5/qfÓYg§”Øå¨¾©äíußfŽó®]žiu?¶’–«ô{¹àc]†³ÁúØãÿÓUò¶!U›ñyÛ“6èæírë;œåhPŽ™9Ž¼{ù©ž´ ÷rß^:ÎÛ(çXe:ë¬ý¡'í÷VãÄwù©~ßì8ñÝËæíyºë2¬½;ËÐ ÛÁú¨¼Ý~aõ]~ªßÀ7û]Öåfï}RØgŽuö[ÿî,/²Œž‘ÿ9Ž¼^äªú6ïtþ“W•¡A·ƒõÎ^äª3ÿ°ºÕó²±é¬³StÂkJ2#éNx5(G9ô@ãàmÐ-ÿ!˜ãÌ¬ïèLw6>ïêì>1ˆ*yÛTrMb-Oˆ{Dþç8òÀlI³ñþ¼ÊÑå™:« çAä>òš7Ý¼o^¨¼á÷ÿ4¤A·o§Eë;ÌÖˆp/?hPŽâÄùŒ­I¬å	ñ7ô¼r³\Šˆ.Ï´úv§}Æ™OßÙ}±yUÏiÐí,/²ŒëcÍÖó¼°oÞJZî`}G8û$
šžùìÓY”øbðrb?pï,/ÎûW8ëìÔ46WÿÏPç]t;Ë‹,£û"Ÿ…^šuÖYéû¯É€uvjñðu{9cô<ufŽmPŽÝ¦glT>ûV™íÔç;¿;_”ïÕï•ÜÑY0æ§z9c”òÍöB9öfstˆUÎ^ò‰Ø×ªÆfëñfù_l>ïZî÷~w–YÆ½’þç¼k¹SpvŒù©^Îº¯óØÝš¸ék¶Ft;Äy×böÕ·çÅæübÕ½üTgyqÞ¿Êl¿ž7oƒnGgÁ˜ŸjøŸgå¿·wœ·pïÛÁJå{šðjHÇhÐü7èvŸª¤ºÎ2Àb}ø¦³Îz§z tûžÇã»À7[Itk2à¦gì½¾ü½œ1œýdÑY~/ü¢!ýüQ~ý–|ý.Gƒnõ½ž÷Î»VÒ]gåÏMÏØ{zÙ1ÊÐë¾ÍÛÎßó ò?Ç‘M%;ËÏoÞtó¾y¡òµ•´A·Ÿ,×ÌØl“IîNcü{/;þçÌ<:ûÉrÍŒ{9c”òÍ6oºyß¼Ðg‘®G“t¥³Ž8šäLE¡ÿiŠ8ªý„:ëlÐí÷ç»$©ä~²¹þKÔY0æ§zÝ·™c¡A·’¯÷Ýç,Ìü A·àc]Fƒõ±å§zÝ·™c¡;ŸcÀYDLHö‘‚&Ijs%Ó F¤ I’ÚÉÆl9ë¬³ÞiYg§$3òhPŽž´¾ü½ð‹Ýª°X›RÌÆ[µ)ÿ#:XßÎ¦’ëËï[½$©äêÿªƒõ@Ôó –U%í(I*¹ã@8ûÉrÍŒ‰ÌÖˆnõÎ‚1?ù‡…Ž—ðªÚ”ÿ¬ï€†8«oÏƒÍ±ªç5è|¬Ëh°>¶©äîÍf¿·ªû±•Ïf~ÊÙ}³ü/6¯*‰VÒ½ïýªM‹ðÞé´ç÷nÌDfë½œ1ú?%¿«†ï,fã-ÞúòWÉûŽ^øÅ½ðÏ´Õš$¼ÌV³ü½œ1JùfBà¬³ÈSk’ðBÈøŒÑÁúŽjM^M³àÝëcMgMŠî«/÷Íò¿Ø\ÅÁÍ›nÞ7oÏƒÈÿGÜÙw6¤jc3>o{¡ÿ³•´œ—t{Dþç8òú‘ób:käÎÌcø÷{µ’îÝó ò?Ç‘Åì÷#çECÊ½H6.çeg/ôÌ´@åªúVmzÞª2”kkyB|¯ä†”_§~Õðö.D>ïzwö¼^è™ig†íe{9c”òÍ–G^V~1«í‰r¿õïÎò"Ëpö<ˆüÏqä™-Ùg3?•´ZÚ´ËOõ«6-Âž‘ÿ9Ž<p¨üCUßbV[3)²ä„="ÿsy`¶É$w§1þŒíIëËïì¾Yþ›«¥M‹°“$'¡íÞ ûz× [õãOœuvB>™´³arC'äI$Ñ$Ò$'Ó^í´ÄtuZbºZMÍÄ—Y>~î¹Ò0^š:;!'Ÿ´ÓÓÕi‰éj§%¦«ÓÓÕj:-1]5Ó¥©³Î:ô‡úò÷"ÿP½ð‹†ô<ˆüÏÑ [u€ëcsC
—3u6¤æÔ¯ÞÞÅ¢¶%Ÿ¾—ŸªÎ³qCzDþç8òŠEm9JNnè½A pÍäÃwÝY4““z?Î:«!/Îû·JÎ»6è{õÌ³ñÆy×îÍf¿&Ã|N/ôÌ´zž³A·ø(5¶’ö<ˆüÏqäÁ½º_®ÞY^d="ÿsyÎòSå×ÓY^d="ÿsyf;¥Ä6(Gñ?â|ÆVéßÐóœåf¹ôíª>‰R¾ÙÂ~8slç—ðºë="ÿsyp¯þGƒr8ta«¤3ÿ°å~ó¶z^6þ¾÷˜kö¤õå/å›-7Xë¬¤e˜Ïé,óSpo*¹;ñg,³ÎNnm’ÈœúUÃÛ}aõíìäÖz™S¿jx{£oà›ývÖÙ [u€ëcs/òUu€ëctaË@àìäÖ&Ì©_5¼½Ñ÷VÀ7ûí¬³¾üåªŸ?z^ù••:qäñè,/²Œî‹ìt¾µž¹ë÷^è™©³ù‡êÌ?lƒnÕX¬Íéu›#?TÞ™Î:k$¾Ùrgy‘e4=c	œEž±ñšFZˆ„ŸßôŒ}Œ÷^Ì~Ï›Ç¯¶LPÉÕ	ˆœuÖH
|³å‚uMÏXg¤gìc¼&øØYg¤À7[î,ïhzÆ´Î"HÏØÇxM%3"y½mÎ‚oWÒÎògX"g’ÌÈ£A9t›ž±áŠˆêÛV•¡@åòîÕÿp6(Gùù{åÑôŒ}Œ·$’«¤gìc¼…¦e¨N0-áeji9‹Ù¯¾ýa•é¬³šåï,ÿP}ré,/²ƒ¹!Í~©†ç† }/?ÕYðVçÙØÙÁ±¹!Í?Þúòçª°X>³Î¢äž:‹äÖ­ÉÄY”cñÇœ;‹r,þ˜àcgQŽÅsŽá,ú§%¼"¦eèŸÄ$ñ…ÈY”cñÇT2;ë¬=ÐË£ÁÆ[_þê<w§ñÃï…nÞúòwl•45uÖ;­//ü¢!¾ÙrMÜôŒ­üÑªÆ÷*iÐm*cÈå¼+³Î’fã-üy”£A7o”;Ë‹,£û"ûU›žwÞµA·û”³’6èö“åš—þ™–¡ó­Éä¾D•Ü°õåïåŒQÊ7Û:ŸOê7èvŸ:ïZV*/@ù©b~?á7üÏ–;…Î‚1?Õ:;mÐmzÆNÐÎ/áu×ËOu~	¯ûqöóGÏ+w–YF÷Eö;¿„×}{¡g¦U›ž·Ð [V*/@%u6èvŸª¤õåÏýd¹fÆfkD·£³`ÌOõrÆhÐ}å?sœ™Çð…OƒnÞ{ù©žWVêÄ‘wïIëË_ÎÛóú|³–øb2àog±¨½7èVþøüQ“7=c{9cTßÎC`•Ùz§õå¯g±DÕ¦çm¹³¼È2ú½ßÝÙ¿7è¾úò÷rÆ(å›mHXgƒnõ¼lÜ”ç3Nø)„|t;:ÆüTI”¼ïèÛY^d³³ÊÑË£yt‘èü1&2[ï´¾ü½lÞ^ò‰ó®åW“;›ž±÷úò÷"ÿP¥|³é›t;…Î‚1?ÕÎC`tMÏXÓYg§Üiq¯//òÕq êËŸûÉrÍŒRµ±Ÿ·¥ré‰c0½Ð}õåoÞY®ïLaËÍòÇy[Ýï‰ohú¿9Ž¼{ÏƒÍQî`}‡é¬³É$w§1þŒ½÷¤õå/ð¥A9:dæ8òjè¦½0”;SÎ<Çfgåfùã¼-IøŸ%jÐ}Ý›Ë¬ïèy!ºë2¬%pyê‘ìniöÜÃYg§$3òhPŽòë2 œ£—´Üoóû^24¤úV0p6Î»þèª¦YpéN«â`Ó}ùKùfË½½·;Ë‹,£û"û=¯¾ü¹é{¯/g~ÎŽQ†¦2†\€ ¬T¾§	¯4èvˆó®½œ1:Ë‹óþuöqFƒnoïíÎò"Ëè¾È~4•ÿ)gu–•:qäñè,óS@à¬³'­/÷ÅæUåÖwô¼Ý‚uÖÇVÿ£O.½ðgCzÝh>ª’ö³ÈØë2œuöIlCš÷1ÞrÁÇºŒ{áŸiz¡ûêË_Êª\ð!8ËçúVu¼„Wë;ªÿÑ'—^øECŠÙx{¢xùwMÿAà¬³ÈØÃ†“p­aÃIÜÍð?ë¬³¾üåª{³ÀY´æ˜6œÄÝÿ³Î"csLNÂYgõ?”£ÁÆÅ’·áÎ»šÎ:ë¬³tó–óo±äí,óS@à¬³šDè“Ï(Ç83T^ÁÇºŒòSåE–Ñ`}¬³ýÀ×½wc6uvFè“ÏhÐí¾8y;Ë‹,£ÁúXg_Â¡O>/ A·³¼È2¬-ç8ïê,Be¥òô%¼œuVBêÇhÐ-øX—Ñ`}¬Ùz¿ØœÿOô„³é~Ãÿœw-?¿Æë›Î:«Àë2ç€ªÎ»–£A·ðÙù¤gUÁÇºŒ»³!Éº}Ëy!
>Öe˜mÐz[™Þ.çgs 1D76:

L1D76:	CPI	'$'
	RNZ
	XRA	A
	MOV	M,A
	RET

Now, to be able to use RMAC instead of M80 for *ALL* your SYSLIB work,
make a NOP out of the MOV M,A instruction! Remember, the address is only
good for my version of RMAC, as supplied with an early version of CP/M plus.
Your RMAC may be a bit different, but the code should be in the general
area.

With the availability of CP/M plus, more people will probably use RMAC
than M80, and this easy patch (which seems to have NO ILL EFFECTS) allows
ËYB”øBøãOÉ'mÅ’×YBRÞC‰/ï‘Rm;­êÇŸÂ™ÂVmÊÿÓYB@‰/„?þ@ƒnÁÇºŒëcMg	Áë2úêãª
Á9Î»–£&øX—á¬ÇKxÝMð±.!›>Öeô¼ëcMö^wHx!”ì<UV*/@_Â«œã¼k9
	/g“¡ÄyqÞ¿ýä½9òCÓóTgÁ˜Ÿr6ÙKx¡Ä—dç©¾„—³ž˜àc]Bžœ1
>Öe4Í‚>Öe4Xë¬J|Ñ:Ð[†;Î[hš÷“÷¦ŸÙY-HxÝ7á…Ö€¦Yp!áÕnÂËY­û&¼Pâ‹Ö€¦Ypç?ç}ÑÏÜnÂËY-Hx¡Ä­½e¸ã¼…r^Îj‘òJ|y¯JwZÇ¨Ú”ÿÕ„+iÇyÎ’¡ÄÏóyÑùÏy_TÒ6œ%{	/”øâÁú8@ûöRISØpÖsÎQV*ß÷©²RMñ¾ÍÛO–kfÜO–!Wg5%¾o*yËÏï,óS…ÿóÉ°à,J|™åŒ­üñùƒ šHL>™ÜoM&Î&OÏØÇxM2Ò%_VÐóÊQISØHùdBMžž±ñšFZi	+hÐí£ÁúXg“§gìc¼æWÍ¤ÒVÐ [ðqÓ3ÖÙäéû¯IH¦.b
.c Version 3.1.3
.savpag
.macro frcpage = .top .inpag .lrpag .outpag .mid $lp=#$lp;
.rem end .note with .res. The parameter is the header word.
.macro note * = .b .sav .tp 4 .rm $$rm-10; .lm $$lm+10; .c .note1 .b
.include chapters.man
.macro chttl = Compiler Switches and Options
.ch .chttl
Pascal-P  recognizes  commands  placed in "pseudo-comments" of  the  form
(*$...*)  or  {$...}.   Options are separated by commas  with  no  intervening
spaces.  Unrecognized options will generateEl Paso, TX, 10/18/83

When I wrote LDIR a few hours ago, I realized that RMAC was unable to
handle the job, since it would wipe out DOLLAR-SIGNS in labels.  Some
SYSLIB routines, however, use them in external references...

	EXTRN	F$OPEN		in RMAC is synonymous to
	EXTRN	FOPEN

and LINK would complain about the missing symbol FOPEN!

Now, there just HADT TO BE a better way than M80, and after a lot of
DU'ing and DDT'ing, I found it! In RMAC ver 1.1 you find the following
code starting at addres
ºU?þ”£A·éÉ¬ï(ç8ïê,B—´A·c#6÷;ý6u62’ëu,4•Œ9ŠEmáŸiƒrt°¾ÊyEè3x^UyºÆÛqÞör‚6èöí´p¡ó ò?Ç‘w¯ärÞÊkÐ=¹ryç­é¬³fÂ‹òÍ6ýß½üTÇFñÖøÉ¥’–ŸßO},†JvÁ½.ÄªüÉr³x_€³È ¡	8ë,BÉ=<uÝÖÄÿÌÆ·;ÆüTáÇ˜³ï¬³SŸ_V*/@1ûÕ·y?ƒçUÕýšàc]F¹f	Í¯FS“9ëìôY©|Ÿã}Ç‹ÍåÎ‚ñ¾pvú¬TF‰/ZºÓÄy×Î‚ñ¾pvú(ñEë@@÷ÅÉÛY0ÞÐ`}¬³Óg¥ò%¾îØXèN;ç];ÆûÂÙ©$°ÛÛZ·›J®|6óS@„¦F,þDCšž§jk6òøg‰I`··µn7•\ùlæ§€ÿg¨ªMùQðqC%Ñš–ð"rV%¾þøÓ9FCÎj¼„J|!üñ§sŒBpŽó®åèKx9«ñ^÷i(ñ…pÓó¶©dÌÑ4îKx•„øîq÷¾½'Eä,á´„J|!üñªýD[Ó,¸Ó^•ç,!'¼îzÂ!Â i\Nx5hþ«'¼œ%¼ë	/”øBøãOƒæ¿zÂuse of SYSLIB with RMAC.

My recommendation: reformat SYSLIB into an IRL file for faster searching.
he job, since it would wrly version of CP/M plus.
Your RMAC may be a bit different, but the code should be in the general
area.

With the availability of CP/M plus, more people will probably use RMAC
than M80, and this easy patch (which seems to have NO ILL EFFECTS) allows
–°‚ÝÎ‚ñ¾€ëcKò$ÖÙ¯éû¯9õ+i„¾òÍÖœú•tÓ3Öl“Ê'¶ChÝëiCºO9û5=cã55Œ´úÊ7ºÕ0Òj°>ÖÙ¯éû¯ùU3i„¾òÍBƒnÁÇMÏXg¿¦gìc¼&!ÙW„¾òÍBƒngÁx_@ƒõ±Î¡Ä#¹^ÇB#ŒW5•Œ9ŠE­³¤¾„J|!¶/áÕTrgÁx_@ƒõ±Î&%¾xþçë–Ç(øX—å§:Ë‹,ÃYOQâKRùÄv%mHÍ©_I7=cKâ¬&Qâ‹çù¼€Bpˆ3CIÀÇ÷Î1îã}DÎj‚‰ÛšZº*ùÍKÍžÃ+@žß0;MÃ'Ã+ÃFÃŽÃrÃÃûÍ–þ8Ê{æÄ‚w#w#wÑÁÉÍÆÃÞá^#V#å*~#foÉá^#å*~#foÉá^#V#å*nÉá^#å*nÉá^#V#åë	~#foÉá^#åë&	~#foÉ!È+É!È#É!Ø+É!Ø#É!ð+É!ø+ÉÈÉÈÉØÉØÉðÉøÉ}»À|ºÉëz¼À{½Éë|ºÀ}»Éë|ªòìz·ð7Éë|ªòó|·ð7ÉzõÍZëÍZëÍ)ñ·ð|/g}/o#É|µÈÕåÍ‰ÑÍk|/g}/o#ÑÉ¯2qÍZëÍZÍk:qÐ|/g}/o#É|·ð/g}/o#:q<2qÉÅÍqÁÉDM!x±ÈxGyOÒƒë)ëÃv|µÈÅÍ”`iÁÉ|·ú )Ã–ëxõÍÝÚ·Õz/W{/_Ñ¯zW{_ñ=ÈõyOxGÃ¦¯2qÍZëÍZëÍ‰ÃM|ºØÀ}»ÉëÈ¯|g}oÃæëÈ)Ãô|/g}/oo#n}þ:Âs!	~#fon&åÍ!Ñ|µÊY!	~#fo##n}·ÂV!"7M!	~#foå!ñåÍ3!ÑÑ!	~#fon}2+HÃÚÃs!	~#foå!å!åÍ²ÑÑÑÃÚ!	~#foë`is#r`i~#fon}·ÊÍ`i~#fon}þ*Ê§`i~#fon}þ?ÂÁ!	~#foå!å!åÍ²ÑÑÑÃÚ`i^#Vr+sÃ!	~#foåÍ8Ñë!9ùëÁÉ
BAD COUNT %s
Output drive =%s
ERROR - Ignoring %s
Can't accept ambiguous name %sÅ!æö9ùDM`iå!		~#foåÍX!ÑÑ#|µÂq!		~#foå!Ëå!åÍ²ÑÑÑÃÂ!		¯w#w!")HÍdÍm`iåÍ˜!ÑŠ|µÊ¯!		~#foå!Úå!åÍ²ÑÑÑÃ»`iåÍ˜!Ñë!	s#r6L!	s#r!	~#foå`iåÍí!Ñëás!	^#Vr+sën}·ÂÈ!	6!+Hå!	åÍ¹"þ!ÉþaØþ{ÐÖ Éþ Êþ	ÊÉÅÍ`·OÂE×!·æyÂ6ÁÉÕ$ÑÂ-7ÁÉÍrÚBÖo&))T])))ë!·yÁÉÕÅõå€ÍáñÁÑÉ	n}·Êx!	åÍÑ!	n}·ÂîÍë!9ùëÁÉ1.9   6-12-82File unsqueezer version %s by
	Richard Greenlaw
	251 Colony Ct.
	Gahanna, Ohio 43230
Accepts redirection and pipes.
Usage: usq [-count][-Fcount][-N] [file ...]
Parameters are from command line or one-at-a-time from standard
input and are output drives and input file names. Empty to quit.

*(;sš«³¶ºÂÈÐÕÝâ	~#foöÿ|µÂ!	å!åÍm#ÑÑ!	å!	~#foåÍm#ÑÑ#|µÂM!	å!3å!åÍ²ÑÑÑÃ„ÃÑ!	~#foå*)HÑÍåÊ„!	å!åÍm#ÑÑ!	å!Få!åÍ²ÑÑÑ!	~#fo€ëÍ|µÊ©!	å!åÍm#ÑÑÃ„!	åÍ•$Ñ!	åÍÔ%Ñ`iåÍÔ%Ñë!	9ùëÁÉCan't open %s
%s is not a squeezed file

%s -> %s: %s has invalid decode tree size
Can't create %s
Write error in %s
ERROR - checksum error in %s
Å!"2LÁÉÅ!c".LÁÉÅ!þÿ9ùDM*2Lÿÿ|Úš*2L+"2L*4LÃÃ!	~#foåÍÑë`is#r!pÿ|µÊ×`i~#fo"4L*4L#|µÂÎ!0u"2L*4LÃÃ!	~#foåÍÑ"2L|µÂõ!ÃÃ*2L++"2L*4LÑ!	n}·ÂwÍÒë!9ùëÁÉ1.9   6-12-82File unsqueezer version %s by
	Richard Greenlaw
	251 Colony Ct.
	Gahanna, Ohio 43230
Accepts redirection and pipes.
Usage: usq [-count][-Fcount][-N] [file ...]
Parameters are from command line or one-at-a-time from standard
input and are output drives and input file names. Empty to quit.

*Å!þÿ9ùDM!	~#fon}þ-Âù
!	~#fo#n&åÍàÑ’ÿ|µÂ…
!:M4ÃÚ!	~#fo#n&åÍ Ñºÿ|µÍ}29M}·Ê³
!	^#Vr+s!ÿÿ"7M!	~#fo#n}·Êö
!	~#fo#åÍH Ñ"7M|µÂö
!	~#fo#å!ãå!åÍ²ÑÑÑÃÚ!	~#f#Éz/W{/_É!9~#foÉ!Ã!Ã!
Ã!Ã!Ã!ÃŸ!9Å~#ÂAÁÉá"s!`å*"³!è"µ!ÜY"—>Û2­>Ó2°>É2¯2²!Ì"!"“!@"‘!"•Í·ÊžÍ!€ßF#x·Â±Ã~#Â±¯!ßb¯2r~#þ ÊÈ·Êþ"ÂÞ2rÃß+}|~#·ÊÅG:r·xÁÊþ"Âæ¯2r+w#þ Âæ+6#ÃÈÕ!×6#Â¯2w2x*sé!ÿÿÉ>õÍrÚ<o&åÍFáñ=þÂ-ÃÍ`Í
ÍrÚ'~æÊhåÍÅÍëÍÁá6þÿ!À+ÉÍ`WÖØþ?ØÕ_!×~æ7ÑzÈ?ÉÍ`ÅÍåþ:>ÂªÍÖ@w#ÍGþ.Â¶ÍÆ¯ww#Ã?Åþ*>?ÊéÍñÚçw#ÂÇÁÍñØÃÞ> w#ÂéÁÉÍþ.7Èþ:7Èþ7ÈÑÑ!6Lå!	åÍ¹"ÑÑ!	å!		~#foå!õåÍ3!ÑÑÑ`iåÍ˜!Ñë!	s#r!	~#fo|ÚU!	~#foÿþ|Úo!		~#foå!å!åÍ²ÑÑÑÃ»!ÿþ".H!ÿþ"0H!	¯w#w!	~#foå!	~#foÑÍúÒá!	~#fo)).Hå`iåÍ˜!Ñëás#r!	~#fo)).H##å`iåÍ˜!Ñëás#r!	^#Vr+sÃƒ*7M|µÊ¦!
åÍ¹Ñ`iåÍvÑë!	s#rz³Ê“!		~#foå*7MÑÍìÒ“!	~#fo|¢g}£oë!	s!	n&àÿ|ÚP!	n&ÿ|Ú„!	n}þÊmþ
ÊpþÊ{þ	Ê{Ã~Ã!		^#Vr+sÃ„!	6.!	n&åÍ¹ÑÃñ*9M}·Ê£!åÍ¹ÑÃ»!	å!	åÍ#ÑÑ#|µÂÑ!	å!"å!åÍ²ÑÑÑÃ„`iåÍvÑë!	s#rz³ÊP*)Hå!	~#foÑ")H*:M}·Ê!êï÷FWcmu€ƒTOLOWEÒTOUPPEÒATOÉFPRINTÆISALPHÁPRINTÆUNSQUEEÚÃÃÃÃÃÃÃÃÅ!þÿ9ùDM!	~#fon}þ-ÂÄ!	~#fo#n&åÍÑ’ÿ|µÂP!:M4Ã¥!Å!ìÿ9ùDM!	å!	åÍÝÑÑ!	~#foå!	åÍòÑÑ!"7M}2:M>2+H>:2,H>2-H`i6#6`i~#foå!	~#foÑÍúÒ%!	~#foå`i~#fo)Ñ~#foåÍM
Ñ`i^#Vr+sÃè!	~#foþÿ|Ò	*@}·Âw!	å!%	å!åÍ²ÑÑÑ!{	å!åÍ²ÑÑ!›	å!åÍ²ÑÑ!È	å!åÍ²ÑÑ!J
å!åÍ²ÑÑ`i¯w#w`i~#foðÿ|ÒîÍë!	s#rz³Â³!	6
#6`i~#foë!	å!	~#foëás{þ
Ââ`i~#foë!	6Ãî`i^#Vr+sÃŠ!	n}·Ê	!	åÍM
Ãë!9ùëÁÉÅ!üÿ9ùDM`i¯w#w*.L#".Løÿ|Úu!	~#foåÍí!Ñ"0L#|µÂF!ÿÿÃé!".L`i~#fo)).Hå*0L|¢g}£o)Ñ~#foë`is#rÃ¤`i~#fo)).Hå*0LÍå"0L|¢g}£o)Ñ~#foë`is#r`i~#fo|Ò`i~#fo#Íúë`is#r`i~#foÿ|µÂÔ!ÿÿÃÚ`i~#foë`is#r`i~#foÃéë!9ùëÁÉÅ!úÿ9ùDM*##sÕ*#ÑsÕ*Ñs!	~#foå!
	~#fo~#fo)Ñå*Ñs#r!	6#6`i6#6`i~#foå!
	~#fo~#foÑÍúÒq*##n}·ÊkÃq!	~#foå`i~#fo)Ñ~#fon}þ<Êšþ|ÊNþ+ÊÏþ>ÊãÃZ!	~#foå`i~#fo)Ñ~#fo#n}·ÂºÃ*å!	~#foå`i~#fo)Ñ~#fo#åÍX!ÑÑ#|µÂ!	~#foå`i~#fo)Ñ~#fo#å!zBåÍ¤ÑÑ!	~#foåÍ)Ñå!.	åÍŒ&Ñ#åÍJ-Ñëás#rz³Â8!ÿÿÃ—!.	å!	~#foå`i^#Vr+së)Ñ~#foåÍÉ&ÑÑÃ³!n	n&å!åÍ9-ÑÑ!o	^#Vr+sÃG!o	¯w#wÍoåÍlÑÍúÒu!q	6#6ÍqåÍÑÍúÒg!n	n&å!	~#foåÍq)Ñ~#foåÍo)ë!D	~#foåÍÑÑÑ|µÊYÍqå`i^#Vr+sáÍåÂÃYÍqë!s	s#rÍsåÍÑÍúÒV!	~#foåÍs)Ñå!	~#foåÍs#)Ñ~#foëás#r!s	^#Vr+sÃÃ±!q	^#Vr+sÃ¡!o	^#Vr+sÃˆÍyåÍëás#rÍ{åÍëás#r!Ã—ë!u9ùëÁÉ*.*Å!üÿ9ùDM!	¯w#w`i6#6Í÷ÿ|Ò!
	~#foåÍÑn}þ ÂáÃ!	~#foå!	^#Vr+sëÑå!
	~##fo^#Vr+s`i^#Vr+s*^#Vr+sÃW!
	~#foå!	~#foëás#r!	~#foå!
	~#fo~#fo)Ñ¯w#wÃe!	^#Vr+s`i^#Vr+sÃCë!9ùëÁÉCan't open %s
<TEMPIN.$$$.TEMPOUT.$$$Bad redirection/pipe specifierCan't create %s
Å*n}·Ê*åÍÔ%Ñ*n&|¢g}£o|µÊ!ÅåÍ,Ñ*#n}·ÊÃ*#å!åÍm#ÑÑ*%~#fo€ëÍ|µÂ*#åÍ•$Ñ*#åÍÔ%Ñ!ÐåÍ,Ñ!Ûå!æåÍ¥,ÑÑ*##n}·ÊÃ*~#foå!òëás#r*~#fo¯w#w*~#foå*###~#foåÍ-ÑÑ#|µÂÃ!þå!åÍ²ÑÑÍ,ÁÉtempin.$$$tempin.$$$tempin.$$$tempout.$$$<TEMPIN.$$$BÃ
!Ã©Ã`in}þ*ÂiÍnë`is{·Ê>!	^#Vr+s`in}þ.Â;Ã>ÃÍnë`is{·Êf!	^#Vr+s`in}þ.ÂcÃfÃ>Ã`inå!	^#Vr+sënÑ}»Â‡Ã¾Ã!Ã©Ã¾Ín}·Â£!Ã©Ã©!Ã©ë!9ùëÁÉÅ!yÿ9ùDM!	å`iåÍ'ÑÑÍ‹å`iåÍq*ÑÑÃ×ë!‡9ùëÁÉÅ!9ùDM!	n&åÍÕ*Ñ|µÊ !	n& Ã !	n&&ÁÉÁÉÅ!9ùDM!	n&åÍ+Ñ|µÊ; !	n&àÿÃB !	n&&ÁÉÁÉÅ!ûÿ9ùDM`i¯w#w!	6#6Í	në!	s{þ	Ê{ !	n}þ Â‰ !		^#Vr+sÃ_ !	n}þ-Â¨ !	6ÿ#6ÿ!		^#Vr+s!		^#Vr+sënë!	sÕÍ3+Ñ|µÊé Í
Í?å!	nÑ¯gÐÿë`is#rÃ¨ ÍåÍÑÍ?Ãù ë!9ùës#rÍy~#foë!	s#r`i6#6!l	¯w#w!’åÍJ-Ñë!	s#rz³Â>!ÿÿÃ—!o	6#6ÍoåÍÑÍúÒ€!	~#foåÍo)Ñ~#fon}þ!ÂÒÍo+|µÂ !	~#foåÍ)Ñå! ëás#r!	^#Vr+s!l	^#Vr+së)ë!D	å!	~#foåÍo)Ñ~#fo#ëás#rÃr!	~#foåÍo)Ñ~#foåÍÌÑ|µÂ$!	~#foå`i^#Vr+së)Ñå!	~#foåÍo)Ñ~#foëás#rÃr!	~#foåÍo)Ñ~#foå!	åÍ{-ÑÑ!.	ë!B	s#r!	~#foåÍo)Ñ~#fo#në!/	s{þ:Â­!	~#foåÍo)Ñ~#fonë!.	s!0	ë!B	s#r!.	n&¿ÿå!åÍ9-ÑÑ!-	6!	å!-	n}·ÊÈ!ÃË!åÍ9-ÑÑë!,	s!,	n}þÿÂåÃa!-	6!,	n& Í?€åÍå!åÍ²ÑÑÑÍ,*6!‰å!	~#foå`i~#fo)Ñ~#foåÍý%ÑÑ|µÂK*ån&|²g}³oëásÃ…*##4!	~#foå`i~#fo)Ñ~#fo#å*###Ñs#r!	~#foå`i~#fo)Ñ~#fo#n}·ÊÌ!	~#foå`i~#fo)Ñå!•ëás#r!	~#foå`i~#fo)Ñå*Ñs#rÃã*#ån&|²g}³oëás!	~#foå`i~#fo)Ñ~#fo#n}·Â!¢å!åÍ²ÑÑÍ,!	~#foå`i~#fo)Ñ~#fo#åÍ,Ñ*#å!	~#foå`i~#fo)Ñ~#fo#åÍ#ÑÑ#|µÂ€!	~#foå`i~#fo)Ñ~#fo#å!Áå!åÍ²ÑÑÑÍ,*#4*##n}·Â%`i~#foë!	s#r!	~#foå!
	~#fo~#foÑÍúÒû!	~#foå!	~#fo)Ñå!	~#foå!	~#fo#)Ñ~#foëás#r!	^#Vr+sÃž!
	~foåÍÑnëás`i^#Vr+sÃ»!
	~#fo	n}þ ÊF!	~#foå!	^#Vr+sëÑ6.`i6	#6Íôÿ|Ò«!
	~#foåÍÑn}þ ÂsÃ«!	~#foå!	^#Vr+sëÑå!
	~#foåÍÑnëás`i^#Vr+sÃM!	~#foåÍÑ6ÍÃÃë!9ùëÁÉÅ!ÿÿ9ùDM!	^#Vr+sënë`is{·Ê`in}þ*Êý`in}þ?Â!ÃÃÔ!Ãë!9ùëÁÉÅ!ÿÿ9ùDM!	~#fo#n}þ:Êw!	~#fo#n}þ:Ât!	~#fon&¿ÿå!		nÑ&ÍåÂn!	å~#fo##ëás#rÃt!Ã©Ã¾!	~#fo#n}þ:Ê¾!	~#fon&¿ÿå!		nÑ&ÍåÂ¸!	å~#fo##ëás#rÃ¾!Ã©!	^#Vr+sënë`is{·Ê`in}þ?Â!	^#Vr+sënë`is{·Ê`in}þ.ÊÃ¾roken pipe
Å!þÿ9ùDM*n}·ÊM*åÍí!Ñë`is#r!óÿ|µÂJ*åÍí!Ñë`is#rÃf!åÍ9-Ñë`is#rz³ÂfÍ,`i~#foæÿ|µÂ{!ÿÿÃ°`i~#foóÿ|µÂ§`i6
#6*n}·Â§!
å!åÍ9-ÑÑ`i~#foÃ°ë!9ùëÁÉÅ!þÿ9ùDM!½ë`is#r*#n}·ÊO!	n}þ
Âý`i~#fon}þÊý*#å!åÍm#ÑÑ`i~#foå!	nëás*#å!	n&åÍm#ÑÑ#|µÂ7!¾å!åÍ²ÑÑÍ,*#n&|¢g}£o|µÂOÃ´!åÍ9-Ñ|µÊo!åÍ9-Ñ+++|µÂoÍ,!	n}þ
Â”`i~#fon}þÊ”!å!åÍ9-ÑÑ!	n&å!åÍ9-ÑÑ`i~#foå!	nëásë!9ùëÁÉFile output error; disk full?
Å!‹ÿ9ùDM!åÍ9-Ñë!n	sÍ{~#foë!	ÁÉÅ!9ùDM!	n&åÍÕ*Ñ|µÍ£Â/!!	n&åÍ+Ñ|µÍ£ÁÉÁÉÅ!yÿ9ùDM!‹	å`iåÍ'ÑÑ`iåÍb+Ñë!‡9ùëÁÉÅ!9ùDMÍå!åÍåÍ›-ÑÑëás#rzÒ‚!!ÿÿÁÉÍ##¯w#wÍ~#foÁÉÁÉÅ!üÿ9ùDMÍåÍí!Ñë`is#rzÚÞ!ÍåÍí!Ñë!	s#rzÚÞ!ÍÍ?åÍÑÃä!!ÿÿÃä!ë!9ùëÁÉÅ!þÿ9ùDMÍ|µÂ"ÍÃ°"Í+++|µÂ"!åÍ9-ÑÃ°"Í##^#Vr+së|µÂ™"!åÍåÍ~#foåÍß-ÑÑÑë`is#r!ÿÿ|Òl"Í##^#Vr+sëÃ°"Í##åÍ€Í?+ëás#rÍåÍëás#rÍ^#Vr+sën&Ã°"ë!9ùëÁÉÅ!þÿ9ùDMÍë`is#rÍn}·Êã"!	^#Vr+sÃË"!	^#Vr+sÕÍnëás!	^#VÁÉÁÉÅ!9ùDM!	n&Ÿÿ|Í¯Ú/+!	n&…ÿ|Í©ÁÉÁÉÅ!9ùDM!	n&Ðÿ|Í¯Ú^+!	n&Æÿ|Í©ÁÉÁÉÅ!9ùDMÍn}·ÊŒ+!	^#Vr+sën&åÍ¹ÑÃj+ÁÉÅ!ÿÿ9ùDMÍåÍ	ÑÍìÒÜ+Í^#Vr+sÕÍöÿÚÉ+Í0ÃÑ+Í7ëás!&Ã',Í	åÍåÍ	ÑÍ‰åÍåÍŽ+ÑÑÑë`isÍ	åÍåÍ	ÑÍ)åÍåÍŽ+ÑÑÑ`in&#&Ã',ë!9ùëÁÉÅ!þÿ9ùDM`i¯w#wÍ~#fon&åÍ3+Ñ}·Ê},Í
Í?åÍ^#Vr+sënÑ¯gÐÿë`is#rÃ>,ÍÃ„,ë!9ùëÁÉÃ Í
Åë!\Í&Í!ÁÉÍ7Å*Ÿë!Ï,Í&*¡ë!ß,Í&Ï,ÍÁþÿÊ!ÉÅÅÃ&Íèå=Â"ÅÃ&ÍèåÑÁ!ãéÍBÊLÍèÚ<"eæ=ÊLÑÑåÍÑÍåÊ%!ÿÿÃË%Í+€Í?ë`is#rÍ##~#fo|µÊ¤%!€åÍåÍåÍÑåÍå.ÑÑÑÍ##å~#foåÍÑëás#rÍå~#foåÍÑÍúëás#r!å!ÿÿåÍ~#foåÍ6/ÑÑÑÃË%Í##6#6ÍåÍëás#r!ÃË%ë!9ùëÁÉÅ!9ùDMÍüÿÚì%!ÁÉÍ~#foåÍ›/ÑÁÉÁÉÅ!þÿ9ùDM`i¯w#w!	~#foåÍÑnå!	~#foåÍÑnÑ}»ÂW&!	~#foå`i^#Vr+sëÑn}·ÂT&!Ãƒ&Ã&!	~#foåÍÑnå!	~#foåÍÑnÑ¯gWÍúÃƒ&ë!9ùëÁÉÅ!þÿ9ùDM`i¯w#w!	^#Vr+sën}·Ê¹&`i^#Vr+sÃš&ÍÃÀ&ë!9ùëÁÉÅ!þÿ9ùDMÍë`is#r!	^#Vr+sÕ!	^#Vr+sënëás{·Ê'ÃÛ<ê/í°ÁÉ~#x±Â/ÁÉ	ë	ë><ê$/í¸ÁÉ~+x±Â$/ÁÉ|ºÀ}»ÉÍ7:ŸÍ,ÚÅå*ŸåÍ¹0Ñë:£*¡·ÊX/}|æ2qãå¾Ê‰/ãëÕÍÑáþÿÂ/ÑÁÃ:qwÕÍÑþÿÊz/! Ñ{æwëÁÉÃ#Í7Å*Ÿë!Äÿ9åååÍ&á		6C#6O#6MÑÍþÿÂÍ/áÁÃ*¡|µÂã/¡Õ!\Í&áÃõ/ë!\Í&*£|µÂõ/!£ë!lÍ&¯!9å~#fo´Ê%0> +Í†0#~·Â0á##Ã0áxþSÚO070	ÍÃÈ/EXECL: Too much text
$!€p0!Ö*w#Â[0Á*:þ1Âu0*Ã~0þ!Â~0þ÷ù!åÃÖþaØþ{ÐÖ ÉÕÅÍÑÕÍÁÑ·Êø€ÍÃ!€ëÃÙÍ
Í,ÚÅFN¯xg>Goy òÝ0$ÁÉÿÿÿ÷ÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÿ÷ÿÿÿÿ^#Vr+sÃ‚)!	n}·Â)!”	6È#6!–	^#Vr+së~#foë!	s#rÍn}·Ê‚)Í”|µÊ‚)!	^#Vr+sÕ!	^#Vr+sënëás!”	^#Vr+s!’	^#Vr+sÃ8)Í6!	ë!	s#r!	n}·ÂÙ)!’	^#Vr+s!ÿÿ|ÚÙ)!œ	^#Vr+sÕ!‘	n}·ÊÐ)!0ÃÓ)! ëásÃž)Íœå!	^#Vr+sënëás{·Ê*!œ	^#Vr+sÃÙ)!	n}·Ê3*!’	^#Vr+s!ÿÿ|Ú3*!œ	^#Vr+së6 Ã*ÃI*!œ	^#Vr+sÕ`inëásÃ_*!œ	^#Vr+sÕ`inëásÃ@'Íœ6ë!˜9ùëÁÉÅ!ÿÿ9ùDM!	^#Vr+sënë`is{·ÊÆ*`in}þ
Â§*Íå!åÍm#ÑÑÍå`in&åÍm#ÑÑ#|µÂÃ*!ÿÿÃÌ*Ãy*!ÃÌ*ë!9ùëÁÉÅ!9ùDM!	n&¿ÿ|Í¯Ú+!	n&¥ÿ|Í©r+sën}·Âã"ÍÃ#ë!9ùëÁÉÅ!9ùDMÍåÍåÍU.Ñëás#rzÒ@#!ÿÿÁÉÍåÍëás#rÍ##6#6Í~#foÁÉÁÉÅ!9ùDMÍûÿÚ$Í>½Â#>¼Ê·#>½Âœ#>¼ÊÅ#>½Â¨#>¼ÊØ#>½Â´#>¼Êë#Ã$!	n&åÍ¹ÑÁÉ!	n&å!åÍ9-ÑÑÁÉ!	n&å!åÍ9-ÑÑÁÉ!	n}þ
Â$!å!åÍ9-ÑÑ!	n&å!åÍ9-ÑÑÁÉÍ##^#Vr+së|µÂu$!åÍåÍ~#foåÍ}.ÑÑÑøÿ|µÊT$!ÿÿÁÉÍ##6ÿ#6ÍåÍëás#rÍ^#Vr+sÕ!	nëásë&ÁÉÁÉÅ!þÿ9ùDMÍüÿÚ®$!ÃË%Í##~#foü|µÂÇ$!ÃË%Í##~#fo€ëÍËÍúë`is#rÍåÍåÍ~#foåÍ}.ÑÍè=Í7*¡^#V#z³Â-x28-+V+^+ÕÂ-*ŸåÍž/:8-‡o&9ù!ÿÿÉÒÍ7Å:ŸO*¡ëÍÁÉÍ
ë*³åÚp-+ë*µ|/g}/o#9Ít-Òp-ë#"³áÉáÃz¼ØÀ{½ÉÍ7Å*¡~#þ Ê‚-þ	Ê‚-+ë*ŸÍ&!ÁÉÍ7¯Í,Ú2që*ŸëÅÍ&ÍþÿÁÊ:qÍ):¡·Ê×-=Ê×-=Âr:qo&ÉÍ7:ŸÍ)Ú~æÊÅ:ŸÍ,"s!"u*£|µÊ5.*¡ëÍ*sëÕÍÑþÁÊÅþÂ:.! ~þ€Â5.6*uÁÉ*£+"£*¡€"¡*u#"uÃ.Í7*ŸÅåÍ,Ñ\ÍþÿÁÊ!å*ŸåÍ›-ÑÑÉÍ7:ŸÍ)Ú~æÊÅ:ŸÍ,"s!"u€Í*£|µ*uÊã.*¡€€~#Âº."¡*sëÍ·*uÂã.#"u*£+"£Ã§.ÁÉÍ7*£|µÈÅDM*¡ë*ŸÍÝÚ/>&ÍÃ'ë!9ùëÁÉÅ!hÿ9ùDM!ž	^#Vr+së~#foë!	s#rÍžë!–	s#r!	^#Vr+sënë`is{·Êb*`in}þ%ÂL*!	ë!	s#r!”	6#6!‘	s!	s!	sÍn}þ-Â¡'!	^#Vr+s!	4Ín}þ0Â±'!‘	4Ín&åÍ3+Ñ}·ÊÎ'!	åÍ0,ÑÃÑ'!ë!’	s#r!	^#Vr+sënë`is{þ.Â(!	åÍ0,Ñë!”	s#r!	4!	^#Vr+sënë`is`in&åÍ Ñ}þDÊE(þUÊ(þXÊŠ(þOÊ“(þCÊÙ(þSÊ
)Ã6*Í–~#fo|Ò(!	^#Vr+së6-Í–åÍ–~#foÍúëás#r!’	^#Vr+s!	6
Ã™(!	6Ã™(!	6!’	å~#foå!	n&å!–	^#Vr+së~#foå!	åÍŽ+ÑÑÑÑ¯gÍúëás#rÃ‚)!	^#Vr+sÕ!–	^#Vr+së~#foëás!’	Õå:ÆGæOxæ?/Âœ6>4Ã¤Ö
òœÆ:ÅõÍñ_ÍÁy·ÊÉÆ0õ/Íñ_ÍáÑÁÉ!ð	ÅFëx‡GÒç:†w#ÂÜë#Áx±ÂÖ:]þ È]!N!~þ6Àw#wÉþ0Øþ:?ÉConstructing $k CP/M System Vers 2.2$
Ready for "SYSGEN" or "SAVE 34 CPM$K.SYS"$synchronization error$Invalid input specification$
Executing new system$
Error reading bootstrap image$Now "SAVE 34 MOVCPMY.COM"$
CP/M Mover Ver. 1.1
$1–d	ÍÃzÃ	äyÉ#ÂÃæ1!·ÍÇÃ¯21Åyæ_Í[Íé2mÁyæ2°Í
:·ÂW1ÍÔÍÆAÍÛ>>ÍÛÍ!"³€ÍÍ2°ÍNÂN:±·Âj2²Íá!ˆ‡ÍI~#foé;ÛpÐL69jDIR ERA TYPESAVEREN USERDIR$UP$ ÍN:±·ÂN!~þ Êöþ+Êó#Ö0þ
ÒNWxþÒN‡‡€‡‚ÚNGÂÊxÉ2²#Êñ~þ ÂNÃö~#ÂÉ!€ÍI~É¯2Í#ÈÃ
:±·È=!°¾ÉÍ#È~Ã
>ÿ2²ÍNÍ!~þ ÂS6?#ÂLÕÍ3ÌÄÊ×=æ`O>
Í:²®ÚÎÑ{ÕæõÂ‹ÍÔÍÆAÍÛÃŽÍä>:ÍÛÍäxÍæþ Â¸ñõþÂ¶>	Íæþ ÊÍ> ÍÛxþÒÍþ	Â˜ÍäÃ˜ñÍÌ.Â\ÑÃHÍNþÂ!¢ÍÇÍ!5ÂA#~ÍvþYÂA#"³$„$@ ’$ 	!$$ B BH’$$’!’D’I $€‚I$DˆI"I$ˆ@BII$‰$„ˆBB„’I$$’HH‰$‚"I@ˆ’HB$ˆB $‚I$@’I$„H
TªˆA$€@ªªªªªªªªªª’$’’$@H! "!„$$"„’„ ’@B$!!‘!DH’$$‰"H @@‘BHH„ˆ 	!$$A"D@‚„ˆ "€ˆA"		"€€BH‰A "‘	!’$ D‰	B ’I ‘	$	ˆ!„$$ €H‚@BD D$’	HI DIA!$$$	$" "€€$„€D	! $„ˆ"	„’ $AB	" BD„ˆD‘ $‘$’D„’!"D’I$!$’BH„!"I‚B I‰$"D HD" " $"! @H ~·Ê#Ãx2€ÍÔÍÍ`Í1ÍoÍ
ÃA:±!²¶ÂK=w!`ÍÃš!™ÍÇÍ.ÍN:Ö !±¶ÂNÃACOMCCPXTENDSYSÿ$$$     SUBCCPLUS Ver. 1.3Ã™¥«±ë"Cë{2Ö!"E9"1A¯2à2Þ!tåyþ)ÐK!G_^#V*CëéÈ
	Î
Ô
í
ó
ø
á	þ
~ƒEœ¥«È×àæìõþ
,&-AGMS›!ÊÍåþÊÉ!ÕÃ´!áÃ´!ÜÍåÃBdos Err On  : $Bad Sector$Select$File R/O$åÍÉ	:BÆA2ÆºÍÓ	ÁÍÓ	!~6nÍ;:°_>Ãë¯2¯·Â"Í"À<>Íë<É>Ã$>Ã$>Ã$>Ãë>Íë·É>ÃE>Ã$>Ãëÿ> ÃëÍY‡‡‡‡!°¶2É:°2ÉþaØþ{Ðæ_É:m·Ê˜:°·>Ä
nÍ"ÂÂÍöÍ`>
ÍëÍo!F#x·ÊÀ:l·~ÄvwÃ­wÉ:}=2ŽnÍCÂ˜!€€Í!|6#5nÍ)Ê˜:°·Ä
!ÍÊÍÊ©ÍöÃA>Íë·È>Íë·É>Ãë€>Ãë·Èþ ÚNÈþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>É·Èþ ÀÃ?…oÐ$É>!ÍIåå¯2±*³ëÍ?ë"µëá·Ê|ÍvÖ@Gþ:Êƒ:°wÃ‰x2±pÍ¹þ.Â–Í¹#6Â›ë"³á#~þ?Â²Âªx·ÉÍ!ÊÙ#þ*ÂÈ>?ÍvwÂ¹Í!ÈÃÑ#6 ÂÙÉ!šyþÐ¾Â#Âïþ Â€!Iû$@€@€€’A$!! @@D‚I$$$!’H	II$ @€€€€$"€""€D„ A$’$IH’BH$’D’ UU@	„ ÍÍ;<ÌÄÃHÍNÂNÍÍÊKÍÔ€xþ€Ú2Í@ÂHG!€ÍI~þÊHÍÛÍÊ%ÃHÍ.ÍÔ*µ~þ Êe·ÊeÍÛ#ÃT>?ÍÛÍÔÃÍºõÍNÂNÍÍ;ÍOÊÄ¯2¯ño&):²·Ê#|µÊº+å!€åÍÍJÑáÂÄÃÍ)<ÂÊ!ÍÇÍÃHÍNÂN:±õÍÍ3Â3!ŸÍ*³ëÍ?þ=Êÿþ_ÂKë#"³ÍNÂKñG!±~·Ê¸pÂKp¯2Í3Ê-ÍTÃHÍÄÃH!­ÃE!l~/w·!¹ÊE!¼ÃEÍºþÒN_:²·ÂN:þ ÊNÍ[ÃK:þ Â†:±·ÊK=2°Í
ÍoÃK˜þ ÂNÕÍÑ!]ÍÍÊ(!€€}“|šÒBëÍëÍ@Ê£Í.ÍN!±å~2>ÍPá~2Ÿ¯2¯\!!Í!:²·Âû~·Êûþ Êû#Ãí€‚!BI „	"	  ‘’I 		$’I$’I$’D’I$‘	!I$@"$"$‘! $’I$’I $€@„  D„@@@€€„€ €@‚„þ0ÃÃ~;CCPLUS Ver. 1.3Disk searches on COM or TYPE commands
Expanded stack, CCPXTEND.SYS execution
DIR$, UP$, SAVE nn+ commandsNO FILENO SPACEBAD LOADALL (Y/N)?FILE EXISTSNO UPSHIFT!ˆÍÔ~·È#ÍÛÃÊ>ÍÛ>
Õ_>ÍëÑÉ> ÃÛ>åÕÅOÍÁÑáÉ!m~·È¯wÍ
