home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / k65src.zip / loadrs.m65 < prev    next >
Text File  |  1987-06-11  |  16KB  |  562 lines

  1. ;----------------------------------------------------------------
  2. ; Atari OS defs from SYSMAC.SML inserted here
  3. ;
  4.  
  5. ;    VECTOR TABLE
  6.  
  7. EDITRV    =$E400            ;EDITOR
  8. SCRENV    =$E410            ;TELEVISION SCREEN
  9. KEYBDV    =$E420            ;KEYBOARD
  10. PRINTV    =$E430            ;PRINTER
  11. CASETV    =$E440            ;CASSETTE
  12.  
  13. ;    JUMP VECTOR TABLE
  14.  
  15. DISKIV    =$E450            ;DISK INITIALIZATION
  16. DSKINV    =$E453            ;DISK INTERFACE
  17. CIOV    =$E456            ;CIO ROUTINE
  18. SIOV    =$E459            ;SIO ROUTINE
  19. SETVBV    =$E45C            ;SET VERTICAL BLANK VECTORS
  20. SYSVBV    =$E45F            ;SYSTEM VERTICAL BLANK ROUTINE
  21. XITVBV    =$E462            ;EXIT VERTICAL BLANK ROUTINE
  22. SIOINV    =$E465            ;SIO INIT
  23. SENDEV    =$E468            ;SEND ENABLE ROUTINE
  24. INTINV    =$E46B            ;INTERRUPT HANDLER INIT
  25. CIOINV    =$E46E            ;CIO INIT
  26. BLKBDV    =$E471            ;BLACKBOARD MODE
  27. WARMSV    =$E474            ;WARM START ENTRY POINT
  28. COLDSV    =$E477            ;COLD START ENTRY POINT
  29. RBLOKV    =$E47D            ;CASSETTE READ BLOCK VECTOR
  30. DSOPIV    =$E480            ;CASSETTE OPEN FOR INPUT VECTOR
  31.  
  32. ;    SOME USEFUL INTERNAL ROUTINES
  33.  
  34. ;KGETCH    =$F6E2            ;GET CHAR FROM KEYBOARD only on 800
  35. EOUTCH    =$F6A4            ;OUTPUT CHAR TO SCREEN
  36. PUTLIN    =$F385            ;OUTPUT LINE TO IOCB#0
  37.  
  38. ;    COMMAND CODES FOR IOCB
  39.  
  40. OPEN    =$03            ;OPEN FOR INPUT/OUTPUT
  41. GETREC    =$05            ;GET RECORD (TEXT)
  42. GETCHR    =$07            ;GET CHARACTER(S)
  43. PUTREC    =$09            ;PUT RECORD (TEXT)
  44. PUTCHR    =$0B            ;PUT CHARACTER(S)
  45. CLOSE    =$0C            ;CLOSE DEVICE
  46. STATIS    =$0D            ;STATUS REQUEST
  47. SPECIL    =$0E            ;SPECIAL ENTRY COMMANDS
  48.  
  49. ;    SPECIAL ENTRY COMMANDS
  50.  
  51. DRAWLN    =$11            ;DRAW LINE
  52. FILLIN    =$12            ;DRAW LINE WITH RIGHT FILL
  53. RENAME    =$20            ;RENAME DISK FILE
  54. DELETE    =$21            ;DELETE DISK FILE
  55. FORMAT    =$22            ;FORMAT DISK
  56. LOCKFL    =$23            ;LOCK FILE (READ ONLY)
  57. UNLOCK    =$24            ;UNLOCK FILE
  58. POINT    =$25            ;POINT SECTOR
  59. NOTE    =$26            ;NOTE SECTOR
  60.  
  61. CCIO    =$28            ;CONCURRENT I/O MODE
  62.  
  63. IOCFRE    =$FF            ;IOCB "FREE"
  64.  
  65. ;    AUX1 VALUES FOR OPEN
  66.  
  67. APPEND    =$01            ;OPEN FOR APPEND
  68. DIRECT    =$02            ;OPEN FOR DIRECTORY ACCESS
  69. OPNIN    =$04            ;OPEN FOR INPUT
  70. OPNOT    =$08            ;OPEN FOR OUTPUT
  71. OPNINO    =OPNIN!OPNOT        ;OPEN FOR INPUT/OUTPUT
  72. MXDMOD    =$10            ;OPEN FOR MIXED MODE
  73. INSCLR    =$20            ;OPEN WITHOUT CLEARING SCREEN
  74.  
  75. ; OS STATUS CODES
  76.  
  77. SUCCES    =$01            ;SUCCESSFUL OPERATION
  78. BRKABT    =$80            ;(128) BREAK KEY ABORT
  79. PRVOPN    =$81            ;(129) IOCB ALREADY OPEN
  80. NONDEV    =$82            ;(130) NON-EX DEVICE
  81. WRONLY    =$83            ;(131) IOCB OPENED FOR WRITE ONLY
  82. NVALID    =$84            ;(132) INVALID COMMAND
  83. NOTOPN    =$85            ;(133) DEVICE OR FILE NOT OPEN
  84. BADIOC    =$86            ;(134) INVALID IOCB NUMBER
  85. RDONLY    =$87            ;(135) IOCB OPENED FOR READ ONLY
  86. EOFERR    =$88            ;(136) END OF FILE
  87. TRNRCD    =$89            ;(137) TRUNCATED RECORD
  88. TIMOUT    =$8A            ;(138) DEVICE TIMEOUT
  89. DNACK    =$8B            ;(139) DEVICE DOES NOT ACK COMMAND
  90. FRMERR    =$8C            ;(140) SERIAL BUS FRAMING ERROR
  91. CRSROR    =$8D            ;(141) CURSOR OUT OF RANGE
  92. OVRRUN    =$8E            ;(142) SERIAL BUS DATA OVERRUN
  93. CHKERR    =$8F            ;(143) SERIAL BUS CHECKSUM ERROR
  94. DERROR    =$90            ;(144) DEVICE ERROR (OPERATION INCOMPLETE)
  95. BADMOD    =$91            ;(145) BAD SCREEN MODE NUMBER
  96. FNCNOT    =$92            ;(146) FUNCTION NOT IN HANDLER
  97. SCRMEM    =$93            ;(147) INSUFFICIENT MEMORY FOR SCREEN MODE
  98.  
  99. ;    PAGE 0 LOCATIONS
  100.  
  101. LINZBS    =$00            ;LINBUG STORAGE
  102.  
  103. ;  THESE LOCS ARE NOT CLEARED
  104.  
  105. CASINI    =$02            ;CASSETTE INIT LOC
  106. RAMLO    =$04            ;RAM POINTER FOR MEM TEST
  107. TRAMSZ    =$06            ;TEMP LOC FOR RAM SIZE
  108. TSTDAT    =$07            ;RAM TEST DATA LOC
  109.  
  110. ;  CLEARED ON COLDSTART ONLY
  111.  
  112. WARMST    =$08            ;WARM START FLAG
  113. BOOTQ    =$09            ;SUCCESSFUL BOOT FLAG
  114. DOSVEC    =$0A            ;DOS START VECTOR
  115. DOSINI    =$0C            ;DOS INIT ADDRESS
  116. APPMHI    =$0E            ;APPLICATION MEM HI LIMIT
  117.  
  118. ;  CLEARED ON COLD OR WARM START
  119.  
  120. INTZBS    =$10            ; START OF OS RAM CLEAR LOC => $7F
  121. POKMSK    =$10            ;SYSTEM MASK FOR POKEY IRQ ENABLE
  122. BRKKEY    =$11            ;BREAK KEY FLAG
  123. RTCLOK    =$12            ;REAL TIME CLOCK (60HZ OR 16.66666 MS)
  124. BUFADR    =$15            ;INDIRECT BUFFER ADDRESS REG
  125. ICCOMT    =$17            ;COMMAND FOR VECTOR HANDLER
  126. DSKFMS    =$18            ;DISK FILE MANAGER POINTER
  127. DSKUTL    =$1A            ;DISK UTILITIES POINTER
  128. PTIMOT    =$1C            ;PRINTER TIME OUT REGISTER
  129. PBPNT    =$1D            ;PRINT BUFFER POINTER
  130. PBUFSZ    =$1E            ;PRINT BUFFER SIZE
  131. PTEMP    =$1F            ;TEMP REG
  132. ZIOCB    =$20            ;PAGE 0 I/O CONTROL BLOCK
  133. IOCBSZ    =16            ;NUMBER OF BYTES / IOCB
  134. MAXIOC    =8*IOCBSZ        ;LENGTH OF IOCB AREA
  135. IOCBAS    =ZIOCB
  136.  
  137. ICHIDZ    =$20            ;HANDLER INDEX NUMBER ($FF := IOCB FREE)
  138. ICDNOZ    =$21            ;DEVICE NUMBER (DRIVE NUMBER)
  139. ICCOMZ    =$22            ;COMMAND CODE
  140. ICSTAZ    =$23            ;STATUS OF LAST IOCB ACTION
  141. ICBALZ    =$24            ;BUFFER ADDRESS (LOW)
  142. ICBAHZ    =$25            ;  "       "    (HIGH)
  143. ICPTLZ    =$26            ;PUT BYTE ROUTINE ADDRESS - 1
  144. ICPTHZ    =$27
  145. ICBLLZ    =$28            ;BUFFER LENGTH (LOW)
  146. ICBLHZ    =$29            ;  "       "   (HIGH)
  147. ICAX1Z    =$2A            ;AUX INFO
  148. ICAX2Z    =$2B
  149. ICSPRZ    =$2C            ;SPARE BYTES (CIO LOCAL USE)
  150. ICIDNO    =ICSPRZ+2        ;IOCB LUMBER * 16
  151. CIOCHR    =ICSPRZ+3        ;CHARACTER BYTE FOR CURRENT OPERATION
  152.  
  153. STATUS    =$30            ;INTERNAL STATUS STORAGE
  154. CHKSUM    =$31            ;CHECKSUM (SINGLE BYTE SUM WITH CARRY)
  155. BUNRLO    =$32            ;POINTER TO DATA BUFFER (LO BYTE)
  156. BUFRHI    =$33            ;POINTER TO DATA BUFFER (HI BYTE)
  157. BFENLO    =$34            ;NEXT BYTE PAST END OF BUFFER (LO BYTE)
  158. BNENHI    =$35            ;NEXT BYTE PAST END OF BUFFER (HI BYTE)
  159. CRETRY    =$36            ;NUMBER OF COMMAND FRAM RETRIES
  160. DRETRY    =$39            ;NUMBER OF DEVICE RETRIES
  161. BUFRFL    =$38            ;DATA BUFFER FULL FLAG
  162. RECVDN    =$39            ;RECEIVE DONE FLAG
  163. XMTDON    =$3A            ;XMIT DONE FLAG
  164. CHKSNT    =$3B            ;CHECKSUM SENT FLAG
  165. NOCKSM    =$3C            ;NO CHECKSUM FOLLOWS DATA FLAG
  166.  
  167. BPTR    =$3D            ;BUFFER POINTER (CASSETTE)
  168. FTYPE    =$3E            ;FILE TYPE (SHORT IRG/LONG IRG)
  169. FEOF    =$3F            ;END OF FILE FLAG (CASSETTE)
  170. FREQ    =$40            ;FREQ COUNTER FOR CONSOLE SPEAKER
  171. SOUNDR    =$41            ;NOISY I/O FLAG. (ZERO IS QUIET)
  172. CRITIC    =$42            ;CRITICAL CODE IF NON-ZERO)
  173.  
  174. FMSZPG    =$43            ;DISK FILE MANAGER SYSTEM STORAGE (7 BYTES)
  175.  
  176. CKEY    =$4A            ;SET WHEN GAME START PRESSED
  177. CASSBT    =$4B            ;CASSETTE BOOT FLAG
  178. DSTAT    =$4C            ;DISPLAY STATUS
  179. ATRACT    =$4D            ;ATTRACT MODE FLAG
  180. DRKMSK    =$4E            ;DARK ATTRACT MASK
  181. COLRSH    =$4F            ;ATTRACT COLOR SHIFTER (XOR'D WITH PLAYFIELD)
  182.  
  183. TMPCHR    =$50            ;TEMP CHAR STORAGE (DISPLAY HANDLER)
  184. HOLD1    =$51            ;TEMP STG (DISPLAY HANDLER)
  185. LMARGN    =$52            ;LEFT MARGIN
  186. RMARGN    =$53            ;RIGHT MARGIN
  187. ROWCRS    =$54            ;CURSOR COUNTERS
  188. COLCRS    =$55
  189. DINDEX    =$57            ;DISPLAY INDEX (VARIOUS QUANTS)
  190. SAVMSC    =$58
  191. OLDROW    =$5A            ;PREVIOUS ROW/COL
  192. OLDCOL    =$5B
  193. OLDCHR    =$5D            ;DATA UNDER CURSOR
  194. OLDADR    =$5E
  195. NEWROW    =$60            ;POINT DRAWS TO HERE
  196. NEWCOL    =$61
  197. LOGCOL    =$63            ;POINTS AT COLUMN IN LOGICAL LINE
  198. ADRESS    =$64            ;INDIRECT POINTER
  199. MLTTMP    =$66            ;MULTIPLY TEMP
  200. OPNTMP    =MLTTMP            ;FIRST BYTE IS USED IN OPEN AS TEMP
  201. SAVADR    =$68
  202. RAMTOP    =$6A            ;RAM SIZE DEFINED BY POWER ON LOGIC
  203. BUFCNT    =$6B            ;BUFFER COUNT
  204. BUFSTR    =$6C            ;EDITOR GETCH POINTER
  205. BITMSK    =$6E            ;BIT MASK
  206. SHFAMT    =$6F            ;OUTCHR SHIFT
  207.  
  208. ROWAC    =$70            ;USED BY "DRAW"
  209. COLAC    =$72
  210. ENDPT    =$74
  211. DELTAR    =$76
  212. DELTAC    =$77
  213. ROWINC    =$79
  214. COLINC    =$7A
  215. SWPFLG    =$7B            ;NON-0 IF TXT AND RAM SWAPPED
  216. HOLDCH    =$7C            ;CH BEFORE CNTL & SHFT PROCESSING IN KGETCH
  217. INSDAT    =$7D            ;INSERT CHAR SAVE
  218. COUNTR    =$7E            ;DRAW COUNTER
  219.  
  220. ;;;    $80 TO $FF ARE RESERVED FOR USER APPLICATIONS
  221.  
  222. ;    PAGE 2 LOCATIONS
  223.  
  224. INTABS    =$200            ;INTERRUPT TABLE
  225. VDSLST    =$200            ;DISPLAY LIST NMI VECTOR
  226. VPRCED    =$202            ;PROCEED LINE IRQ VECTOR
  227. VINTER    =$204            ;INTERRUPT LINE IRQ VECTOR
  228. VBREAK    =$206            ;"BRK" VECTOR
  229. VKEYBD    =$208            ;POKEY KEYBOARD IRQ VECTOR
  230. VSERIN    =$20A            ;POKEY SERIAL INPUT READY
  231. VSEROR    =$20C            ;POKEY SERIAL OUTPUT READY
  232. VSEROC    =$20E            ;POKEY SERIAL OUTPUT DONE
  233. VTIMR1    =$210            ;POKEY TIMER 1 IRQ
  234. VTIMR2    =$212            ;POKEY TIMER 2 IRQ
  235. VTIMR4    =$214            ;POKEY TIMER 4 IRQ (DO NOT USE)
  236. VIMIRQ    =$216            ;IMMEDIATE IRQ VECTOR
  237. CDTMV1    =$218            ;COUNT DOWN TIMER 1
  238. CDTMV2    =$21A            ;COUNT DOWN TIMER 2
  239. CDTMV3    =$21C            ;COUNT DOWN TIMER 3
  240. CDTMV4    =$21E            ;COUNT DOWN TIMER 4
  241. CDTMV5    =$220            ;COUNT DOWN TIMER 5
  242. VVBLKI    =$222            ;IMMEDIATE VERTICAL BLANK NMI VECTOR
  243. VVBLKD    =$224            ;DEFERRED VERTICAL BLANK NMI VECTOR
  244. CDTMA1    =$226            ;COUNT DOWN TIMER 1 JSR ADDRESS
  245. CDTMA2    =$228            ;COUNT DOWN TIMER 2 JSR ADDRESS
  246. CDTMF3    =$22A            ;COUNT DOWN TIMER 3 FLAG
  247. SRTIMR    =$22B            ;SOFTWARE REPEAT TIMER
  248. CDTMF4    =$22C            ;COUNT DOWN TIMER 4 FLAG
  249. INTEMP    =$22D            ;IAN'S TEMP (???)
  250. CDTMF5    =$22E            ;COUNT DOWN TIMER 5 FLAG
  251. SDMCTL    =$22F            ;SAVE DMACTL REGISTER
  252. DMACTL    =$D400            ; the real DMA control reg
  253. SDLSTL    =$230            ;SAVE DISPLAY LIST (LOW)
  254. SDLSTH    =$231            ;SAVE DISPLAY LIST (HIGH)
  255. SSKCTL    =$232            ;SKCTL REGISTER RAM
  256.  
  257. LPENH    =$234            ;LIGHT PEN HORIZ VALUE
  258. LPENV    =$235            ;LIGHT PEN VERT VALUE
  259.                 ; ($236 - $239 SPARE)
  260. CDEVIC    =$23A            ;COMMAND FRAME BUFFER - DEVICE
  261. CCOMND    =$23B            ;COMMAND
  262. CAUX1    =$23C            ;COMMAND AUX BYTE 1
  263. CAUX2    =$23D            ;COMMAND AUX BYTE 2
  264. TEMP    =$23E            ;YES
  265. ERRFLG    =$23F            ;ERROR FLAG - ANY DEVICE ERROR EXCEPT TIMEOUT
  266.  
  267. DFLAGS    =$240            ;DISK FLAGS FROM SECTOR ONE
  268. DBSECT    =$241            ;NUMBER OF DISK BOOT SECTORS
  269. BOOTAD    =$242            ;ADDRESS FOR DISK BOOT LOADER
  270. COLDST    =$244            ;COLDSTART FLAG (1 = DOING COLDSTART)
  271.                 ;($245 SPARE)
  272. DSKTIM    =$246            ;DISK TIME OUT REG
  273. LINBUF    =$247            ;CHAR LINE BUFFER (40 BYTES)
  274.  
  275. GPRIOR    =$26F            ;GLOBAL PRIORITY CELL
  276. PADDL0    =$270            ;POT 0 SHADOW
  277. PADDL1    =$271            ;POT 1 SHADOW
  278. PADDL2    =$272            ;POT 2 SHADOW
  279. PADDL3    =$273            ;POT 3 SHADOW
  280. PADDL4    =$274            ;POT 4 SHADOW
  281. PADDL5    =$275            ;POT 5 SHADOW
  282. PADDL6    =$276            ;POT 6 SHADOW
  283. PADDL7    =$277            ;POT 7 SHADOW
  284. STICK0    =$278            ;JOYSTICK 0 SHADOW
  285. STICK1    =$279            ;JOYSTICK 1 SHADOW
  286. STICK2    =$27A            ;JOYSTICK 2 SHADOW
  287. STICK3    =$27B            ;JOYSTICK 3 SHADOW
  288. PTRIG0    =$27C            ;PADDLE 0 TRIGGER
  289. PTRIG1    =$27D            ;PADDLE 1 TRIGGER
  290. PTRIG2    =$27E            ;PADDLE 2 TRIGGER
  291. PTRIG3    =$27F            ;PADDLE 3 TRIGGER
  292. PTRIG4    =$280            ;PADDLE 4 TRIGGER
  293. PTRIG5    =$281            ;PADDLE 5 TRIGGER
  294. PTRIG6    =$282            ;PADDLE 6 TRIGGER
  295. PTRIG7    =$283            ;PADDLE 7 TRIGGER
  296. STRIG0    =$284            ;JOYSTICK 0 TRIGGER
  297. STRIG1    =$285            ;JOYSTICK 1 TRIGGER
  298. STRIG2    =$286            ;JOYSTICK 2 TRIGGER
  299. STRIG3    =$287            ;JOYSTICK 3 TRIGGER
  300.  
  301. CSTAT    =$288            ;(UNUSED)
  302. WMODE    =$289            ;R/W FLAG FOR CASSETTE
  303. BLIM    =$28A            ;BUFFER LIMIT (CASSETTE)
  304.                 ;($28B - $28F SPARE)
  305. TXTROW    =$290            ;TEXT ROWCRS
  306. TXTCOL    =$291            ;TEXT ROWCOL
  307. TINDEX    =$293            ;TEXT INDEX
  308. TXTMSC    =$294            ;FOOLS CONVRT INTO NEW MSC
  309. TXTOLD    =$296            ;OLDROW & OLDCOL FOR TEXT (AND THEN SOME)
  310. TMPX1    =$29C
  311. HOLD3    =$29D
  312. SUBTMP    =$29E
  313. HOLD2    =$29F
  314. DMASK    =$2A0
  315. TMPLBT    =$2A1
  316. ESCFLG    =$2A2            ;ESCAPE FLAG
  317. TABMAP    =$2A3            ;TAB BUFFER
  318. LOGMAP    =$2B2            ;LOGICAL LINE START BIT MAP
  319. INVFLG    =$2B6            ;INVERSE VIDEO FLAG (ATARI KEY)
  320. FILFLG    =$2B7            ;RIGHT FILL FLAG FOR DRAW
  321. TMPROW    =$2B8
  322. TMPCOL    =$2B9
  323. SCRFLG    =$2BB            ;SET IF SCROLL OCCURS
  324. HOLD4    =$2BC            ;MORE DRAW TEMPS
  325. HOLD5    =$2BD
  326. SHFLOK    =$2BE            ;SHIFT LOCK KEY
  327. BOTSCR    =$2BF            ;BOTTOM OF SCREEN (24 NORM, 4 SPLIT)
  328.  
  329. PCOLR0    =$2C0            ;P0 COLOR
  330. PCOLR1    =$2C1            ;P1 COLOR
  331. PCOLR2    =$2C2            ;P2 COLOR
  332. PCOLR3    =$2C3            ;P3 COLOR
  333. COLOR0    =$2C4            ;COLOR 0
  334. COLOR1    =$2C5
  335. COLOR2    =$2C6
  336. COLOR3    =$2C7
  337. COLOR4    =$2C8            ;BACKGROUND
  338.                 ;($2C9 - $2DF SPARE)
  339. GLBABS    =$2E0            ;GLOBAL VARIABLES
  340.                 ;($2E0 - $2E3 SPARE)
  341. RAMSIZ    =$2E4            ;RAM SIZE (HI BYTE ONLY)
  342. MEMTOP    =$2E5            ;TOP OF AVAILABLE MEMORY
  343. MEMLO    =$2E7            ;BOTTOM OF AVAILABLE MEMORY
  344.                 ;($2E9 SPARE)
  345. DVSTAT    =$2EA            ;STATUS BUFFER
  346. CBAUDL    =$2EE            ;CASSETTE BAUD RATE (LO BYTE)
  347. CBAUDH    =$2EF            ;   "      "    "   (HI BYTE)
  348. CRSINH    =$2F0            ;CURSOR INHIBIT (00 = CURSOR ON)
  349. KEYDEL    =$2F1            ;KEY DELAY
  350. CH1    =$2F2
  351. CHACT    =$2F3            ;CHACTL REGISTER (SHADOW)
  352. CHBAS    =$2F4            ;CHBAS REGISTER (SHADOW)
  353.                 ;($2F5 - $2F9 SPARE)
  354. CHAR    =$2FA
  355. ATACHR    =$2FB            ;ATASCII CHARACTER
  356. CH    =$2FC            ;GLOBAL VARIABLE FOR KEYBOARD
  357. FILDAT    =$2FD            ;RIGHT FILL DATA (DRAW)
  358. DSPFLG    =$2FE            ;DISPLAY FLAG: DISP CONTROLS IF NON-ZERO
  359. SSFLAG    =$2FF            ;START/STOP FLAG (CNTL-1) FOR PAGING
  360.  
  361. ;    PAGE 3 LOCATIONS
  362.  
  363. DCB    =$300            ;DEVICE CONTROL BLOCK
  364. DDEVIC    =$300            ;BUS I.D. NUMBER
  365. DUNIT    =$301            ;UNIT NUMBER
  366. DCOMND    =$302            ;BUS COMMAND
  367. DSTATS    =$303            ;COMMAND TYPE/STATUS RETURN
  368. DBUFLO    =$304            ;DATA BUFFER POINTER
  369. DBUFHI    =$305            ; ...
  370. DTIMLO    =$306            ;DEVICE TIME OUT IN 1 SEC. UNITS
  371. DUNUSE    =$307            ;UNUSED
  372. DBYTLO    =$308            ;BYTE COUNT
  373. DBYTHI    =$309            ; ...
  374. DAUX1    =$30A            ;COMMAND AUXILLARY BYTES
  375. DAUX2    =$30B            ; ...
  376.  
  377. TIMER1    =$30C            ;INITIAL TIMER VALUE
  378. ADDCOR    =$30E            ;ADDITION CORRECTION
  379. CASFLG    =$30F            ;CASSETTE MODE WHEN SET
  380. TIMER2    =$310            ;FINAL TIME VALUE (USED TO COMPUTE BAUD RATE)
  381. TEMP1    =$312            ;TEMP LOCATIONS
  382. TEMP2    =$314            ; ...
  383. TEMP3    =$315            ; ...
  384. SAVIO    =$316            ;SAVE SERIAL IN DATA PORT
  385. TIMFLG    =$317            ;TIME OUT FLAG FOR BAUD RATE CORRECTION
  386. STACKP    =$318            ;SIO STACK POINTER SAVE LOC
  387. TSTAT    =$319            ;TEMP STATUS LOC
  388.  
  389. HATABS    =$31A            ;HANDLER ADDRESS TABLE 
  390. MAXDEV    =$21            ;MAXIMUM HANDLER ADDRESS INDEX
  391.  
  392. ;    IOCB OFFSETS 
  393.  
  394. IOCB    =$340            ;I/O CONTROL BLOCKS
  395. ICHID    =$340            ;HANDLER INDEX ($FF = FREE)
  396. ICDNO    =$341            ;DEVICE NUMBER (DRIVE NUMBER)
  397. ICCOM    =$342            ;COMMAND CODE
  398. ICSTA    =$343            ;STATUS
  399. ICBAL    =$344            ;BUFFER ADDRESS
  400. ICBAH    =$345            ; ...
  401. ICPTL    =$346            ;PUT BYTE ROUTINE ADDRESS - 1
  402. ICPTH    =$347            ; ...
  403. ICBLL    =$348            ;BUFFER LENGTH
  404. ICBLH    =$349            ; ...
  405. ICAX1    =$34A            ;AUXILLARY INFO
  406. ICAX2    =$34B            ; ...
  407. ICSPR    =$34C            ;4 SPARE BYTES
  408.  
  409. PRNBUF    =$3C0            ;PRINTER BUFFER
  410.                 ;($3EA - $3FC SPARE)
  411.  
  412. ;    PAGE 4 LOCATIONS
  413.  
  414. CASBUF    =$3FD            ;CASSETTE BUFFER
  415.  
  416. ; USER AREA STARTS HERE AND GOES TO THE END OF PAGE 5
  417.  
  418. USAREA    =$480
  419.  
  420. ;ATASCII CHARACTER DEFS
  421.  
  422. ATCLR    =$7D            ;CLEAR SCREEN CHARACTER
  423. ATRUB    =$7E            ;BACK SPACE (RUBOUT)
  424. ATTAB    =$7F            ;TAB
  425. ATEOL    =$9B            ;END-OF-LINE
  426. ATBEL    =$FD            ;CONSOLE BELL
  427. ATURW    =$1C            ;UP-ARROW
  428. ATDRW    =$1D            ;DOWN-ARROW
  429. ATLRW    =$1E            ;LEFT-ARROW
  430. ATRRW    =$1F            ;RIGHT-ARROW
  431.  
  432. ; USEFUL VALUES
  433.  
  434. LEDGE    =2            ;LMARGN'S INITIAL VALUE
  435. REDGE    =39            ;RMARGN'S INITIAL VALUE
  436.  
  437. ZPC    =0        ;PC CODE FOR ZERO PAGE PC
  438. P6PC    =1        ;PC CODE FOR PAGE 6
  439. PPC    =2        ;PC CODE FOR PROGRAM MEMORY
  440. ;
  441. ; Stuff for audio
  442. ;
  443. AUDF1    =$D200        ; Voice 1 Freq
  444. AUDC1    =$D201        ; Voice 1 control
  445.  
  446. ;INIT PC VALUES
  447.  
  448. CURPC    =0
  449. PC0    =0        ;PAGE ZERO
  450. PC1    =$600        ;PAGE 6 PC
  451. PC2    =$3800        ;PROGRAM PC
  452. ;
  453. ; End of SYSMAC.SML
  454. ;----------------------------------------------------------------
  455. ; Rs232 driver autoloader, stolen from Vterm
  456. ;
  457.     *=$37F2         
  458. rsinit:
  459.     LDA    #$00    ;    $37F2
  460.     STA    WARMST    ;     $37F4
  461.     LDA    DOSINI    ;     $37F6
  462.     STA    oinita    ;   $37F8
  463.     LDA    DOSINI+1    ;     $37FB
  464.     STA    oinita+1    ;   $37FD
  465.     LDA    #$50    ;    $3800
  466.     STA    DDEVIC    ;   $3802
  467.     LDA    #$01    ;    $3805
  468.     STA    DUNIT    ;   $3807
  469.     LDA    #$3F    ;    $380A
  470.     STA    DCOMND    ;   $380C
  471.     LDA    #$40    ;    $380F
  472.     STA    DSTATS    ;   $3811
  473.     LDA    #$05    ;    $3814
  474.     STA    DTIMLO    ;   $3816
  475.     STA    DBUFHI    ;   $3819
  476.     LDA    #$00    ;    $381C
  477.     STA    DBUFLO    ;   $381E
  478.     STA    DBYTHI    ;   $3821
  479.     STA    DAUX1    ;   $3824
  480.     STA    DAUX2    ;   $3827
  481.     LDA    #$0C    ;    $382A
  482.     STA    DBYTLO    ;   $382C
  483.     JSR    SIOV    ;   $382F
  484.     BPL    init1    ;   $3832
  485.     JMP    fail1    ;   $3834
  486. init1:
  487.     LDX    #$0B    ;    $3837
  488. init2:
  489.     LDA    $0500,X    ; $3839
  490.     STA    DCB,X    ; $383C
  491.     DEX            ;    $383F
  492.     BPL    init2    ;   $3840
  493.     JSR    SIOV    ;   $3842
  494.     BMI    fail1    ;   $3845
  495.     JSR    $0506    ;   $3847
  496.     JMP    init3    ;   $384A
  497. fail1:
  498.     JMP    fail2    ;   $384D
  499. ;    LSR    $54,X    ;   $3850
  500. ;    EOR    $52    ;     $3852
  501. ;    EOR    $203A    ;   $3854
  502. ;    SEC            ;    $3857
  503. ;    AND    $30,X    ;   $3858
  504. ;    JSR    $6F6E    ;   $385A
  505. ;    .BYTE    $74    ;         $385D
  506. ;    JSR    $6572    ;   $385E
  507. ;    .BYTE    $73    ;         $3861
  508. ;    BVS    $38D3    ;   $3862
  509. ;    ROR    $6964    ;   $3864
  510. ;    ROR    $9B67    ;   $3867
  511. failmsg:
  512.     .byte    "K65:   850 not responding",ATEOL
  513. fail2:
  514.     LDX    #$00    ;    $386A
  515.     LDA    #$09    ;    $386C
  516.     STA    ICCOM,X    ; $386E
  517.     LDA    #failmsg\    ;    $3871
  518.     STA    ICBAL,X    ; $3873
  519.     LDA    #failmsg^    ;    $3876
  520.     STA    ICBAH,X    ; $3878
  521.     LDA    #fail2-failmsg    ;    $387B
  522.     STA    ICBLL,X    ; $387D
  523.     LDA    #$00    ;    $3880
  524.     STA    ICBLH,X    ; $3882
  525.     JSR    CIOV    ;   $3885
  526.     RTS            ; $3888
  527. init3:
  528.     LDA    DOSINI    ;     $3889
  529.     STA    minita    ;   $388B
  530.     LDA    DOSINI+1    ;     $388E
  531.     STA    minita+1    ;   $3890
  532.     LDY    #$43    ;    $3893
  533.     LDX    #$00    ;    $3895
  534. init4:
  535.     LDA    inipatch,X    ; $3897
  536.     STA    (DOSINI),Y    ; $389A
  537.     INY            ; $389C
  538.     INX            ; $389D
  539.     CPX    #$08    ;    $389E
  540.     BNE    init4    ;   $38A0
  541.     LDA    #$44    ;    $38A2
  542.     CLC            ;    $38A4
  543.     ADC    DOSINI    ;     $38A5
  544.     STA    DOSINI    ;     $38A7
  545.     LDA    DOSINI+1    ;     $38A9
  546.     ADC    #$00    ;    $38AB
  547.     STA    DOSINI+1    ;     $38AD
  548.     JMP    myinit    ;   $38AF
  549. ;
  550. ; This thing gets patched into the DOS init vector
  551. ;
  552. inipatch:
  553.     RTS            ;    $38B2
  554.     JSR    0000    ; do original init stuff  $38B3
  555. oinita    = .-2        ; addr to store old init vector
  556. myinit:    JMP    0000    ; do new init stuff  $38B6
  557. minita    = .-2        ; addr to store new init vector
  558.     .BYTE    $00    ;         $38B9
  559.      *=$02E2    ; load-time init vector
  560.     .word    rsinit    ;     $02E2
  561.