home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c128 / util / window12.arc / WINDOW.DOC < prev    next >
Encoding:
Text File  |  1988-01-03  |  7.9 KB  |  178 lines

  1.  
  2.  
  3.  
  4.  
  5. ╫╔╬─╧╫ ╫╧╬─┼╥
  6. ╞╧╥ ├-128, 80-├╧╠╒═╬ ╘┼╪╘ ╙├╥┼┼╬ ╫╔╘╚ ╥╟┬╔ ═╧╬╔╘╧╥
  7.  
  8.      ┼VEN THE MOST CAREFULLY WRITTEN PROGRAM CAN TAKE SEVERAL SECONDS
  9. TO CREATE AN ELABORATE TEXT SCREEN OR MENU. ╔F THE PROGRAM DEPENDS
  10. UPON SPEED TO PRODUCE A DESIRED IMPACT OR REDUCE WAITING TIME FOR THE
  11. USER, ╫INDOW ╫ONDER MAY BE HELPFUL.
  12.      ╫INDOW ╫ONDER, A MACHINE LANGUAGE UTILITY WRITTEN FOR THE
  13. ├OMMODORE ├-128, ALLOWS THE CONTENTS OF THE ENTIRE 80-COLUMN TEXT
  14. SCREEN OR OF A SUB-WINDOW TO BE ALTERNATELY STORED INTO MEMORY AND THEN
  15. RESTORED TO THE SCREEN. ┬┴╙╔├ 7.0'S ╫╔╬─╧╫ COMMAND, HOWEVER USEFUL,
  16. LACKS THE PROVISION TO RESTORE THE SCREEN ONCE THE ╫╔╬─╧╫ IS REMOVED.
  17. ╫INDOW ╫ONDER ALLOWS THE EMULATION OF PULL-DOWN MENUS HERETOFORE FOUND
  18. ONLY IN THE MOST POWERFUL HOME COMPUTERS.
  19.      ╘HE ├-128 EIGHTY-COLUMN SCREEN MEMORY IS A SEPARATE 16╦ OF ╥┴═
  20. CONTAINED IN THE 8563 CHIP. ╘HE SCREEN CAN BE ACCESSED ONLY THROUGH
  21. TWO REGISTERS SHARED BY THE 8563 CHIP AND THE ├-128 ╔/╧ MEMORY: THE
  22. ADDRESS REGISTER (54784) AND THE DATA REGISTER (54785) THROUGH WHICH
  23. ALL INFORMATION MUST SERIALLY PASS TO BE PRINTED TO THE SCREEN. ╙INCE
  24. THE 8563 CHIP IS SERVICED BY ITS OWN INTERRUPT CYCLE, TIMING IS
  25. ULTIMATELY IMPORTANT TO INSURE THAT THE DATA REGISTER CONTAINS VALID
  26. INFORMATION. ╔F THE TASK OF READING DATA FROM THE 8563 CHIP IS
  27. ATTEMPTED IN ┬┴╙╔├, THE RESULT IS PAINFULLY SLOW. ═ACHINE LANGUAGE,
  28. HOWEVER, PROVIDES A LIGHTNING FAST TRANSFER OF DATA.
  29.  
  30. ─╧╫╬╠╧┴─╔╬╟ ╘╚┼ ╫╔╬─╧╫ ╫╧╬─┼╥ ╞╔╠┼╙
  31.      ╘HE ╫INDOW ╫ONDER MACHINE LANGUAGE ROUTINE, CALLED ╫╔╬─╧╫.┬╔╬/BINARY
  32. IN THIS ─╠, SHOULD BE SAVED TO DISK AS "WINDOW.OBJ". ╧NCE WINDOW.OBJ
  33. IS LOADED INTO MEMORY AND INITIALIZED YOU MAY ┬╙┴╓┼ THE FILE ON AS MANY
  34. DISKS AS YOU LIKE BY ENTERING THE FOLLOWING STATEMENT FOLLOWED BY
  35. ╥┼╘╒╥╬: ┬╙┴╓┼"╫╔╬─╧╫.╧┬╩", ┬0, ╨8192 ╘╧ ╨8864.
  36.      ┴N OPTIONAL DEMONSTRATION PROGRAM WRITTEN IN ┬┴╙╔├, "╫╔╬─┼═.┬╔╬/BINARY,
  37. SHOWS HOW ╫INDOW ╫ONDER IS EASILY USED IN ┬┴╙╔├ PROGRAMMING. ╘HE ASSEMBLER
  38. SOURCE CODE IS ALSO INCLUDED FOR YOUR INFORMATION. ╘HE SOURCE CODE IS A
  39. SEQUENTIAL FILE CALLED "╫╔╬╙╥├.╙┼╤", AND SHOULD BE READ OR PRINTED IN
  40. ALL CAPITAL LETTERS (PRINTER SECONDARY ADDRESS = 0).
  41.  
  42. ╙╔═╨╠┼ ╙┘╬╘┴╪
  43.      ╔T IS NOT NECESSARY THAT THE ╫INDOW ╫ONDER USER HAVE ANY
  44. ANY KNOWLEDGE OF ═╠ PROGRAMMING AS LONG AS A FEW SIMPLE RULES ARE
  45. OBSERVED. ╙INCE THE 80-COL. SCREEN CAN FILL MOST OF THE 8563 ╥┴═, IT
  46. WAS DIFFICULT TO FIND A SUITABLY LARGE UNUSED AREA IN BANK 0 OF ├-128
  47. MEMORY IN WHICH TO STORE SCREEN DATA. ╔ FINALLY DECIDED TO USE THE 8╦
  48. BLOCK OF ╥┴═ OCCUPIED BY THE ╓╔├ BITMAP BEGINNING AT LOCATION 8192. ═Y
  49. RATIONALE WAS THAT MOST PROGRAMS UTILIZING THE 80-COL. SCREEN HANDLE
  50. TEXT AND DON'T REQUIRE THE BITMAP. ╬ORMALLY ┬┴╙╔├ PROGRAM TEXT BEGINS
  51. AT 8192. ╫HEN THE BITMAP IS ALLOCATED BY USING THE COMMAND "╟╥┴╨╚╔├ 1"
  52. THE ┬┴╙╔├ PROGRAM IS MOVED TO ╥┴═ UNDERLYING ┬┴╙╔├ ╠╧ ╥╧═.
  53.      ┴LTHOUGH THE ╫INDOW ╫ONDER ═╠ ROUTINE ALLOCATES AND CLEARS THE
  54. ╓╔├ BITMAP DURING INITIALIZATION, IT IS NECESSARY TO ISSUE THE ┬┴╙╔├
  55. COMMAND "╟╥┴╨╚╔├ 1,1:╟╥┴╨╚╔├ 0" (OR "╟╥┴╨╚╔├ 1,1:╟╥┴╨╚╔├ 5" IF YOU ARE
  56. ALREADY USING THE 80-COL.SCREEN) WHEN ┬╠╧┴─ING THE BINARY FILE FROM A
  57. ┬┴╙╔├ PROGRAM. ╔F THIS IS NOT DONE THE ═╠ CODE WILL BE LOADED RIGHT
  58. OVER THE ┬┴╙╔├ PROGRAM.
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ╫╔╬─╧╫ ╫╧╬─┼╥                                                 PAGE 2
  71.  
  72.      ╫INDOW ╫ONDER IS INITIALIZED BY THE COMMAND ╙┘╙ 8192.
  73. ╔NITIALIZATION ALLOCATES AND CLEARS THE BITMAP, MOVES ┬┴╙╔├ PROGRAM
  74. TEXT, PRINTS A MESSAGE TO THE SCREEN, AND SETS THE ROUTINE TO "STORE"
  75. MODE. ╘HE COMMAND ╙┘╙ 8500 ALTERNATELY "STORES" AND THEN "RESTORES"
  76. THE 80-COL. SCREEN. ╫INDOW ╫ONDER HAS A "BACK DOOR" WHICH INITIALIZES
  77. THE ROUTINE WITHOUT PRINTING THE OPENING MESSAGE. ╘HEN IT RESETS TO
  78. THE STORE MODE, DUMPING ANY OLD SCREEN PREVIOUSLY STORED. ╔ CALL ╙┘╙
  79. 8463 THE "BACK DOOR" BECAUSE ORIGINALLY ╔ WASN'T GOING TO DOCUMENT
  80. IT. ╙EE THE FLOW CHART BELOW FOR A MORE GRAPHIC EXPLANATION.
  81.  
  82. ╨╥╧╟╥┴══╔╬╟ ╨╥╧├┼─╒╥┼╙ ╞╠╧╫ ├╚┴╥╘
  83. ╒└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└╔ ╒└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└╔
  84. ▌    STARTING IN DIRECT MODE    ▌ ▌     STARTING IN BASIC PRG.    ▌
  85. ╩└└└└└└└└└└└└└└└2└└└└└└└└└└└└└└└╦ ╩└└└└└└└└└└└└└└└2└└└└└└└└└└└└└└└╦
  86.                 ▌                                 ▌
  87. ╒└└└└└└└└└└└└└└└1└└└└└└└└└└└└└└└╔ ╒└└└└└└└└└└└└└└└1└└└└└└└└└└└└└└└╔
  88. ▌ BLOAD 'WINDOW.OBJ', B0, P8192 ▌ ▌MOVE BASIC, CLR MAP:GRAPHIC 1,1▌
  89. ▌     INITIALIZE: SYS 8192      ▌ ╩└└└└└└└2└└└└└└└└└└└└└└└└2└└└└└└╦
  90. ╩└└└└└└└2└└└└└└└└└└└└└└└2└└└└└└└╦         ▌                ▌
  91.         ▌               ▌         ╒└└└└└└└1└└└└└└╔ ╒└└└└└└└1└└└└└└╔
  92. ╒└└└└└└└1└└└└└└╔ ╒└└└└└└1└└└└└└└╔ ▌ 40 COL. SCRN.▌ ▌ 80 COL. SCRN.▌
  93. ▌ 40 COL. SCRN.▌ ▌ 80 COL. SCRN.▌ ▌   GRAPHIC 0  ▌ ▌   GRAPHIC 5  ▌
  94. ▌CHANGE TO RGBI▌ ╩└└└└└└2└└└└└└└╦ ╩└└└└└└└2└└└└└└╦ ╩└└└└└└└2└└└└└└╦
  95. ╩└└└└└└└2└└└└└└╦        ▌                 ▌                ▌
  96.         ▌               ▌         ╒└└└└└└└1└└└└└└└└└└└└└└└└1└└└└└└╔
  97. ╒└└└└└└└1└└└└└└└└└└└└└└└1└└└└└└└╔ ▌ BLOAD 'WINDOW.OBJ', B0, P8192 ▌
  98. ▌ DEVELOP OR LOAD BASIC PROGRAM ▌ ▌     INITIALIZE: SYS 8192      ▌
  99. ▌              RUN              ▌ ╩└└└└└└└2└└└└└└└└└└└└└└└└2└└└└└└╦
  100. ╩└└└└└└└└└└└└└└└2└└└└└└└└└└└└└└└╦         ▌                ▌
  101.                 ▌                 ╒└└└└└└└1└└└└└└╔ ╒└└└└└└└1└└└└└└╔
  102.                 ▌                 ▌ 40 COL. SCRN.▌ ▌ 80 COL. SCRN.▌
  103.                 ▌                 ▌CHANGE TO RGBI▌ ╩└└└└└└└2└└└└└└╦
  104.                 ▌                 ╩└└└└└└└2└└└└└└╦         ▌
  105. ╒└└└└└└└└└└└└└└└1└└└└└└└└└└└└└└└└└└└└└└└└└1└└└└└└└└└└└└└└└└1└└└└└└╔
  106. ▌ TO STORE: SET WINDOW & SYS 8500 THEN CLEAR WINDOW & PRINT MENU  ▌
  107. ▌ TO RESTORE: SYS8500 THEN CHANGE WINDOW BACK AGAIN               _.
  108. ╩└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└2└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└╦^
  109.                                  ▌                                 ^
  110. ╒└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└1└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└╔^
  111. ▌   IF NMI (RUN/STOP, RESTORE) OCCURS THEN USE RESET: SYS 8463    +=
  112. ╩└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└╦
  113.  
  114. ╔═╨╧╥╘┴╬╘ ╔╬╞╧╥═┴╘╔╧╬
  115.      ╥EMEMBER THAT ╦ERNAL AND ┬┴╙╔├ ╥╧═, ╥┴═(0) AND ╔/╧ MEMORY MUST BE
  116. BROUGHT INTO CONTEXT (┬┴╬╦ 15) WHEN WINDOW.OBJ IS CALLED TO PREVENT
  117. THE OCCURRENCE OF A SYSTEM CRASH. ╔T IS IMPORTANT THAT THE ╫╔╬─╧╫ SIZE
  118. NOT BE CHANGED PRIOR TO RESTORING THE SCREEN. ┴LSO BE CERTAIN TO STORE
  119. A WINDOW BEFORE CLEARING IT OR YOU WILL SUBSEQUENTLY RESTORE A CLEARED
  120. WINDOW.
  121.  
  122. ╫╔╬─╧╫ ╫╧╬─┼╥ ╘┼╙╘
  123.      ┘OU MAY TEST ╫INDOW ╫ONDER IN THE DIRECT MODE BY ENTERING THE
  124. COMMAND ╙┘╙ 8500 TO STORE THE SCREEN, PRESS ╙╚╔╞╘ & ├╠╥/╚╧═┼ TO
  125. CLEAR THE SCREEN, AND ╙┘╙ 8500 AGAIN TO RESTORE THE SCREEN. ╘HE CURSOR
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ╫╔╬─╧╫ ╫╧╬─┼╥                                                  PAGE 3
  137.  
  138. RETURNS TO THE SCREEN AT THE SAME POSITION IT WAS WHEN THE ═╠ ROUTINE
  139. WAS CALLED. ╘HIS TEST SHOWS HOW WINDOW.OBJ MAY BE USED TO QUICKLY
  140. STORE AND SUBSEQUENTLY RESTORE A COMPLEX SCREEN WITHOUT USING THE
  141. ╫╔╬─╧╫ COMMAND.
  142.  
  143. ╨╥┴├╘╔├┴╠ ─┼═╧╬╙╘╥┴╘╔╧╬
  144.      ╫╔╬─┼═.┬╔╬/BINARY, IS A ┬┴╙╔├ PROGRAM THAT SIMULATES AN
  145. EIGHTY-COL. TERMINAL. ╘HIS PROGRAM USES PULL-DOWN MENUS WHICH MAY BE
  146. CALLED BY PRESSING ├╧╬╘╥╧╠ AND 1, 2 OR 3. ╨RESS "7" TO EXIT A MENU AND
  147. TO RETURN TO "TERMINAL" MODE. ╘HE DEMO IS NOT A FUNCTIONING TERMINAL
  148. BUT A PRACTICAL EXAMPLE OF HOW ╫INDOW ╫ONDER MAY BE USED IN YOUR OWN
  149. PROGRAMMING. ┬Y ╠╔╙╘ING THE PROGRAM TO THE SCREEN, THE LINES SHOWING
  150. SPECIFIC EXAMPLES WILL BE HIGHLIGHTED.
  151.  
  152. ├╧╬╘╔╬╟┼╬├┘
  153.      ┴LL ╫INDOW ╫ONDER FILES COPYRIGHT 1987 BY ╥ON ╠E═ON BUT ARE
  154. PLACED IN THE PUBLIC DOMAIN CONTINGENT THAT THEY BE CREATIVELY USED
  155. AND GENEROUSLY SHARED BUT NEVER FOR PROFIT!
  156.  
  157. ╙╒══┴╥┘
  158.      ┴╠╠╧├┴╘┼ & ├╠┼┴╥ ┬╔╘═┴╨: ╟╥┴╨╚╔├ 1,1
  159.      ╙┼╠┼├╘ 80-├╧╠. ╙├╥┼┼╬: ╟╥┴╨╚╔├ 5
  160.      ┬╠╧┴─"╫╔╬─╧╫.╧┬╩", ┬0, ╨8192
  161.      ┬╙┴╓┼"╫╔╬─╧╫.╧┬╩", ┬0, ╨8192 ╘╧ ╨8864
  162.      (─EFAULT DRIVE & DEVICE NUMBERS ARE USED)
  163.      ╔╬╔╘╔┴╠╔┌┼: ╙┘╙ 8192
  164.      ╥┼╙┼╘ (┬ACK ─OOR): ╙┘╙ 8463
  165.      ╙╘╧╥┼ OR ╥┼╙╘╧╥┼: ╙┘╙ 8500
  166.  
  167.                                                   ╥ON ╠E═ON
  168.                                                   76556,2477
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.