home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / pg / pgxos / xos-cd2.doc < prev    next >
Text File  |  2006-10-19  |  12KB  |  316 lines

  1. XOS-C DOC2.DOC    01/11/2000 Bob Pigford (profengr@delanet.com)
  2.  
  3. XOS-C.DOC  by Paul Globman (C) 1989
  4.                [72227,1661]
  5.  
  6.  
  7.      XOS - X-bank Operating System
  8.              (cross-bank)
  9.  
  10. XOS is a system of three programs that is designed to run in LOMEM of each of
  11. the T200's 3 RAM banks.  These three programs load/install as one program 
  12. interact with one another in such a way that you can have the software of all 3
  13. banks available in any bank.  XOS uses the first 768 bytes in each bank.
  14.  
  15. XOS runs in the location used by Disk Power 200.  With XOS installed, Disk 
  16. Power cannot be used and any attempt to use it could have disastrous results.
  17.  
  18. Installing XOS is simply a matter of 1) loading XOSLDR.CO and XOSDAT.CO into
  19. the same RAM bank, 2) HAVE AT LEAST 1K FREE RAM IN EACH BANK TO INSTALL XOS, 
  20. 3) run XOSLDR.CO, and 4) run XOSLDR.CO again (the second execution of
  21. XOSLDR.CO is sometimes needed in a cold started system... run it twice at all 
  22. times to insure proper installation).
  23.  
  24. NOTE: XOSLDR.CO and XOSDAT.CO Are available as XOS-C.200, and you will
  25. need HXFER.200 to convert the ASCII files into XOSDAT.CO and XOSLDR.CO.
  26.  
  27.  
  28. XOS was designed to offer cross-bank abilities (as well as other 
  29. enhancements) to the Tandy 200 at the MENU, with BASIC, TEXT, and TELCOM.
  30.  
  31.   ==================================
  32. MENU and TEXT enhancements:
  33.  
  34. XOS will enhance the operation of Menu functions, also offering several TEXT 
  35. utilities like background printing and cross-bank cut/paste.
  36.  
  37. At the Menu, ADRESS and SCHEDL have been made invisible, and the LABEL line
  38. will display up to 7 new functions in addition to the original 3.  The new 
  39. LABEL line will look like this:
  40.  
  41.           Cmd>           Name File     
  42. Bank Back Roms Copy Kill Pste Prnt Menu
  43.  [1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]
  44.  
  45. F2 - REVERSE BANK SWITCHING - press F2 to go to menu of previous bank.
  46.  
  47. F3 - ROMS - press F3 for ROM selection menu.  Modify the use of F3(Roms) with
  48. XOSUTL.BA (provided).
  49.  
  50. F3 - CMD> - press F3 with cursor over BASIC to run a BASIC program.  If the 
  51. cursor is NOT over BASIC, then F3 will run a .CO file.
  52.  
  53. If CAPS LOCK is on, then the file to be executed will default to 3:CMD>.BA or
  54. 3:CMD>.CO, depending upon where the cursor was.
  55.  
  56. If CAPS LOCK is off, then you will be prompted "Cmd>".  Just type in a 
  57. filename (no extension) and press enter.  "3:" is the default bank and needs 
  58. no prefix.  Filename may begin with "1:" or "2:" to indicate file location, if 
  59. not in bank #3.
  60.  
  61. F6 - PASTE BUFFER TRANSFER - move the paste buffer to another bank for 
  62. cross-bank CUT and PASTE operation.
  63.  
  64. F6 - RENAME - rename program or file under cursor.  Allows illegal 
  65. characters and filenames, so use caution.
  66.  
  67. F7 - BACKGROUND PRINTING - press F7 with cursor over DO file.  This duplicates 
  68. SAVE TO LPT: from text.  Once begun, press F7 to abort.  Beep announces 
  69. start and stop of print task.  Printing will be suspended if you switch banks,
  70. switch LOMEM code (F8), or edit a file that is in lower RAM than the file that
  71. is printing.  Backgroung printing will resume when the conditions are restored
  72. to normal.
  73.  
  74. F7 - FILES DISPLAY - press F7 to view the remaining two banks, displayed in 
  75. circular order (1,2,3,1,2), with current bank active for various MENU 
  76. functions.  Shift-F7(File) will restore the normal Menu display.
  77.  
  78. F8 - ADDITIONAL MENU OPTIONS - this will offer the additional options listed 
  79. for F3, F6, and F7.
  80.  
  81.   ===================================
  82. BASIC enhancements:
  83.  
  84. In BASIC, F8 has been re-defined to CALL 40961, which will re-install all XOS 
  85. hooks, should they become dis-engaged.  This can also be accomplished from 
  86. BASIC with the following command...
  87.  
  88. KEY8,"Menu"+chr$(24)+"CALL40961"+chr$(13)
  89.  
  90. XOS will enhance BASIC and M/L capabilities by allowing programmers to
  91. write programs that access other RAM banks.  The BASIC enhancements will 
  92. allow a running program to RUN a BASIC program, LOADM a .CO file, or KILL a 
  93. TEXT.DO file in another bank.
  94.  
  95. The instruction, CALL 41179, will load XBAS-2 into the ALT LCD buffer of the 
  96. current bank.  Once CALLed, 
  97.  
  98. XBAS-2 is used by the BASIC programmer to access files in other banks.  Data 
  99. files (.DO files) in other banks can be KILLed, and BASIC and M/L programs can 
  100. be brought in from other banks and executed in the current bank.
  101.  
  102. Once the BASIC program has executed the "CALL 41179" command, the routines can 
  103. be accessed with the following call:
  104.  
  105.     CALL 63600,CMD,VARPTR(X$)
  106.  
  107. The commands are 7 - KILL FILE.DO
  108.                  8 - LOADM FILE.CO
  109.                  9 - RUN FILE.BA
  110.  
  111. XBAS-2 does internal error checking and will beep if there is a problem.  
  112. XBAS-2 will not execute the wrong instruction and offers the BASIC 
  113. programmer a result descriptor byte so the BASIC program can trap and handle 
  114. problems.  The result descriptor (RD) byte is at 61302, and can be PEEKED 
  115. either before or after a CALL to XBAS-2.
  116.  
  117. KILL FILE
  118. This command is: F$="2:FILE.DO"
  119.                 :CALL63600,7,VARPTR(F$)
  120.  
  121. The RD byte is 0 if the file is found and killed.  The RD byte will retain 
  122. the CMD if the CALL is not sucessful, and a beep will sound.  During program
  123. debugging, a non zero RD means the file was not specified as .DO, the CMD was 
  124. not a seven (7), or the file to be killed, was not found.
  125.  
  126.  
  127. LOADM FILE.CO
  128. This command is: 
  129.  
  130.  F$="2:FILE.CO":CALL 63600,8,VARPTR(F$)
  131.  
  132. If RD=0 then the .CO file was loaded into place and the execution address is
  133. stored at 61303/61304.
  134.  
  135. The load address is stored at 61300/61301.  If these two bytes are both 0 
  136. then the file was not found.  Otherwise 61300/61301 has the load address of the
  137. file and HIMEM has to be cleared for this file to LOADM.
  138.  
  139.  
  140. RUN FILE.BA
  141. This command is: 
  142.  
  143.  F$="2:FILE.BA":CALL 63600,9,VARPTR(F$)
  144.  
  145. Your program will load and run the BASIC program F$, so if the program making 
  146. the call continues, then F$ wasn't found.  The RD would reflect the command 9.
  147.  
  148. For all XBAS-2 commands, the user must check RD and pointer addresses, 
  149. IMMEDIATELY after the CALL 63600.
  150.  
  151. The original XOS offered XBASIC.  To retain the features of XBASIC you must 
  152. store XBASIC.CO in bank #3.  Now the following code is the equivalent of 
  153. LOADM"XBASIC".
  154.  
  155. 10 CALL 41179             'LOADM XBAS-2
  156. 20 X$="3:XBASIC.CO"       'SPECIFY FILE
  157. 30 CALL63600,8,VARPTR(X$) 'LOADM XBASIC
  158. 40 IFPEEK(61302)<>0THEN99 'TEST LOAD
  159.  
  160. Now XBASIC is loaded and CALL 63600 is available with commands 1 thru 6.  A 
  161. simple CALL 41179 will reload XBAS-2 for commands 7,8, and 9.
  162.  
  163. BASIC programs are brought into the unsaved program buffer, and executed by
  164. IPL of the unsaved buffer progradisastIC programs called in by the CMD> 
  165. key should begin with the IPL"" statement to prevent it from unwanted 
  166. execution.
  167.  
  168. Attempts to alter the POWER time setting must be followed by POKE 40962.  Ex:
  169.  
  170.  10  POWER 100:POKE40962,100
  171.  20  POWER CONT:POKE40962,0
  172.  
  173.   =================================
  174. TELCOM enhancements:
  175.  
  176. XOS adds the following to TELCOM's TERM mode...
  177.  
  178.   F6 = display files and bytes
  179.   F6+SHIFT = direct access to TEXT
  180.   F7 = jump to TELCOM in next bank
  181.   F7+SHIFT = jmp TELCOM in prev. bank
  182.  
  183. XOS will allow you to jump from bank to bank while on-line with either
  184. an external or internal modem.  And whichever bank you jump to, the hooks
  185. are active to allow you to switch banks again.
  186.  
  187. The TELCOM hook code runs in the last 15 file slots of the directory of each 
  188. bank.  This means that you can have a maximum of 31 files per bank, instead 
  189. of 46.  From the T200 users I have spoken to, this is not a problem.
  190.  
  191. In return for the 15 file sacrifice you get several excellent TELCOM 
  192. enhancements.
  193.  
  194. NOTE: The first time you enter TELCOM in another bank, you will enter the TERM
  195. mode by pressing F4(Term).  Should you exit this bank, and re-enter it, you 
  196. will have to type TERM<ENTER> if F4(Term) doesn't work.
  197.  
  198. Each time you press F3(Cmd>) at the Menu, the TELCOM hooks will be reset in
  199. all three banks so the XOS features are active, in the same way F8 from BASIC 
  200. restores the XOS menu hook.  Programs that alter the TELCOM hooks can now be 
  201. used without concern.
  202.  
  203.   =================================
  204. YOUR CUSTOM 200
  205.  
  206. I have given XOS the ability to be customized.  F3 comes with "Roms" and 
  207. "Cmd>" as its default utilities.  The "Roms" function key can be made to 
  208. offer direct access to your OPTION ROM(s).
  209.  
  210. The "Cmd>" function key can be made to load and run default programs that are 
  211. named CMD>.BA and CMD>.CO in Bank #3 by maintaining CAPS LOCKed.  Unlocking 
  212. CAPS will allow user input to determine file to run.
  213.  
  214. The following XOSUTL.BA will allow the redefining of F3(Roms) for your 
  215. individual use.  Note... UR-2 may disengage the XOS hook.  BASIC F8 will
  216. restore the XOS hook as it returns to the Menu.  Use this to access the NODE 
  217. ROM and keep XOS engaged.
  218.  
  219. If you run XOSSAV.CO (with XOSDAT.CO in RAM), the current modified F3(Roms) 
  220. will be saved to XOSDAT so future loads of XOSDAT will not require any further
  221. modification.
  222.  
  223.  =====================================
  224. Acknowledgements:
  225.  
  226. James Yi [73327,1653] for part of the LOMEM adjustment code.
  227.  
  228. Randy Hess [73267,552] for beta testing and feedback.
  229.  =====================================
  230.  USE HXFER.CO TO CREATE XOSSAV.CO
  231.  
  232. With XOSDAT.CO on the menu, run XOSSAV.CO to modify XOSDAT so it 
  233. reflects CURRENT status.
  234.  
  235. 70F8480070F811AEF83E0ACD4F6ECAD232CD8C6E2806F3AFCD91F83E04CD91F83E08CD91F8FBC9329CF80100032100A0C50600D5CDB19B7AD112C123130B79B0
  236. C29AF8C9584F534441542E434F00
  237.  
  238. =======================================
  239. 0 REM XOSUTL.BA   Copyright (c) 1989
  240. 5 REM              by Paul Globman
  241. 10 REM Utility Module
  242. 20 M=INSTR("n",CHR$(PEEK(41024)))
  243. 30 IF M<>1 THEN BEEP:MENU
  244. 40 CLS:PRINT:PRINT"You are about to ";
  245. 50 PRINT"modify XOS module #"M:PRINT
  246. 60 PRINT"The label above [F3] is...  ";
  247. 70 FORI=1TO4:P$=P$+CHR$(PEEK(41001+I))
  248. 80 NEXT:PRINTP$:PRINT:PRINT
  249. 90 GOTO 1000
  250. 100 REM -------------------- MAKE F3=X$
  251. 105 FOR I=1 TO 4
  252. 110 POKE 41001+I,ASC(MID$(X$,I,1)):NEXT
  253. 115 RETURN
  254. 1000 REM ------------------------ XOS-1
  255. 1005 RESTORE 1010:X$="Roms":GOSUB100
  256. 1006 FORI=0TO76:READA:POKE41563+I,A
  257. 1007 NEXT:GOTO1020
  258. 1010 DATA 205,150,79,33,56,162,205,204
  259. 1011 DATA 17,42,63,245,34,116,162,42,65
  260. 1012 DATA 245,34,122,162,205,23,155,33
  261. 1013 DATA 11,244,34,63,245,33,79,244,34
  262. 1014 DATA 65,245,33,1,160,34,61,245,175
  263. 1015 DATA 50,30,253,50,72,248,33,140
  264. 1016 DATA 162,229,205,3,139,208,254,5
  265. 1017 DATA 208,245,62,240,33,181,242,1
  266. 1018 DATA 11,0,22,46,190,194,168,162,54
  267. 1019 DATA 0
  268. 1020 PRINT" 1 - TS-DOS
  269. 1030 PRINT" 2 - ANY OTHER ROM
  270. 1040 PRINT" 3 - 8 ROM PACK
  271. 1050 PRINT" 4 - 8 ROM PACK / ROMDISK
  272. 1060 PRINT
  273. 1070 PRINT" 5 - NO ROM
  274. 1080 PRINTSTRING$(30,"-"):PRINT
  275. 1090 PRINT" Option => ";
  276. 1093 O$=INPUT$(1):IFO$=""THEN1095
  277. 1095 O=VAL(O$):IFO<1ORO>5THEN1095
  278. 1098 ON O GOTO 1100,1200,1300,1400,1500
  279. 1100 REM ----------------------- TS-DOS
  280. 1105 RESTORE 1190:POKE41528,0
  281. 1110 FORI=1TO13:READA:POKE41562+I,A
  282. 1120 NEXT:X$="Disk":GOSUB100:MENU
  283. 1190 DATA 175,50,30,253,219,216,230
  284. 1195 DATA 12,246,2,205,239,238
  285. 1200 REM -------------------- OTHER ROM
  286. 1210 REM use for UR-2, SuperRom, ROM2
  287. 1220 POKE41528,0
  288. 1230 FORI=0TO3:POKE41605+I,0:NEXT
  289. 1240 PRINT"Enter 4 character "
  290. 1250 PRINT"         F3 label :";
  291. 1251 LINEINPUTX$
  292. 1260 IF LEN(X$)<>4THEN1250
  293. 1270 GOSUB100:MENU
  294. 1300 REM ----------------------- ROMPAK
  295. 1310 POKE41621,5:GOTO1450
  296. 1400 REM ---------------------- POMPAK+
  297. 1410 POKE41621,6
  298. 1450 REM --------------------- ROM line
  299. 1455 R$="Rom2 UR-2 Super Disk TWrd Romdsk":CLS:PRINT:PRINT:PRINT
  300. 1457 IFO=3THENR$=LEFT$(R$,25)
  301. 1460 PRINT"Create your own ROMs option"
  302. 1461 PRINT"      line below...":PRINT
  303. 1462 PRINT:PRINT"Press <enter> to use sample line...
  304. 1465 PRINT@560,R$:LINEINPUTR2$
  305. 1466 IF R2$=""THEN R2$=R$
  306. 1470 R2$=LEFT$(R2$+SPACE$(32),32)
  307. 1475 FORI=1TO32
  308. 1480 POKE41527+I,ASC(MID$(R2$,I,1))
  309. 1485 NEXT:MENU
  310. 1500 REM ----------------------- NO ROM
  311. 1505 RESTORE 1530
  312. 1510 FORI=1TO3:READA:POKE41562+I,A
  313. 1520 NEXT:X$="    ":GOSUB100:MENU
  314. 1530 DATA 195,129,160
  315.  
  316.