home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / maps / C128ram.doc < prev    next >
Text File  |  1995-04-26  |  50KB  |  1,752 lines

  1.  
  2. ;cOMMODORE 128 ram mEMORY mAP
  3. ;v1.3B18 nOV 1994
  4.  
  5.  
  6.   c128 mEMORY mAP
  7.  
  8.   tHIS IS AS COMPLETE AS POSSIBLE COMPILATION OF TWO SEPARATE MEMORY MAPS,
  9.   AND A FEW RANDOM SOURCES WHICH NATURALLY DO DIFFER FROM EACH OTHER.
  10.  
  11.  
  12.   c128 ram
  13.  
  14. aLL bANKS
  15.  
  16. 0000i/o DIRECTION REGISTER
  17. 0001i/o PORT, SIMILAR TO c64
  18. 0002tOKEN 'search' LOOKS FOR, bANK nUMBER, jUMP TO sys aDDRESS
  19. 0003-0004sys ADDRESS, mlm REGISTER pc
  20. 0005-0009sys AND mlm REGISTER SAVE (sr, a, x, y, sp)
  21. 0005sr tEMP
  22. 0006ac tEMP
  23. 0007xr tEMP
  24. 0008yr tEMP
  25. 0009sp tEMP, iNTEGER
  26. 000AsCAN-QUOTES FLAG
  27. 000Btab COLUMN SAVE
  28. 000CfLAG: 0 = load, 1 = verify
  29. 000DiNPUT BUFFER POINTER / NUMBER OF SUBSCRIPTS
  30. 000EdEFAULT dim FLAG
  31. 000FdATA tYPE: ff = STRING, 00 = NUMERIC
  32. 0010dATA tYPE: 80 = INTEGER, 00 = FLOATING POINT
  33. 0011data SCAN / list QUOTE / MEMORY FLAG
  34. 0012sUBSCRIPT / fnXX FLAG
  35. 0013fLAG: 0 = input, $40 = get, $98 = read
  36. 0014atn SIGN / cOMPARISON EVALUATION FLAG
  37. 0015cURRENT i/o PROMPT FLAG
  38. 0016-0017iNTEGER VALUE
  39. 0018pOINTER: TEMPORARY STRING STACK
  40. 0019-0023sTACK FOR TEMPORARY STRINGS
  41. 0024-0027uTILITY POINTER AREA
  42. 0028-002CpRODUCT AREA FOR MULTIPLICATION
  43. 002D-002EpOINTER: sTART-OF-basic (BANK 0) [1c01]
  44. 002F-0030pOINTER: sTART-OF-VARIABLES (BANK 1) [0400]
  45. 0031-0032pOINTER: sTART-OF-ARRAYS
  46. 0033-0034pOINTER: eND-OF-ARRAYS
  47. 0035-0036pOINTER STRING-STORAGE (MOVING DOWN)
  48. 0037-0038uTILITY STRING POINTER
  49. 0039-003ApOINTER: lIMIT-OF-MEMORY (BANK 1) [ff00]
  50. 003B-003CcURRENT basic LINE NUMBER
  51. 003D-003EtEXTPOINTER: basic WORK POINT (CHRGET)
  52. 003F-0040uTILITY pOINTER
  53. 0041-0042cURRENT data LINE NUMBER
  54. 0043-0044cURRENT data ADDRESS
  55. 0045-0046iNPUT VECTOR
  56. 0047-0048cURRENT VARIABLE NAME
  57. 0049-004AcURRENT VARIABLE ADDRESS
  58. 004B-004CvARIABLE POINTER FOR for/next
  59. 004D-004Ey-SAVE, OP-SAVE, basic POINTER SAVE
  60. 004FcOMPARISON SYMBOL ACCUMULATOR
  61. 0050-0055mISCELLANEOUS WORK AREA, POINTERS, AND SO ON
  62.  
  63. 0056-0058jUMP VECTOR FOR FUNCTIONS
  64. 0059-0062mISCELLANEOUS NUMERIC WORK AREA
  65. 0060-0062mlm aDDRESS 0
  66. 0063-0065mlm aDDRESS 1
  67. 0066-0068mlm aDDRESS 2
  68. 0063aCCUM #1 EXPONENT
  69. 0064-0067aCCUM #1 MANTISSA
  70. 0068aCCUM #1 SIGN
  71. 0069sERIES EVALUATION CONSTANT POINTER
  72. 006A-006FaCCUM #2 EXPONENT, AND SO ON
  73. 0070sIGN COMPARISON aCC #1 VERSUS #2
  74. 0071aCCUM #1 LO-ORDER (ROUNDING)
  75. 0072-0073cASSETTE BUFFER LEN / sERIES POINTER
  76. 0074-0075aUTO LINE NUMBER INCREMENT
  77. 0076gRAPHICS FLAG: ff = gRAPHICS ALLOCATED, 00 = nOT ALLOCATED
  78. 0077cOLOR SOURCE NUMBER
  79. 0078-0079tEMPORARY COUNTERS
  80. 007A-007Cds$ DESCRIPTOR
  81. 007D-007Ebasic PSEUDO-STACK POINTER
  82. 007FfLAG: 0 = DIRECT MODE
  83. 0080-0081dos, using WORK FLAGS
  84. 0082sTACK POINTER SAVE FOR ERRORS
  85. 0083gRAPHIC COLOR SOURCE
  86. 0084mULTICOLOR 1 (1)
  87. 0085mULTICOLOR 2 (2)
  88. 0086gRAPHIC FOREGROUND COLOR (13)
  89. 0087-008AgRAPHIC SCALE FACTORS, x & y
  90. 008B-008FgRAPHIC WORK VALUES
  91. 0090sTATUS WORD st
  92. 0091kEYSWITCH 1a: stop AND rvs FLAGS
  93.  7stop
  94.  6q
  95.  5c=
  96.  4sPACE
  97.  32
  98.  2ctrl
  99.  1<-
  100.  01
  101.  
  102. 0092tIMING CONSTANT FOR TAPE ($80)
  103. 0093wORK VALUE, MONITOR, load / save: 0 = load, 1 = verify
  104. 0094sERIAL OUTPUT, DEFERRED CHARACTER FLAG
  105. 0095sERIAL DEFERRED CHARACTER
  106. 0096cASSETTE WORK VALUE
  107. 0097rEGISTER SAVE
  108. 0098hOW MANY OPEN FILES
  109. 0099iNPUT DEVICE, NORMALLY 0
  110. 009AoUTPUT cmd DEVICE, NORMALLY 3
  111. 009B-009CtAPE PARITY, OUTPUT-RECEIVED FLAG
  112. 009Di/o MESSAGES: 192 = ALL, 128 = COMMANDS, 64 = ERRORS, 0 = NIL
  113. 009E-009FtAPE ERROR POINTERS
  114. 00A0-00A2jIFFY CLOCK hml
  115. 00A3-00A4tEMP DATA AREA
  116. 00A5-00A6i/o WORK BYTES (TAPE)
  117. 00A7-00ABrs-232c rECEIVE, mISC wORK vALUES
  118. 00A7rs-232 iNPUT bIT sTORAGE, cASSETTE sHORT cOUNT
  119. 00A8rs-232 bIT cOUNT iN, cASSETTE rEAD eRROR
  120. 00A9rs-232 fLAG fOR sTART bIT cHECK, cASSETTE rEADING zEROES
  121. 00AArs-232 bYTE bUFFER, cASSETTE rEAD mODE
  122. 00ABrs-232 pARITY sTORAGE, cASSETTE sHORT cNT
  123.  
  124. 00AC-00ADpOINTER FOR TAPE BUFFER AND SCREEN SCROLLING
  125. 00AE-00AFtAPE END ADDRESS / eND OF PROGRAM
  126. 00B0-00B1tAPE TIMING CONSTANTS
  127. 00B2-00B3pOINTER: sTART OF TAPE BUFFER
  128. 00B4-00B6rs-232 sEND, mISC WORK VALUES
  129. 00B4rs-232 bIT cOUNT
  130. 00B5rs-232 nEXT bIT tO bE sENT
  131. 00B6rs-232 bYTE bUFFER
  132. 00B7nUMBER OF CHARACTERS IN FILE NAME
  133. 00B8cURRENT LOGICAL FILE
  134. 00B9cURRENT SECONDARY ADDRESS
  135. 00BAcURRENT DEVICE
  136. 00BB-00BCpOINTER TO FILE NAME
  137. 00BDrs-232 trns pARITY bUFFER
  138. 00BEcASSETTE rEAD bLOCK cOUNT
  139. 00BFsERIAL wORD bUFFER
  140. 00C0cASSETTE mANUAL/cNTROLLED sWITCH (uPDATED DURING irq)
  141. 00C1-00C2i/o sTART aDDRESS
  142. 00C3-00C4cASSETTE load tEMPS (2 BYTES)
  143. 00C5tAPE rEAD/wRITE dATA
  144.  
  145. 00C6-00C7banks: i/o DATA, FILENAME
  146. 00C8-00C9rs-232 INPUT BUFFER ADDRESSES  [0C00]
  147. 00CA-00CBrs-232 OUTPUT BUFFER ADDRESSES [0D00]
  148. 00CC-00CDkEYBOARD DECODE POINTER (BANK 15) [FA80]
  149. 00CE-00CFpRINT STRING WORK POINTER
  150. 00D0nUMBER OF CHARACTERS IN KEYBOARD BUFFER
  151. 00D1nUMBER OF PROGRAMMED CHARS WAITING
  152. 00D2pROGRAMMED KEY CHARACTER INDEX
  153. 00D3kEY SHIFT FLAG:
  154.  0nO SHIFT
  155.  1sHIFT
  156.  2c=
  157.  4cONTROL
  158.  8aLT
  159. 15cAPS lOCK
  160.  
  161. 00D4cURRENT KEY CODE: 88 = NO KEY
  162. 00D5pREVIOUS KEY CODE: 88 = NO KEY
  163. 00D6iNPUT FROM SCREEN / FROM KEYBOARD
  164. 00D740 / 80 COLUMNS: 0 = 40 COLUMN SCREEN
  165. 00D8gRAPHICS MODE CODE
  166.  0000gRAPHIC 0
  167.  00111
  168.  01122
  169.  10133
  170.  11144
  171.  
  172. 00D9cHARACTER BASE: 0 = rom, 4 = ram
  173. 00DA-00DFmISC eDITOR WORK AREA
  174.  
  175. 00E0-00E1pOINTER TO SCREEN LINE / CURSOR
  176. 00E2-00E3cOLOR LINE POINTER
  177. 00E4cURRENT SCREEN BOTTOM MARGIN
  178. 00E5cURRENT SCREEN TOP MARGIN
  179. 00E6cURRENT SCREEN LEFT MARGIN
  180. 00E7cURRENT SCREEN RIGHT MARGIN
  181. 00E8-00E9iNPUT CURSOR LOG (ROW, COLUMN)
  182. 00EAeND-OF-LINE FOR INPUT POINTER
  183. 00EBrOW WHERE CURSOR LIVES
  184. 00ECpOSITION OF CURSOR ON SCREEN LINE
  185. 00EDmAXIMUM SCREEN LINES (24)
  186. 00EEmAXIMUM SCREEN COLUMNS (39)
  187. 00EFcURRENT i/o CHARACTER
  188. 00F0pREVIOUS CHARACTER PRINTED
  189. 00F1cHARACTER COLOR
  190. 00F2tEMPORARY COLOR SAVE
  191. 00F3sCREEN REVERSE FLAG
  192. 00F4qUOTES FLAG (eDITOR)
  193. ;0 = DIRECT CURSOR, ELSE PROGRAMMED
  194. 00F5nUMBER OF insertS OUTSTANDING
  195. 00F6255 = aUTO iNSERT ENABLED
  196. 00F7tEXT MODE LOCKOUT (shft-c=): 0 = ENABLED, 128 = DISABLED
  197. 00F8sCROLLING: 0 = ENABLED, 128 = DISABLED
  198. 00F9bELL (ctrl-g):  0= ENABLE, 128 = DISABLE
  199. 00FA-00FEnOT USED
  200. 00FFbASIC sCRATCH
  201.  
  202. 0100-01FFpROCESSOR sTACK aREA
  203. 0100-013EtAPE ERROR LOG
  204. 0100-0124dos WORK AREA
  205.  
  206. 0100tAPE rEAD eRRORS, aREA TO BUILD FILENAME IN (16 BYTES)
  207. 0110dos lOOP cOUNTER
  208. 0111dos fILENAME 1 lEN
  209. 0112dos dISK dRIVE 1
  210. 0113dos fILENAME 2 lEN
  211. 0114dos dISK dRIVE 2
  212. 0115dos fILENAME 2 aDDR
  213. 0117bload/bsave sTARTING aDDRESS
  214. 0119bload/bsave eNDING aDDRESS
  215. 011bdos lOGICAL aDDR [00]
  216. 011cdos pHYS aDDR [08]
  217. 011ddos sEC. aDDR [6f]
  218. 011edos rECORD lENGTH
  219.  
  220. 0120dos dISK id
  221. 0122dos dsk id flg space uSED BY print using
  222. 0123pOINTER TO bEGIN. no.
  223. 0124pOINTER TO eND no.
  224.  
  225. 0125-0138print / using WORK AREA
  226.  
  227. 0125dOLLAR fLAG
  228. 0126cOMMA fLAG, play: voxtum FLAG
  229. 0127cOUNTER
  230. 0128sIGN eXPONENT
  231. 0129pOINTER TO eXPONENT
  232. 012a# oF dIGITS bEFORE dECIMAL pOINT
  233. 012bjUSTIFY fLAG
  234. 012c# oF pOS bEFORE dECIMAL pOINT (fIELD)
  235. 012d# oF pOS aFTER dECIMAL pOINT (fIELD)
  236. 012e+/- fLAG (fIELD)
  237. 012feXPONENT fLAG (fIELD)
  238. 0130sWITCH
  239. 0131cHAR cOUNTER (fIELD)
  240. 0132sIGN nO
  241. 0133bLANK/sTAR fLAG
  242. 0134pOINTER TO bEGIN OF fIELD
  243. 0135lENGTH OF fORMAT
  244. 0136pOINTER TO eND oF fIELD
  245. 0137sYSTEM sTACK ($0137-$01ff)
  246.  
  247.  
  248. 0200-03FFvECTORS, BUFFERS, kERNAL ram
  249.  
  250. 0200-02A1basic & mONITOR INPUT BUFFER
  251.  
  252.  
  253. 02A2-02AE674-686kERNAL ram
  254.  
  255. 02A2-02AEbANK pEEK sUBROUTINE
  256. 02AF-02BDbANK pOKE sUBROUTINE
  257. 02BE-02CCbANK cOMPARE sUBROUTINE
  258. 02CD-02E2jsr TO aNOTHER bANK
  259. 02E3-02FBjmp TO aNOTHER bANK
  260. 02FC-02FDfUNCTION eXECUTE hOOK[4C78]
  261.  
  262. 0300-0301eRROR mESSAGE lINK[4d3f]
  263. 0302-0303basic wARM sTART lINK[4dc6]
  264. 0304-0305cRUNCH basic tOKENS lINK [430d]
  265. 0306-0307pRINT tOKENS lINK[5151]
  266. 0308-0309sTART nEW basic cODE lINK [4aa2]
  267. 030A-030BgET aRITHMETIC eLEMENT lINK [78da]
  268. 030C-030DcRUNCH fe hOOK[4321]
  269. 030E-030FlIST fe hOOK[51cd]
  270. 0310-0311eXECUTE fe hOOK [4ba9]
  271. 0312-0313uNUSED
  272.  
  273. 0314-0315irq vECTOR[fa65]
  274. 0316-0317bREAK iNTERRUPT vECTOR[b003]
  275. 0318-0319nmi iNTERRUPT vECTOR[fa40]
  276. 031A-031Bopen vECTOR[efbd]
  277. 031C-031Dclose vECTOR[f188]
  278. 031E-031FsET iNPUT vECTOR[f106]
  279. 0320-0321sET oUTPUT vECTOR[f14c]
  280. 0322-0323rESTORE i/o vECTOR[f226]
  281. 0324-0325iNPUT vECTOR[ef06]
  282. 0326-0327oUTPUT vECTOR[ef79]
  283. 0328-0329tEST stop kEY[f66e]
  284. 032A-03ABget vECTOR[eeeb]
  285. 032C-032DaBORT i/o vECTOR[f222]
  286.  
  287. 032E-032FmACHINE lANG mONITOR lINK [b006]
  288. 0330-0331load lINK[f26c]
  289. 0332-0333save lINK[f54e]
  290.  
  291. ;i/o vECTORS
  292.  
  293. 0334-0335pRINT cONTROL cODE lINK [c7b9]
  294. 0336-0337pRINT hIGH ascii cODE lINK [c805]
  295. 0338-0339pRINT esc sEQUENCE lINK [c9c1]
  296. 033A-033BkEYSCAN lINK[c5e1]
  297. 033C-033DsTORE kEY[c6ad]
  298.  
  299. 033E-033FpOINTER TO kbd dECODING tABLE: uNSHIFTED [fa80 / fd29]
  300. 0340-0341pOINTER TO kbd dECODING tABLE: sHIFTED   [fad9 / fd82]
  301. 0342-0343pOINTER TO kbd dECODING tABLE: cOMMODORE [fb32 / fddb]
  302. 0344-0345pOINTER TO kbd dECODING tABLE: cONTROL   [fb8b / fe34]  1)
  303. 0346-0347pOINTER TO kbd dECODING tABLE: aLT       [fa80 / fd29]
  304. 0348-0349pOINTER TO kbd dECODING tABLE: aSCII/din [fb4e / fd29]
  305.  
  306.     1) tHE VALUE fe34 IS USED IN gERMAN VERSION, IT DOESN'T CHANGE IN OTHERS.
  307.  
  308. 034A-0353irq kEYBOARD bUFFER (10 bYTES)  ff = nO KEY
  309. 0354-035DbITMAP oF tab sTOPS (10 bYTES)
  310. 035E-0361bITMAP oF lINE wRAPS
  311. 0362-036BlOGICAL fILE nUMBER tABLE
  312. 036C-0375dEVICE nUMBER tABLE
  313. 0376-037FsECONDARY aDDRESSE tABLE
  314. 0380-039Echrget sUBROUTINE
  315. 0386chrgot eNTRY
  316.  
  317. 039F-03AAfETCH fROM ram bANK 0
  318. 03AB-03B6fETCH fROM ram bANK 1
  319. 03B7-03BFiNDEX1 iNDIRECT fETCH fROM ram bANK 1
  320. 03C0-03C8iNDEX2 iNDIRECT fETCH fROM ram bANK 0
  321. 03C9-03D1tXTPTR fETCH fROM ram bANK 0
  322. 03D2-03D4nUMERIC cONSTANT fOR basic
  323. 03D5cURRENT bANK fOR sys, poke, peek
  324. 03D6-03D9instr wORK vALUES
  325. 03DAbANK pOINTER fOR sTRING/nUMBER convert rtn
  326. 03DB-03DDsPRITE: wORK BYTES FOR sshape
  327. 03DFfac#1 oVERFLOW
  328. 03E0-03E1sPRITE: wORK BYTES FOR sprsav
  329. 03E2gRAPHIC fOREGROUND/ bACKGROUND cOLOR nYBBLES
  330. 03E3gRAPHIC fOREGROUND/ mULTICOLOR 1 cOLOR nYBBLES
  331. 03F0-03F6dma lINK cODE
  332.  
  333. FF00mmu cONFIGURATION rEGISTER
  334. FF01mmu lcr: bANK 0
  335. FF02mmu lcr: bANK 1
  336. FF03mmu lcr: bANK 14
  337. FF04mmu lcr: bANK 14 oVER ram 1
  338.  
  339. pAGE fOUR & hIGHER dECLARATIONS (bEGINNING oF bANKABLE ram)
  340.  
  341.  
  342. bANK 0
  343.  
  344. 0400-07E7vic 40-cOLUMN tEXT sCREEN
  345. 07E8-07FFsPRITE iDENTITY pOINTERS fOR tEXT mODE
  346. 0800-09FFbasic pSEUDO sTACK (GOSUB AND LOOP ADDRESSES AND COMMANDS)
  347.  
  348. 0A00-0A01vECTOR TO rESTART sYSTEM (basic wARM) [4003]
  349. 0A02kernal wARM/cOLD iNIT'N sTATUS bYTE
  350. 0A03pal/ntsc sYSTEM fLAG
  351. 0A04fLAGS reset VS. nmi sTATUS FOR INIT'N RTNS
  352. 0A05-0A06pTR TO bOTTOM OF aVAIL. mEMORY IN sYSTEM bANK
  353. 0A07-0A08pTR TO tOP OF aVAILABLE mEMORY IN sYSTEM bANK
  354. 0A09tAPE hANDLER PRESERVES irq iNDIRECT HERE
  355. 0A0Btod sENSE DURING TAPE OPERATIONS
  356. 0A0Ccia 1 iNTERRUPT lOG
  357. 0A0Dcia 1 tIMER eNABLED
  358.  
  359. 0A0F-0A17rs-232 wORK vALUES
  360.  
  361. 0A0Frs-232 eNABLES
  362. 0A10rs-232 cONTROL rEGISTER
  363. 0A11rs-232 cOMMAND rEGISTER
  364. 0A12rs-232 uSER bAUD rATE
  365. 0A14rs-232 sTATUS rEGISTER
  366. 0A15rs-232 nUMBER OF bITS tO sEND
  367. 0A16rs-232 bAUD rATE fULL bIT tIME (cREATED BY open)
  368.  
  369. 0A18rs-232 rECEIVE pOINTER
  370. 0A19rs-232 iNPUT pOINTER
  371. 0A1Ars-232 tRANSMIT pOINTER
  372. 0A1Brs-232 sEND pOINTER
  373. 0A1D-0A1FsLEEP cOUNTDOWN, ffff = DISABLE
  374. 0A20kEYBOARD bUFFER sIZE (10)
  375. 0A21sCREEN fREEZE fLAG
  376. 0A22kEY rEPEAT: 128 = ALL, 64 = NONE
  377. 0A23kEY rEPEAT tIMING
  378. 0A24kEY rEPEAT pAUSE
  379. 0A25gRAPHICS / tEXT tOGGLE lATCH
  380. 0A2640-cOL cURSOR mODE
  381. 0A27-0A2A40-cOL bLINK vALUES
  382. 0A2B80-cOL cURSOR mODE
  383. 0A2C40-cOL vIDEO $d018 iMAGE
  384. 0A2Dvic bIT-mAP bASE pOINTER
  385. 0A2E-0A2F80-cOL pAGES-sCREEN, cOLOR
  386. 0A40-0A5A40/80 pOINTER sWAP (TO e0-fa)
  387.  
  388. 0A60-0A6D40/80 dATA sWAP (0354-0361)
  389.  
  390. 0A80    cOMPARE bUFFER (32 BYTES)
  391. 0AA0-0AA1mlm
  392. 0AABasm/dis
  393. 0AACfOR aSSEMBLER
  394. 0AAFbYTE tEMP USED ALL OVER
  395. 0AB0bYTE tEMP USED ALL OVER
  396. 0AB1bYTE tEMP FOR aSSEMBLER
  397. 0AB2sAVE .x HERE DURING iNDIRECT sUBROUTINE cALLS
  398. 0AB3dIRECTION iNDICATOR fOR 'transfer'
  399. 0AB4pARSE nUMBER cONVERSION
  400. 0AB5pARSE nUMBER cONVERSION
  401. 0AB7pARSE nUMBER cONVERSION
  402.  
  403. 0AC0pat cOUNTER
  404. 0AC1-0AC4rom pHYSICAL aDDRESS tABLE
  405.  
  406. 0AC5fLAG: kbd
  407.  
  408. 0B00-0BBFcASSETTE bUFFER
  409. 0BC0-0BFF?
  410. 0C00-0DFFrs-232 iNPUT, oUTPUT bUFFERS
  411. 0E00-0FFFsYSTEM sPRITES (56-63)
  412. 1000-1009pROGRAMMED kEY lENGHTS
  413. 100A-10FFpROGRAMMED kEY dEFINITIONS
  414. 1100-1130dos cOMMAND sTAGING aREA
  415.  
  416. 1131-116EgRAPHICS wORK aREA
  417.  
  418. 1131cURRENT x pOSITION
  419. 1133cURRENT y pOSITION
  420. 1135x-cOORDINATE dESTINATION
  421. 1137y-cOORDINATE dESTINATION
  422. 1139lINE dRAWING vARIABLES
  423. 1149sIGN oF aNGLE
  424. 114AsINE oF vALUE oF aNGLE
  425. 114CcOSINE OF vALUE OF aNGLE
  426. 114EtEMPS fOR aNGLE dISTANCE rOUTINES
  427. 1150circle cENTER, x cOORDINATE, box point 1 x-cOORD.
  428. 1152circle cENTER, y cOORDINATE, box point 1 y-cOORD.
  429. 1154x rADIUS, box rOTATION aNGLE
  430. 1156y rADIUS
  431. 1158circle rOTATION aNGLE
  432. 115Abox: lENGTH OF A SIDE
  433. 115CaRC aNGLE sTART
  434. 115EaRC aNGLE eND, cHAR'S cOL. cOUNTER
  435. 1160x rADIUS * cos(rOTATION aNGLE)
  436. 1162y rADIUS * sin(rOTATION aNGLE)
  437. 1164x rADIUS * sin(rOTATION aNGLE)
  438. 1166y rADIUS * cos(rOTATION aNGLE)
  439. 1168high byte: addr of charrom fOR 'char' cmd.
  440. 1169tEMP fOR gshape
  441. 116Ascale mODE fLAG
  442. 116BdOUBLE wIDTH fLAG
  443. 116CbOX fILL fLAG
  444. 116DtEMP fOR bIT mASK
  445.  
  446. 116FtRACE mODE: ff = ON
  447. 1170-1173rENUMBERING pOINTERS
  448. 1174-1177dIRECTORY wORK pOINTERS
  449. 1178-1197gRAPHICS iNDEX
  450. 117A-117BfLOAT-FIXED vECTOR [849f]
  451. 117C-117DfIXED-FLOAT vECTOR [793c]
  452. 117E-11D5sPRITE mOTION tABLES (8 X 11 BYTES)
  453. 11D6-11E5sPRITE x/y pOSITIONS
  454. 11E6sPRITE x-hIGH pOSITIONS
  455. 11E7-11E8sPRITE bUMB mASKS (SPRITE - BACKGND)
  456. 11E9-11EAlIGHT pEN vALUES, x AND y
  457. 11EBchrgen rom pAGE, tEXT mODE [d8]
  458. 11ECchrgen rom pAGE, gRAPHICS mODE [d0]
  459. 11EDsECONDARY aDDRESS fOR record
  460. 11EE-11FFuNUSED
  461.  
  462. 1200-1201pREVIOUS basic lINE
  463. 1202-1203pOINTER: basic sTATEMENT FOR continue
  464.  
  465. 1204print using fILL sYMBOL
  466. 1205print using cOMMA sYMBOL
  467. 1206print using d.p. sYMBOL
  468. 1207pRINT uSING mONETARY sYMBOL
  469.  
  470. 1208uSED BY eRROR tRAPPING rOUTINE - lAST eRR nO
  471. 1209-120AlINE # OF lAST eRROR. ffff IF nO eRROR
  472. 120B-120Ctrap aDDRESS, ffff = NONE
  473. 120DhOLD tRAP # OF tEMPOR.
  474.  
  475. 1210-1211eND OF bASIC, bANK 0
  476. 1212-1213bASIC pROGRAM lIMIT [ff00]
  477. 1214-1217do wORK pOINTERS
  478. 1218-121Ausr pROGRAM jUMP [7d28]
  479. 121B-121Frnd sEED vALUE
  480.  
  481. 1220dEGREES pER circle sEGMENT
  482. 1221'cOLD' OR 'wARM' rESET sTATUS
  483.  
  484. 1222sOUND tEMPO
  485. 1223-1224rEMAINING nOTE lENGTH lo/hi, vOICE 1
  486. 1225-1226rEMAINING nOTE lENGTH lo/hi, vOICE 2
  487. 1227-1228rEMAINING nOTE lENGTH lo/hi, vOICE 3
  488. 1229-122AnOTE lENGTH lo/hi
  489.  
  490. 122BoCTAVE
  491. 122CfLAG: 01 = sHARP, ff = fLAT
  492. 122D-122EpITCH
  493. 122FmUSIC sEQUENCER (vOICE nUMBER)
  494. 1230wAVE
  495. 1233fLAG: pLAY dOTTED nOTE
  496. 1234-1237nOTE iMAGE
  497.  
  498. 1239-123EcURRENT eNVELOPE pATTERN
  499. 123F-1270eNVELOPE tABLES
  500. 123F-1248ad(sr) pATTERN
  501. 1249-1252(ad)sr pATTERN
  502. 1253-125CwAVEFORM pATTERN
  503. 125D-1266pULSE wIDTH lO pATTERN
  504. 1267-1270pULSE wIDTH hI pATTERN
  505. 1271-1274nOTE: XX, XX, VOLUME
  506. 1275pREVIOUS vOLUME iMAGE
  507.  
  508. 1276-1278cOLLISION irq tASK tABLE
  509. 1279-127EcOLLISION irq aDDRESS tABLES
  510. 127FcOLLISION mASK
  511. 1280cOLLISION wORK vALUE
  512.  
  513. 1281sound vOICE
  514. 1282sound tIME lo
  515. 1285-1287sound tIME hi
  516. 1288-128Asound mAX lo
  517. 128Bsound mAX hi
  518. 128Esound mIN lo
  519. 1291sound mIN hi
  520.  
  521. 1294sound dIRECTION
  522. 1297sound sTEP lo
  523. 129Asound sTEP hi
  524. 129Dsound fREQ lo
  525. 12A0sound fREQ hi
  526. 12A3tEMP tIME lo
  527. 12A4tEMP tIME hi
  528. 12A5tEMP mAX lo
  529. 12A6tEMP mAX hi
  530.  
  531. 12A7tEMP mIN lo
  532. 12A8tEMP mIN hi
  533. 12A9tEMP dIRECTION
  534. 12AAtEMP sTEP lo
  535. 12ABtEMP sTEP hi
  536.  
  537. 12ACtEMP fREQ lo
  538.  
  539. 12ADtEMP fREQ hi
  540. 12AEtEMP pULSE lo
  541. 12AFtEMP pULSE hi
  542. 12B0tEMP wAVEFORM
  543.  
  544.  
  545. 12B1-12B2pen/pot wORK vALUES
  546. 12B7uSED by sprdef & savspr
  547. 12FAuSED by sprdef & savspr
  548. 12FBuSED by sprdef & savspr
  549. 12FCsPRITE nUMBER. uSED by sprdef & savspr
  550. 12FDuSED BY basic irq TO BLOCK ALL BUT ONE irq CALL
  551.  
  552. 12FF?
  553. 1300-17FFuNUSED
  554. 1800-1BFFrESERVED FOR kEY fUNCTIONS
  555. 1C00-FBFFbasic ram mEMORY (tEXT)
  556. 1C00-1FF7vIDEO cOLOR mATRIX fOR gRAPHICS mODE
  557. 1FF8-1FFFsPRITE iDENTITY pOINTERS fOR gRAPHICS mODE
  558. 2000-3FFFsCREEN mEMORY fOR gRAPHICS mODE
  559. 4000-FBFFbasic ram mEMORY (WITH GRAPHICS ENABLED)
  560.  
  561.  
  562. bANK 1
  563.  
  564. 0400-FBFFbasic vARIABLES, aRRAYS, aND sTRINGS
  565.  
  566.  
  567. bANK 14
  568. tHE SAME AS bANK 15, EXCEPT:
  569.  
  570. D000-DFFFcHARACTER gENERATOR rom
  571.  
  572.  
  573. bANK 15
  574.  
  575. 4000-CFFFbasic rom
  576. D000-D030vic, 40 cOL vIDEO cHIP 8564 (ntsc) OR 8566 (pal)
  577. D400-D41Csid sOUND cHIP 6581
  578. D500-D50Bmmu, mEMORY mANAGEMENT uNIT 8722
  579. D600-D601vdc, 80 cOL vIDEO cONTROLLER 8563
  580. D800-D8E7cOLOR nYBBLES fOR vic tEXT sCREEN
  581. DC00-DC0Fcia 1 (irq), 6526
  582. DD00-DD0Fcia 2 (nmi), 6526
  583. DF00-DF0Adma sLOT
  584. E000-FFFFkernal rom
  585. FF00-FF04mmu
  586. FF05-FFFFtRANSFER, jUMP tABLE
  587.  
  588.  
  589. *****
  590.  
  591. 502 commodore 128
  592.  
  593. tHIS CHAPTER PROVIDES THE MEMORY MAPS FOR BOTH c128 AND c64 MODES. a MEMORY
  594. MAP TELLS YOU EXACTLY HOW MEMORY IS LAID OUT INTERNALLY IN BOTH ram AND rom.
  595. iT TELLS YOU EXACTLY WHAT RESIDES IN EACH MEMORY LOCATION. tHE MEMORY MAP
  596. DIRECTS YOU IN FINDING ADDRESS VECTORS FOR ROUTINES AND ENTRY POINTS AND PROVI-
  597. DES INFORMATION ABOUT THE GENERAL LAYOUT OF THE COMPUTER. tHE MEMORY MAP IS
  598. PROBABLY THE MOST VITAL PROGRAMMING TOOL.
  599.  
  600. rEFER TO THE MEMORY MAP WHENEVER YOU NEED DIRECTIONS THROUGHOUT THE MEMORY OF 
  601. YOUR cOMMODORE 128. aDDRESSES LISTED WITH MORE THAN ONE ADDRESS LABEL ARE USED
  602. FOR MORE THAN ONE PURPOSE. tO basic, THE VARIABLE HAS ONE PURPOSE; TO THE mAC-
  603. HINE lANGUAGE mONITOR, IT MAY HAVE ANOTHER.
  604.  
  605. tHE CONVENTIONS USED FOR THE MEMORY MAPS ARE AS FOLLOWS:
  606.  
  607. cOLUMN 1cOLUMN 2cOLUMN3cOLUMN 4
  608. memory
  609. addresshexadecimaldecimal
  610. labeladdressaddressdescription
  611.  
  612. sEE aPPENDIX k FOR THE z80 MEMORY MAP FOR cp/m ON THE cOMMODORE 128.
  613.  
  614.  
  615. c128 memory map
  616.  
  617. memory address  address
  618. labelhexdecdescription
  619.  
  620. d6510000006510 dATA dIRECTION rEGISTER
  621. r6s10000116510 dATA rEGISTER
  622. bank00022tOKEN 'search' LOOKS FOR, OR bANK #
  623. pc_hi00033aDDRESS FOR basic sys COMMAND OR monitor AND
  624. long call/jump rOUTINES
  625. pc_lo00044aDDRESS
  626. s_reg00055status reg tEMP
  627. a_reg00066.a reg tEMP
  628. x_reg00077.x reg tEMP
  629. y_reg00088.y reg tEMP
  630. stkptr00099sTACK pOINTER tEMP
  631.  
  632.  
  633. basic zero page storage
  634.  
  635. integr00099
  636. characsEARCH cHARACTER
  637. endchr000a10fLAG: sCAN fOR qUOTE AT eND oF sTRING
  638. trmpos000b11sCREEN cOLUMN FROM lAST tAB
  639. vercic000c12fLAG: 0 = load, 1 = verify
  640.  
  641. count000d13iNPUT bUF.PTR / # OF sUBSCRIPTS
  642.  
  643. dimflg000e14fLAG: dEFAULT aRRAY dIMENSION
  644. valtyp000f15data tYPE: $ff=sTRING, $00 = nUMERIC
  645. intflg001016data tYPE: $00=fLOAT.pT, $80 = iNTEGER
  646. garbfl001117fLAG: data sCAN/ list qUOTE/ gARBAGE cOLLECTION
  647.  
  648. dores
  649. subflg001218fLAG: sUBSCRIPT rEF. / uSER fUNC. cALL
  650.  
  651. inpflg001319fLAG: $00=input, $40=get, $98 = read
  652.  
  653. domask001420
  654. tansgnfLAG: tan sIGN / cOMPARISON rESULT
  655.  
  656. channl001521
  657. poker001622
  658. linnumtEMP iNTEGER vALUE
  659. temppt001824pOINTER: tEMP sTRING sTACK
  660. lastpt001925lAST tEMP sTRING aDDRESS
  661. tempst001b27sTACK fOR tEMP sTRINGS
  662. index002436uTILITY pOINTER aREA
  663. index1
  664. index2002638
  665. resho002840fLOATING pT. pRODUCT OF mULTIPLY
  666. resmoh002941
  667. addend002a42
  668. resmo
  669. reslo002b43
  670. txttab002d45pOINTER: sTART oF basic tEXT
  671. vartab002f47pOINTER: sTART oF basic vARIABLES
  672.  
  673. arytab003149pOINTER: sTART oF basic aRRAYS
  674. strend003351pOINTER: eND oF basic aRRAYS + 1
  675.  
  676. fretop003553pOINTER: bOTTOM OF sTRING sTORAGE
  677. frespc003755uTILITY sTRING pOINTER
  678. max_mem_1003957tOP OF sTRING/vARIABLE bANK (bANK 1)
  679.  
  680. curlin003b59cURRENT basic lINE nUMBER
  681. txtptr003d61pOINTER TO basic tEXT USED BY chrget,ETC.
  682. form003f63uSED BY print using
  683. fndpntpOINTER TO iTEM fOUND bY sEARCH
  684.  
  685. datlin004165cURRENT data lINE nUMBER
  686. datptr004367cURRENT data iTEM aDDRESS
  687. inpptr004569vECTOR: input rOUTINE
  688. varnam004771cURRENT basic vARIABLE nAME
  689. fdecpt004973
  690. varpntpOINTER: cURRENT basic vARIABLE data
  691.  
  692. lstpnt004b75
  693. forpntpOINTER: iNDEX vARIABLE fOR for/next
  694.  
  695. andmsk
  696. eormsk004c76
  697. vartxt004d77
  698. opptr
  699. opmask004f79
  700. grbpnt005080
  701. tempf3
  702. defpnt
  703. dscpnt005282
  704. 005484
  705.  
  706. helper005585fLAGS 'help' OR 'list'
  707. jmper005686
  708. 005787
  709. oldov005888
  710. tempf1005989
  711. ptarg1mULTIPLY DEFINED FOR instr
  712. ptarg2005b91
  713. strL005d93
  714. str2006096
  715. positn006399
  716. match0064100
  717.  
  718. arypnt005a90
  719. highds
  720. hightr005c92
  721. tempf2005e94
  722. deccnt005f95nUMBER OF dIGITS AFTER THE dECIMAL pOINT
  723. tenexp006096
  724. t0ml monitor z.p. sTORAGE IN fac
  725.  
  726. grbtop006197
  727. dptflgdECIMAL pOINT fLAG
  728. lowtr
  729. expsgn006298
  730. fac006399
  731.  
  732. dsctmp
  733. left_flagpAINT-lEFT fLAG
  734. facexpfac#1 eXPONENT
  735. tLmonitor z.p. sTORAGE IN fac
  736. right_flag0064100pAINT-rIGHT fLAG
  737. fachofac#1 mANTISSA
  738. facmoh0065101
  739. indice0066102
  740. facmo
  741. t2monitor z.p. sTORAGE IN fac
  742. faclo0067103
  743. facsgn0068104fac#1 sIGN
  744. degree0069105
  745. sgnflgpOINTER: sERIES-eVAL. cONSTANT
  746. argexp006a106fac#2 eXPONENT
  747. argho006b107fac#2 mANTISSA
  748. argmoh006c108
  749. init_as_0jUST A COUNT FOR init
  750.  
  751. argmo006d109
  752. arglo006e110
  753. argsgn006f111fac#2 sIGN
  754. strngi0070112
  755. arisgnsIGN cOMPARISON rESULT: fac#1 VS #2
  756.  
  757. facov0071113fac#1 lOW-oRDER (rOUNDING)
  758. strng20072114
  759. polypt
  760. curtol
  761. fbufptpOINTER: cASSETTE bUFFER
  762. autinc0074116iNC. vAL FOR auto (0 = oFF)
  763. mvdflg0076118fLAG iF 10k hires aLLOCATED
  764. z_p_temp_10077119print using'S lEADING zERO cOUNTER
  765. movspr & sPRITE tEMPORARY
  766. mid$ tEMPORARY
  767.  
  768. hulp0078120cOUNTER
  769. keysiz
  770. syntmp0079121uSED AS tEMP fOR iNDIRECT
  771. dsdesc007a122dESCRIPTOR FOR ds$
  772. txtptrmonitor z.p. sTORAGE
  773. tos007d125tOP OF rUN tIME sTACK
  774. runmod007f127fLAGS rUN/dIRECT mODE
  775. parsts0080128dos pARSER sTATUS wORD
  776. pointusing'S pOINTER TO dEC.pT
  777.  
  778. parstx0081129
  779. oldstk0082130
  780.  
  781.  
  782. basic z-p storage for graphic commands
  783.  
  784. colsel0083131cURRENT color sELECTED
  785.  
  786. multicolor0084132
  787. multicolor_20085133
  788. foreground0086134
  789. scale_x0087135sCALE fACTOR iN x
  790. scale_y0089137sCALE fACTOR iN y
  791. stopnb008b139sTOPPAINT IF NOT bACKGROUND/nOT SAME COLOR
  792. grapnt008c140
  793. vtempi008e142
  794. vtemp2008f143
  795.  
  796.  
  797. kernal/editor storage
  798.  
  799. status0090144i/o oPERATION sTATUS bYTE
  800. stkey0091145stop key fLAG
  801. svxt0092146tAPE tEMPORARY
  802. verck0093147load OR verify fLAG
  803. c3p00094148sERIAL bUFFERED cHAR fLAG
  804. bsour0095149cHAR bUFFER fOR sERIAL
  805. syno0096150cASSETTE sYNC #
  806. xsav0097151tEMP fOR basin
  807. ldtnd0098152iNDEX TO lOGICAL fILE
  808. dfltn0099153dEFAULT iNPUT dEVICE #
  809. dflto009a154dEFAULT oUTPUT dEVICE #
  810. prty009b155cASSETTE pARITY
  811. dpsw009c156cASSETTE dIPOLE sWITCH
  812. msgflg009d157os mESSAGE fLAG
  813. ptr1009e158cASSETTE eRROR pASS1
  814. t1tEMPORARY 1
  815. ptr2009f159cASSETTE eRROR pASS2
  816. t2tEMPORARY 2
  817. time00a016024 hOUR cLOCK iN 1/60TH sECONDS
  818. r2d200a3163sERIAL bUS uSAGE
  819.  
  820. pcntrcASSETTE
  821. bsour100a4164tEMP USED BY sERIAL rOUTINE
  822. firt
  823. count00a5165tEMP USED BY sERIAL rOUTINE
  824. cntdncASSETTE sYNC cOUNTDOWN
  825. bufpt00a6166cASSETTE bUFFER pOINTER
  826.  
  827. inbit00a7167rs-232 rcvr iNPUT bIT sTORAGE
  828. shcnlcASSETTE sHORT cOUNT
  829. bitci00a8168rs-232 rcvr bIT cOUNT iN
  830. rercASSETTE rEAD eRROR
  831. rinone00a9169rs-232 rcvr fLAG fOR sTART bIT cHECK
  832. rezcASSETTE rEADING zEROES
  833. ridata00aa170rs-232 rcvr bYTE bUFFER
  834. rdflgcASSETTE rEAD mODE
  835. riprty00ab171rs-232 rcvr pARITY sTORAGE
  836. shcnhcASSETTE sHORT cNT
  837. sal00ac172pOINTER: tAPE bUFFER / sCREEN sCROLLING
  838. sah00ad173
  839. eal00ae174tAPE eND aDDRESSES / eND OF pROGRAM
  840. eah00af175
  841. cmp000b0176tAPE tIMING cONSTANTS
  842. temp00b1177
  843. tape100b2178aDDRESS OF tAPE bUFFER
  844. bitts00b4180rs-232 trns bIT cOUNT
  845. snsw1
  846. nxtbit00b5181rs-232 trns nEXT bIT tO bE sENT
  847. diff
  848. rodata00b6182rs-232 trns bYTE bUFFER
  849. prp
  850. fnlen00b7183length cURRENT fILE n sTR
  851. la00b8184cURRENT fILE lOGICAL aDDR
  852. sa00b9185cURRENT fILE 2ND aDDR
  853. fa00ba186cURRENT fILE pRIMARY aDDR
  854. fnadr00bb187aDDR cURRENT fILE nAME sTR
  855. roprty00bd189rs-232 trns pARITY bUFFER
  856. ochar
  857. fsblk00be190cASSETTE rEAD bLOCK cOUNT
  858. drive00bf191
  859. mychsERIAL wORD bUFFER
  860. cas100c0192cASSETTE mANUAL/cNTRLED sWITCH (uPDATED DURING irq)
  861. track00c1193
  862. stali/o sTART aDDRESS (lo)
  863. sector00c2194
  864. stahi/o sTART aDDRESS (hi)
  865. memuss00c3195cASSETTE load tEMPS (2 BYTES)
  866. data00c5197tAPE rEAD/wRITE dATA
  867.  
  868. ba00c6198bANK fOR cURRENT load/save/verify oPERATION
  869. fnbank00c7199bANK wHERE cURRENT fn IS FOUND (AT 'fnadr')
  870. ribuf00c8200rs-232 iNPUT bUFFER pOINTER
  871. robuf00ca202rs-232 oUTPUT bUFFER pOINTER
  872.  
  873.  
  874. global screen editor variables
  875.  
  876. keytab00cc204kEYSCAN tABLE pOINTER
  877. imparm00ce206primm uTILITY sTRING pOINTER
  878. ndx00d0208iNDEX TO kEYBOARD qUEUE
  879. kyndx00d1209pENDING fUNCTION kEY fLAG
  880. keyidx00d2210iNDEX iNTO pENDING fUNCTION kEY sTRING
  881. shflag00d3211kEYSCAN sHIFT kEY sTATUS
  882. sfdx00d4212kEYSCAN cURRENT kEY iNDEX
  883. lstx00d5213kEYSCAN lAST kEY iNDEX
  884. crsw00d6214<cr> iNPUT fLAG
  885. mode00d721540/80 cOLUMN mODE fLAG
  886. graphm00d8216tEXT/gRAPHIC mODE fLAG
  887. charen00d9217ram/rom vic cHARACTER fETCH fLAG (bIT-2)
  888.  
  889.  
  890. the following locations are shared by several editor routines.
  891.  
  892. sedsal00da218pOINTERS fOR movlin
  893. bitmsk00da218tEMPORARY fOR tab & line wrap rOUTINES
  894. saver00db219aNOTHER tEMPORARY pLACE tO sAVE a rEG.
  895. sedeal00dc220
  896. sedt100de222savpos
  897. sedt200df223
  898. keysiz00da218pROGRAMMABLE kEY vARIABLES
  899. keylen00db219
  900. keynum00dc220
  901. keynxt00dd221
  902. keybnk00de222
  903. keytmp00df223
  904.  
  905.  
  906. local screen editor variables.
  907. tHESE ARE SWAPPED OUT TO $0A40 WHEN SCREEN (40/80) MODE CHANGES.
  908.  
  909. pnt00e0224pOINTER TO cURRENT lINE (tEXT)
  910. user00e2226pOINTER TO cURRENT lINE (aTTRIBUTE)
  911.  
  912. scbot00e4228wINDOW lOWER lIMIT
  913. sctop00e5229wINDOW uPPER lIMIT
  914. sclf00e6230wINDOW lEFT mARGIN
  915. scrt00e7231wINDOW rIGHT mARGIN
  916. lsxp00e8232cURRENT iNPUT cOLUMN sTART
  917. lstp00e9233cURRENT iNPUT lINE sTART
  918. indx00ea234cURRENT iNPUT lINE eND
  919. tblx00eb235cURRENT cURSOR lINE
  920. pntr00ec236cURRENT cURSOR cOLUMN
  921. lines00ed237mAXIMUM nUMBER OF sCREEN lINES
  922. columns00ee238mAXIMUM nUMBER OF sCREEN cOLUMNS
  923. datax00ef239cURRENT cHARACTER TO pRINT
  924. lstchr00f0240pREVIOUS cHAR pRINTED (fOR <esc> tEST)
  925. color00f1241cURR aTTRIBUTE TO pRINT (dEFAULT fgnd cOLOR)
  926. tcolor00f2242sAVED aTTRIB TO pRINT ('insert' & 'delete')
  927.  
  928. rvs00f3243rEVERSE mODE fLAG
  929. qtsw00f4244qUOTE mODE fLAG
  930. insrt00f5245iNSERT mODE fLAG
  931. insflg00f6246aUTO-iNSERT mODE fLAG
  932. locks00f7247dISABLES <sHIFT><c*>, <ctrl> s
  933. scroll00f8248dISABLES sCREEN sCROLL, lINE lINKER
  934. beeper00f9249dISABLES <ctrl> g
  935.  
  936. frekzp00fa250fREE zERO pAGE RESERVED FOR APPLICATIONS
  937. SOFTWARE ($fa-$fe)
  938. lofbuf00ff255
  939.  
  940.  
  941. basic/dos interface vars
  942.  
  943. bad0100256tAPE rEAD eRRORS
  944. fbuffraREA TO BUILD FILENAME IN (16 BYTES)
  945. xcnt0110272dos lOOP cOUNTER
  946.  
  947. dosf1l0111273dos fILENAME 1 lEN
  948. dosds10112274dos dISK dRIVE 1
  949. dosf2l0113275dos fILENAME 2 lEN
  950. dosds20114276dos dISK dRIVE 2
  951. dosf2a0115277dos fILENAME 2 aDDR
  952. dosofl0117279bload/bsave sTARTING aDDRESS
  953. dosofh0119281....AND eNDING aDDRESS
  954. dosla011b283dos lOGICAL aDDR
  955. dosfa011c284dos pHYS aDDR
  956. dossa011d285dos sEC. aDDR
  957. dosrcl011e286dos rECORD lENGTH
  958. dosbnk011f287
  959. dosdid0120288dos dISK id
  960. didchk0122290dos dsk id flg space uSED BY print using
  961. bnr0123291pOINTER TO bEGIN. no.
  962. enr0124292pOINTER TO eND no.
  963. dolr0125293dOLLAR fLAG
  964. flag0126294cOMMA fLAG
  965. swe0127295cOUNTER
  966. usgn0128296sIGN eXPONENT
  967. uexp0129297pOINTER TO eXPONENT
  968. vn012a298# oF dIGITS bEFORE dECIMAL pOINT
  969. chsn012b299jUSTIFY fLAG
  970. vf012c300# oF pOS bEFORE dECIMAL pOINT (fIELD)
  971. nf012d301# oF pOS aFTER dECIMAL pOINT (fIELD)
  972. posp012e302+/- fLAG (fIELD)
  973. fesp012f303eXPONENT fLAG (fIELD)
  974. etof0130304sWITCH
  975. cform0131305cHAR cOUNTER (fIELD)
  976. sno0132306sIGN nO
  977. blfd0133307bLANK/sTAR fLAG
  978. begfd0134308pOINTER TO bEGIN OF fIELD
  979. lfor0135309lENGTH OF fORMAT
  980. endfd0136310pOINTER TO eND oF fIELD
  981. systk0137311sYSTEM sTACK ($0137-$01ff)
  982. buf0200512iNPUT bUFFER: basic & monitor
  983. fetch02a2674lda(-),y fROM aNY bANK
  984. fetchvec02aa682
  985. stash02af687sta(-),y TO aNY bANK
  986. stavec02b9697
  987. cmpare02c8702cmp(-),y TO aNY bANK
  988. cmpvec02c8712
  989. jsrfar02cd716jsr xxxx TO aNY bANK & rETURN
  990. jmpfar02e3739jmp xxxx TO aNY bANK
  991.  
  992.  
  993. vectors
  994.  
  995. esc_fn_vec02fc764vECTOR fOR aDDITIONAL fUNCTION rOUTINES
  996. k ec02fe766vECTOR fOR fUNCTION cART.
  997. ierror0300uSERS
  998. 0302(err in .x)
  999. icrnch0304772vECTOR TO cRUNCH
  1000. 774vECTOR TO lIST basic tEXT
  1001. 776vECTOR TO gONE (basic cHAR
  1002. 778vECTOR TO basic tOKEN
  1003. 780vECTOR TO eSCAPE-tOKEN
  1004. 030e782list
  1005. iescex0310784... aND eXECUTE.
  1006. iiro0314788irq ram vECTOR
  1007. ibrk0316790brk instr ram vECTOR
  1008. inmi0318792nmi vECTOR
  1009. iopen031a794kernal open rOUTINE vECTOR
  1010.  
  1011. 796kernal close rOUTINE vECTOR
  1012.  
  1013. 798kernal chkin rOUTINE vECTOR
  1014. 800kernal chkout rOUTINE
  1015.  
  1016. clrch0322vECTOR
  1017. vector
  1018.  
  1019. ibasin0324804kernal chrin rOUTINE vECTOR
  1020. ibsout0326806kernal chrout rOUTINE vECTOR
  1021. istop0328808kernal stop rOUTINE vECTOR
  1022. igetin032a810kernal getin rOUTINE vECTOR
  1023. iclall032c812kernal clall rOUTINE vECTOR
  1024. exmon032e814mONITOR cOMMAND vECTOR
  1025. iload0330816kernal load rOUTINE vECTOR
  1026. isave0332818kernal save rOUTINE vECTOR
  1027.  
  1028.  
  1029. editor indirect vectors
  1030.  
  1031. ctlvec0334820eDITOR: print 'contrl' iNDIRECT
  1032. shfvec0336822eDITOR: print 'shiftd' iNDIRECT
  1033. escvec0338824eDITOR: print 'escape' iNDIRECT
  1034. keyvec033a826eDITOR: kEYSCAN lOGIC iNDIRECT
  1035. keychk033c828eDITOR: sTORE kEY iNDIRECT
  1036. decode033e830vECTORS TO kEYBOARD mATRIX dECODE tABLES
  1037. keyd034a842irq kEYBOARD bUFFER (10 bYTES)
  1038.  
  1039. tabmap0354852bITMAP oF tab sTOPS (10 bYTES, $0354-d)
  1040. bitabl035e862bITMAP oF lINE wRAPS
  1041.  
  1042. tabmap AND bitabl GET SWAPPED TO $0a60 WHEN
  1043. SCREEN 40/80 MODE IS CHANGED.
  1044.  
  1045. lat0362866lOGICAL fILE nUMBERS
  1046. fat036c876pRIMARY dEVICE nUMBERS
  1047. sat0376886sECONDARY aDDRESSES
  1048. chrget0380896
  1049. chrgot0386902
  1050. qnum0390912
  1051.  
  1052.  
  1053. indirect load subroutine area
  1054.  
  1055. indsub_ram0039f927sHARED rom fETCH sUB
  1056. indsub_ram103ab939sHARED rom fETCH sUB
  1057. indin1_ram103b7950iNDEX1 iNDIRECT fETCH
  1058. indin203c0959iNDEX2 iNDIRECT fETCH
  1059. indixt03c9968tXTPTR
  1060.  
  1061. zero03d2977nUMERIC cONSTANT fOR basic
  1062. current_bank03d5979cONTEXT fOR sys,poke,peek fROM bANK cMMD
  1063. tmpdes03d6980tEMP fOR instr
  1064. fin_bank03da984bANK pOINTER fOR sTRING/nUMBER convert rtn
  1065. savsiz03db985tEMP wORK lOCATIONS FOR sshape
  1066. bits03df989fac#1 overflow digit
  1067. sprtmp_103e0990tEMP fOR sprsav
  1068. sprtmp_203e1991
  1069. fg_bg03e2992pACKED fOREGROUND/ bACKGROUND cOLOR nYBBLES
  1070. fg_mc103e3993pACKED fOREGROUND/ mULTICOLOR 1 cOLOR nYBBLES
  1071.  
  1072.  
  1073. pAGE fOUR & hIGHER dECLARATIONS (bEGINNING oF bANKABLE ram)
  1074.  
  1075. vicscn04001024video matrix #1: vic 40-cOLUMN tEXT sCREEN
  1076. $0400-$07ff
  1077.  
  1078. 08002048basic run-time stack (512 bytes)
  1079. $0800-$09ff
  1080.  
  1081.  
  1082. absolute kernal variables
  1083.  
  1084. system_vector0a002560vECTOR TO rESTART sYSTEM (basic wARM)
  1085. dejavu0a022562kernal wARM/cOLD iNIT'N sTATUS bYTE
  1086. palnts0a032563pal/ntsc sYSTEM fLAG
  1087. init_status0a042564fLAGS reset VS. nmi sTATUS FOR INIT'N RTNS
  1088. memstr0a052565pTR TO bOTTOM OF aVAIL. mEMORY IN sYSTEM bANK
  1089. memsiz0a072567pTR TO tOP OF aVAILABLE mEMORY IN sYSTEM bANK
  1090. irqtmp0a092569tAPE hANDLER PRESERVES irq iNDIRECT HERE
  1091. caston0aob2571tod sENSE DURING TAPE OPERATIONS
  1092. kika260aoc2572tAPE rEAD tEMPORARY
  1093. stupid0aod2573tAPE rEAD d1irq iNDICATOR
  1094. timout0aoe2574fAST sERIAL tIMEOUT fLAG
  1095. enabl0a0f2575rs-232 eNABLES
  1096.  
  1097. m51ctr0a102576rs-232 cONTROL rEGISTER
  1098. msicdr0a112577rs-232 cOMMAND rEGISTER
  1099. msiajb0a122578rs-232 uSER bAUD rATE
  1100. rsstat0a142580rs-232 sTATUS rEGISTER
  1101. bitnum0a152581rs-232 nUMBER OF bITS tO sEND
  1102. baudof0a162582rs-232 bAUD rATE fULL bIT tIME (cREATED BY open)
  1103. ridbe0a182584rs-232 iNPUT bUFFER iNDEX TO eND
  1104. ridbs0a192585rs-232 iNPUT bUFFER iNDEX TO sTART
  1105. rodbs0a1a2586rs-232 oUTPUT bUFFER iNDEX TO sTART
  1106. rodbe0a1b2587rs-232 oUTPUT bUFFER iNDEX TO eND
  1107. serial0a1c2588fAST sERIAL iNTERNAL/eXTERNAL fLAG
  1108. timer0a1d2589dECREMENTING jIFFIE rEGISTER
  1109.  
  1110.  
  1111. global absolute screen editor declarations
  1112.  
  1113. xmax0a202592kEYBOARD qUEUE mAXIMUM sIZE
  1114. pause0a212593ctrl-s fLAG
  1115. rptflg0a222594eNABLE kEY rEPEATS
  1116. kount0a232595dELAY bETWEEN kEY rEPEATS
  1117. delay0a242596dELAY bEFORE A kEY sTARTS rEPEATING
  1118. lstshf0a252597dELAY bETWEEN <c=><shft> tOGGLES
  1119. blnon0a262598vic cURSOR mODE (bLINKING, sOLID)
  1120. blnsw0a272599vic cURSOR dISABLE
  1121. blnct0a282600vic cURSOR bLINK cOUNTER
  1122. gdbln0a292601vic cURSOR cHARACTER bEFORE bLINK
  1123. gdcol0a2a2602vic cURSOR cOLOR bEFORE bLINK
  1124. curmod0a2b2603vdc cURSOR mODE (WHEN ENABLED)
  1125. vm10a2c2604vic tEXT sCREEN/cHARACTER bASE pOINTER
  1126. vm20a2d2605vic bIT-mAP bASE pOINTER
  1127. vm30a2e2606vdc tEXT sCREEN bASE
  1128. vm40a2f2607vdc aTTRIBUTE bASE
  1129. lintmp0a302608tEMPORARY pOINTER TO lAST lINE fOR loop4
  1130. sav80a0a312609tEMPORARY fOR 80-cOL rOUTINES
  1131. sav80b0a322610tEMPORARY fOR 80-cOL rOUTINES
  1132. curcol0a332611vdc cURSOR cOLOR bEFORE bLINK
  1133. split0a342612vic sPLIT sCREEN rASTER vALUE
  1134. fnadrx0a352613sAVE .x dURING bANK oPERATIONS
  1135. palcnt0a362614cOUNTER FOR pal sYSTEMS (jIFFIE ADJUSTMENT)
  1136. speed0a372615sAVE sYSTEM sPEED dURING tAPE AND sERIAL oPS
  1137. sprites0a382616sAVE sPRITE eNABLES dURING tAPE AND sERIAL oPS
  1138. blanking0a392617sAVE bLANKING sTATUS dURING tAPE oPS
  1139. hold_off0a3a2618fLAG SET BY USER TO RESRV FULL CONTROL OF vic
  1140. ldtbi_sa0a3b2619hI BYTE:sa oF vic sCRN (uSE w/vmi TO MOVE SCRN)
  1141. clr_ea_lo0a3c26208563 bLOCK fILL
  1142. clr_ea_hi0a3d26218563 bLOCK fILL
  1143. 0a402624$0a40-$0a7f rESERVED sWAP aREA fOR sCREEN
  1144. vARIABLES wHEN (40/80) mODE cHANGES
  1145. monitor'S DOMAIN
  1146.  
  1147. xcnt0a802688cOMPARE bUFFER (32 BYTES)
  1148. hulp0aa02720
  1149. format0aaa2730
  1150. length0aab2731asm/dis
  1151. msal0aac2732fOR aSSEMBLER
  1152. sxreg0aaf27351 bYTE tEMP USED ALL OVER
  1153. syreg0ab027361 bYTE tEMP USED ALL OVER
  1154. wrap0ab127371 bYTE tEMP FOR aSSEMBLER
  1155. xsave0ab22738sAVE .x HERE DURING iNDIRECT sUBROUTINE cALLS
  1156. direction0ab32739dIRECTION iNDICATOR fOR 'transfer'
  1157. count0ab42740pARSE nUMBER cONVERSION
  1158. number0ab52741pARSE nUMBER cONVERSION
  1159. temps0ab72743pARSE nUMBER cONVERSION
  1160.  
  1161.  
  1162. function key rom card tables
  1163.  
  1164. curbnk0ac02752cURRENT fUNCTION kEY rom bANK bEING pOLLED
  1165.  
  1166. pat0ac12753pHYSICAL aDDRESS tABLE (ids of logged-in cards)
  1167.  
  1168. dk_flag0ac52757rESERVED fOR fOREIGN sCREEN eDITORS
  1169. 0ac62758$0ac6-$0aff rESERVED fOR sYSTEM
  1170.  
  1171. tbuffr0b002810cASSETTE bUFFER (192 bytes)
  1172. $0b00-$0bc0, tHIS PAGE ALSO USED AS A BUFFER
  1173. FOR THE DISK AUTO-BOOT.
  1174.  
  1175. rs232i0c003072rs-232 iNPUT bUFFER
  1176.  
  1177. rs23200d003328rs-232 oUTPUT bUFFER
  1178. 0e003584sPRITE dEFINITION aREA (mUST BE BELOW $1000)
  1179. $0e00-$0fff, 512 bYTES
  1180.  
  1181. pkybuf10004096pROGRAMMABLE fUNCTION kEY lENGTHS tABLE fOR
  1182. 10 kEYS (f1-f8, <shift run>, help)
  1183.  
  1184. pkydef100a4106pROGRAMMABLE fUNCTION kEY sTRINGS
  1185.  
  1186.  
  1187. dos/vsp area
  1188.  
  1189.  
  1190. dosstr11004352dos output str. buf
  1191. 48 bYTES TO bUILD dos sTRING
  1192.  
  1193. vwork11314401gRAPHICS vARS
  1194.  
  1195. xypos11314401
  1196. xpos11314401cURRENT x pOSITION
  1197. ypos11334403cURRENT y pOSITION
  1198. xdest11354405x-cOORDINATE dESTINATION
  1199. ydest11374407y-cOORDINATE dESTINATION
  1200. xyabs11394409lINE dRAWING vARIABLES
  1201. xabs11394409
  1202. yabs113b4411
  1203. xysgn113d4413
  1204. xsgn113d4413
  1205. ysgn113f4415
  1206. fct11414417
  1207. errval11454421
  1208. lesser11474423
  1209. greatr11484424
  1210.  
  1211.  
  1212. angle routine variables
  1213.  
  1214. angsgn11494425sIGN oF aNGLE
  1215. sinval114a4426sINE oF vALUE oF aNGLE
  1216.  
  1217.  
  1218. dos/vsp area
  1219.  
  1220. cosval114c4428cOSINE OF vALUE OF aNGLE
  1221. angcnt114e4430tEMPS fOR aNGLE dISTANCE rOUTINES
  1222.  
  1223.  
  1224. basic graphic variables.
  1225. tHE FOLLOWING 24 BYTES ARE MULTIPLY DEFINED.
  1226.  
  1227. circle drawing variables
  1228.  
  1229. xcircl11504432circle cENTER, x cOORDINATE
  1230. ycircl11524434circle cENTER, y cOORDINATE
  1231. xradus11544436x rADIUS
  1232. yradus11564438y rADIUS
  1233. rotang11584440rOTATION aNGLE
  1234. angbeg115c4444aRC aNGLE sTART
  1235. angend115e4446aRC aNGLE eND
  1236. xrcos11604448x rADIUS * cos(rOTATION aNGLE)
  1237. yrsin11624450y rADIUS * sin(rOTATION aNGLE)
  1238. xrsin11644452x rADIUS * sin(rOTATION aNGLE)
  1239. yrcos11664454y rADIUS * cos(rOTATION aNGLE)
  1240.  
  1241. basic general use parameters
  1242.  
  1243. xcentr11504432
  1244. ycentr11524434
  1245. xdist111544436
  1246. ydist111564438
  1247. xdist211584440
  1248. ydist2115a4442
  1249. diseend115c4444pLACEHOLDER
  1250. colcnt115e4446cHAR'S cOL. cOUNTER
  1251. rowcnt115f4447
  1252. strcnt11604448
  1253.  
  1254. box-drawing variables
  1255.  
  1256. xcord111504432point 1 x-cOORD.
  1257. ycord111524434point 1 y-cOORD.
  1258. boxang11544436rOTATION aNGLE
  1259. xcount11564438
  1260. ycount11584440
  1261. bxleng115a4442lENGTH OF A SIDE
  1262. xcord2115c4444
  1263. ycord2115e4446
  1264.  
  1265. shape and move-shape variables
  1266.  
  1267. keylen11514433
  1268. keynxt11524434
  1269. strsz11534435sTRING lEN
  1270.  
  1271. gettyp11544436rEPLACE sHAPE mODE
  1272. strptr11554437sTRING pOS'N cOUNTER
  1273. oldbyt11564438oLD bIT mAP BYTE
  1274. newbyt11574439nEW sTRING OR bIT mAP bYTE
  1275. 11584440pLACEHOLDER
  1276.  
  1277. xsize11594441shape cOLUMN lENGTH
  1278. ysize115b4443shape rOW lENGTH
  1279. xsave115d4445tEMP fOR cOLUMN lENGTH
  1280. stradr115f4447sAVE shape sTRING dESCRIPTOR
  1281. bitidx11614449bIT iNDEX iNTO bYTE
  1282.  
  1283.  
  1284. basic graphic variables
  1285.  
  1286. chrpag11684456high byte: addr of charrom fOR 'char' cmd.
  1287.  
  1288. bitcnt11694457tEMP fOR gshape
  1289. scalem116a4458scale mODE fLAG
  1290. width116b4459dOUBLE wIDTH fLAG
  1291. filflg116c4460bOX fILL fLAG
  1292. bitmsk116d4461tEMP fOR bIT mASK
  1293. numcnt116e4462
  1294. trcflg116f4463fLAGS tRACE mODE
  1295. renum_tmp_111704464a tEMP fOR rENUMBER
  1296. renum_tmp_211724466a tEMP fOR rENUMBER
  1297. t311744468
  1298. t411754469
  1299.  
  1300. vtemp311774471gRAPHIC tEMP sTORAGE
  1301. vtemp411784472
  1302. vtemp511794473
  1303. adray1117a4474pTR TO ROUTINE: cONVERT fLOAT -> iNTEGER
  1304. adray2117c4476pTR TO ROUTINE: cONVERT iNTEGER -> float
  1305. sprite_data117e4478sPRITE sPEED/dIRECTION tABLES ($117e-d5)
  1306.  
  1307. vic_save11d64566cOPY OF vic rEG'S, uSED TO UPDATE CHIP DURING
  1308. RETRACE (21 BYTES, $11d6-ea)
  1309.  
  1310. upper_lower11eb4587pOINTER TO uPPER/lOWER cHAR sET FOR char
  1311. upper_graphic11ec4588pTR. TO uPPER/gRAPHIC cHAR sET
  1312. dossa11ed4589tEMP STORAGE FOR FILE sa DURING record CMD
  1313.  
  1314.  
  1315. basic general non-zp storage
  1316.  
  1317. oldtxt12004608pREVIOUS basic lINE
  1318. 12024610pOINTER: basic sTATEMENT FOR continue
  1319.  
  1320.  
  1321. print using declarations
  1322.  
  1323. puchrs12044612
  1324. pufill12044612print using fILL sYMBOL
  1325. pucoma12054613print using cOMMA sYMBOL
  1326. pudot12064614print using d.p. sYMBOL
  1327. pumony12074614pRINT uSING mONETARY sYMBOL
  1328. errnum12084616uSED BY eRROR tRAPPING rOUTINE - lAST eRR nO
  1329. errlin12094617lINE # OF lAST eRROR. $ffff IF nO eRROR
  1330.  
  1331. trapno120b4619lINE TO GO TO ON ERROR - $ffff IF NONE SET
  1332.  
  1333. tmptrp120d4621hOLD tRAP # OF tEMPOR.
  1334. errtxt120e4622
  1335. text_top12104624tOP OF tEXT pOINTER
  1336. max_mem_012124626hIGHEST aDDRESS aVAILABLE TO basic IN ram 0
  1337.  
  1338. tmptxt12144628uSED BY do-loop. cOULD BE mULT. aSSIGNED
  1339. tmplin12164630
  1340. usrpok12184632
  1341. rndx121b4635
  1342. circle_segment12204640dEGREES pER circle 51:6ment
  1343. dejavu12214641'cOLD' OR 'wARM' rESET sTATUS
  1344.  
  1345.  
  1346. basic storage for music vectors
  1347.  
  1348. tempo_rate12224642
  1349. voices12234643
  1350. ntime12294649
  1351. octave122b4651
  1352. sharp122c4652
  1353. pitch122d4653
  1354. voice122f4655
  1355. wave012304656
  1356. dnote12334659
  1357. fltsav12344660
  1358. fltflg12384664
  1359. nibble12394665
  1360. tonnum123a4666
  1361.  
  1362. tonval123b4667
  1363. parcnt123e4668
  1364. atktab123f4669
  1365. sustab12494681
  1366. wavtab12534691
  1367. pulslw125d4701
  1368. pulshi12674711
  1369. filters12714721
  1370.  
  1371.  
  1372. interrupt vectors
  1373.  
  1374. int_trip_flag12764726
  1375. int_adr_lo12794729
  1376. int_adr_hi127c4732
  1377. intval127f4735
  1378. coltyp12804736
  1379.  
  1380.  
  1381. basic sound command vars
  1382.  
  1383. sound_voice12814737
  1384. sound_time_lo12824738
  1385. sound_time_hi12854741
  1386. sound_max_lo12884744
  1387. sound_max_hi128b4747
  1388. sound_min_lo128e4750
  1389. sound_min_hi12914753
  1390.  
  1391. sound_direction12944756
  1392. sound_step_lo12974759
  1393. sound_step_hi129a4762
  1394. sound_freq_lo129d4765
  1395. sound_freq_hi12a04768
  1396. temp_time_lo12a34771
  1397. temp_time_hi12a44772
  1398. temp_max_lo12a54773
  1399. temp_max_hi12a64774
  1400.  
  1401. temp_min_lo12a74775
  1402. temp_min_hi12a84776
  1403. temp_direction12a94777
  1404. temp_step_lo12aa4778
  1405. temp_step_hi12ab4779
  1406.  
  1407. temp_freq_lo12ac4780
  1408.  
  1409. temp_freq_hi12ad4781
  1410. temp_pulse_lo12ae4782
  1411. temp_pulse_hi12af4783
  1412. temp_waveform12b04784
  1413. pot_temp_112b14785tEMPORARIES FOR 'pot' fUNCTION
  1414. pot_temp_212b24786
  1415. window_temp12b34787
  1416. savram12b74791uSED by sprdef & savspr
  1417. defmod12fa4858uSED by sprdef & savspr
  1418. lincnt12fb4859uSED by sprdef & savspr
  1419. sprite_number12fc4860uSED by sprdef & savspr
  1420. irq_wrap_flag12fd4861uSED by basic irq TO block
  1421. aLL but one irq call
  1422.  
  1423. 13004864aPPLICATION pROGRAM aREA $1300-$1bff
  1424.  
  1425. rambot1c007168sTART oF bASIC tEXT $1c00-$efff
  1426. (kernal SETS membot HERE)
  1427.  
  1428. 1c007168vIDEO mATRIX #2 (1kb OF COLORS FOR
  1429. bITMAP, IF ALLOCATED) $1c00-$1fff
  1430.  
  1431. 20008192vic bitmap (8kb, IF ALLOCATED)
  1432. $2000-$3fff
  1433.  
  1434.  
  1435. beginning of rom over ram
  1436.  
  1437. 400016384c128 basic lo rom
  1438.  
  1439. sTART OF basic tEXT IF bIT mAP
  1440. IS ALLOCATED (ram) $4000-$efff
  1441.  
  1442. 800032768c128 basic hL rom (OR fUNCTION rom) $8000-$bfff
  1443.  
  1444.  
  1445.  
  1446. basic jump table
  1447.  
  1448.  
  1449. basic entry
  1450.  
  1451. jmp hard_reset400016384cold entry
  1452. jmp soft_reset400316387warm entry
  1453. jmp basic_irq400616390irq entry
  1454.  
  1455.  
  1456. format conversions
  1457.  
  1458. jmp ayintaf0044800cONVERT f.p. TO iNTEGER
  1459. jmp givayfaf0344803cONVERT iNTEGER TO f.p.
  1460.  
  1461. jmp foutaf0644806cONVERT f.p. TO ascii sTRING
  1462. jmp val_Laf0944809cONVERT ascii sTRING TO f.p.
  1463. jmp getadraf0c44812cONVERT f.p. TO AN aDDRESS
  1464. jmp floatcaf0f44815cONVERT aDDRESS TO f.p.
  1465.  
  1466.  
  1467. math functions
  1468.  
  1469. jmp fsubaf1244818mem - facc
  1470. jmp fsubtaf1544821arg - facc
  1471. jmp faddaf1844824mem + facc
  1472. jmp faddtaf1b44827arg - facc
  1473. jmp fmultaf1e44830mem * facc
  1474. jmp fmulttaf2144833arg * facc
  1475. jmp fdivaf2444836mem / facc
  1476. jmp fdivtaf2744839arg / facc
  1477. jmp logaf2a44842cOMPUTE nATURAL log oF facc
  1478. jmp intaf2d44845pERFORM basic int oN facc
  1479. jmp sqraf3044848cOMPUTE sQUARE rOOT of facc
  1480. jmp negopaf3344851nEGATE facc
  1481. jmp fpwraf3644854rAISE arg TO tHE mEM pOWER
  1482. jmp fpwrtaf3944857rAISE arg TO tHE facc pOWER
  1483. jmp expaf3c44860cOMPUTE exp oF facc
  1484.  
  1485. jmp cosaf3f44863cOMPUTE cos oF facc
  1486. jmp sinaf4244866cOMPUTE sin oF facc
  1487. jmp tanaf4544869cOMPUTE tan oF facc
  1488. jmp atnaf4844872cOMPUTE atn oF facc
  1489. jmp roundaf4b44875rOUND facc
  1490. jmp absaf4e44878aBSOLUTE vALUE oF facc
  1491. jmp signaf5144881tEST sIGN oF facc
  1492. jmp fcompaf5444884cOMPARE facc wITH mEMORY
  1493. jmp rnd 0af5744887gENERATE rANDOM f.p. nUMBER
  1494.  
  1495.  
  1496. movement
  1497.  
  1498. jmp conupkaf5a44890mOVE ram mem TO arg
  1499. jmp romupkaf5d44893mOVE rom mem TO arg
  1500. jmp movfrmaf6044896mOVE ram mem TO facc
  1501. jmp movfmaf6344899mOVE rom mem TO facc
  1502. jmp movmfaf6644902mOVE facc TO mem
  1503. jmp movfaaf6944905mOVE arg TO facc
  1504. jmp movafaf6c44908mOVE facc TO arg
  1505.  
  1506.  
  1507. other basic routines
  1508.  
  1509. jmp optabaf6f44911
  1510. jmp drawlnaf7244914
  1511.  
  1512.  
  1513. memory
  1514. addresshexadecimal decimal
  1515. labeladdress address description
  1516.  
  1517. other basic routines
  1518.  
  1519. jmp gplotaf7544917
  1520. jmp cirsubaf7844920
  1521. jmp runaf7b44923
  1522. jmp runcaf7e44926
  1523. jmp clearaf8144929
  1524. jmp newaf8444932
  1525. jmp lnkprgaf8744935
  1526. jmp crunchaf8a44938
  1527.  
  1528. jmp fndlinaf8d44941
  1529. jmp newsttaf9044944
  1530. jmp evalaf9344947
  1531. jmp frmevlaf9644950
  1532. jmp run_a_program
  1533. af9944953
  1534.  
  1535. jmp setexcaf9c44956
  1536. jmp lingetaf9f44959
  1537. jmp garba2afa244962
  1538. jmp execute_a_line
  1539. afa544965
  1540.  
  1541.  
  1542. monitor entry
  1543.  
  1544. jmp callb00045056monitor cALL eNTRY
  1545.  
  1546. jmp breakb00345059monitor bREAK eNTRY
  1547. jmp moncmdb00645062monitor cOMMAND pARSER eNTRY
  1548. c00049152kernal (OR fUNCTION) rom $c000-$ffff
  1549.  
  1550.  
  1551. editor jump table
  1552.  
  1553. jmp cintc000491s2iNITIALIZE eDITOR & sCREEN
  1554. jmp displyc00349155dISPLAY cHARAC IN .a, cOLOR
  1555.  
  1556. jmp lp2c00649158gET kEY fROM irq bUFFER
  1557.  
  1558. jmp loop5c009iNTO a
  1559.  
  1560. jmp printc00c49164pRINT cHARACTER iN .a
  1561. jmp scrorgc00f49167gET # OF sCRN rOWS, cOLS iNTO x & y
  1562.  
  1563. jmp scnkeyc01249170sCAN kEYBOARD sUBROUTINE
  1564. jmp repeatc01549173hANDLE rEPEAT kEY & sTORE dECODED kEY
  1565. jmp plotc01849176rEAD oR sET crsr pOSITION iN x, y
  1566. jmp cursorc01b49179mOVE 8563 cURSOR sUBROUTINE
  1567. jmp escapec01e49182eXECUTE esc fUNCTION USING CHR IN .a
  1568. jmp keysetc02149185rEDEFINE a pROGRAMMABLE fUNC'N kEY
  1569. jmp irqc02449188irq eNTRY
  1570. jmp init80c02749191iNITIALIZE 80-cOLUMN cHARACTER sET
  1571. jmp swapperc02a49194sWAP eDITOR lOCALS (IN 40/80 CHANGE)
  1572. jmp windowc02d49197sET tOP-lEFT OR bOT-rIGHT OF wINDOW
  1573. d00053248vic cHARACTER rom ($d000-$dfff)
  1574.  
  1575.  
  1576. vic chip registers
  1577.  
  1578. vicreg0d00053248sPRITE 0, x-lOCATION
  1579. vicreg1d00153249sPRITE 0, y-lOCATION
  1580. vicreg2d00253250sPRITE 1, x-lOCATION
  1581. vicreg3d00353251sPRITE 1, y-lOCATION
  1582. vicreg4d00453252sPRITE 2, x-lOCATION
  1583. vicreg5d00553253sPRITE 2, y-lOCATION
  1584. vicreg6d00653254sPRITE 3, x-lOCATION
  1585. vicreg7d00753255sPRITE 3, y-lOCATION
  1586. vicreg8d00853256sPRITE 4, x-lOCATION
  1587. vicreg9d00953257sPRITE 4, y-lOCATION
  1588. vicreg10d00a53258sPRITE 5, x-lOCATION
  1589. vicreg11d00b53259sPRITE 5, y-lOCATION
  1590. vicreg12d00c53260sPRITE 6, x-lOCATION
  1591. vicreg13d00d53261sPRITE 6, y-lOCATION
  1592. vicreg14d00e53262sPRITE 7, x-lOCATION
  1593. vicreg15d00f53263sPRITE 7, y-lOCATION
  1594. vicreg16d01053264m.s. bIT OF x-lOCATION FOR sPRITES 0 - 7
  1595.  
  1596.  
  1597.  
  1598. the commodore 128 and commodore 64 memory maps
  1599.  
  1600.  
  1601. kernal jump table
  1602. nEW eNTRIES fOR c128
  1603.  
  1604. jmp spin spoutff4765351sET UP fAST sERIAL pORT FOR i/o
  1605. jmp close allff4a65354cLOSE aLL lOGICAL fILES FOR A DEVICE
  1606. jmp c64modeff4d65357rECONFIGURE sYSTEM AS A c64 (NO RETURN)
  1607. jmp dma callff5065360iNITIATE dma rEQUEST TO eXTERNAL ram
  1608. eXPANSION, sEND COMMAND TO dma dEVICE
  1609.  
  1610. jmp boot callff5365363bOOT lOAD pROGRAM fROM dISK
  1611. jmp phoenixff5665366cALL aLL fUNCTION cARDS' cOLD sTART
  1612. rOUTINES, iNITIALIZE
  1613.  
  1614. jmp lkuplaff5965369sEARCH tABLES fOR gIVEN la
  1615. jmp lkupsaff5c65372sEARCH tABLES fOR gIVEN sa
  1616. jmp swapperff5f65375sWITCH bETWEEN 40 AND 80 cOLUMNS (eDITOR)
  1617. jmp dlchrff6265378iNIT 80-cOL cHARACTER ram (eDITOR)
  1618. jmp pfkeyff6565381pROGRAM fUNCTION kEY (eDITOR)
  1619. jmp setbnkff6865384set bANK fOR i/o oPERATIONS
  1620. jmp getcfgff6b65387lOOKUP mmu dATA fOR gIVEN bANK
  1621. jmp jsrfarff6e65390jsr TO aNY bANK, rts TO cALLING bANK
  1622. jmp jmpfarff7165393jmp TO aNY bANK
  1623. jmp indfetff7465396lda (fetvec),y from aNY bANK
  1624. jmp indstaff7765499sta (stavec),y TO aNY bANK
  1625. jmp indcmpff7a65402cmp (cmpvec),y TO aNY bANK
  1626. jmp primmff7d65405pRINT iMMEDIATE uTILITY
  1627. (aLWAYS jsr TO THIS ROUTINE)
  1628.  
  1629.  
  1630. standard kernal jump table
  1631.  
  1632. ff8065408rELEASE nUMBER oF kernal
  1633. jmp cintff8165409iNIT eDITOR & dISPLAY
  1634. jmp ioinitff8465412iNIT i/o dEVICES (PORTS, TIMERS, ETC.)
  1635. jmp ramtasff876s415iNITIALIZE ram aND bUFFERS fOR sYSTEM
  1636. jmp restorff8a65418rESTORE vECTORS TO iNITIAL sYSTEM
  1637. jmp vectorff8d65421cHANGE vECTORS fOR user
  1638. jmp setmsgff9065424cONTROL o.s. mESSAGE
  1639. jmp secndff9365427sEND sa aFTER listen
  1640. jmp tksaff9665430sEND sa aFTER talk
  1641. jmp memtopff9965433sET/rEAD tOP oF sYSTEM ram
  1642. jmp membotff9c65436sET/rEAD bOTTOM oF sYSTEM ram
  1643. jmp keyff9f65439sCAN kEYBOARD (eDITOR)
  1644. jmp settmoffa265442sET tIMEOUT iN ieee (RESERVED)
  1645. jmp acptrffa565445hANDSHAKE sERIAL bYTE iN
  1646. jmp cioutffa865448hANDSHAKE sERIAL bYTE oUT
  1647. jmp untlkffab65451sEND untalk oUT sERIAL
  1648. jmp unlsnffae65454sEND unlisten oUT sERIAL
  1649. jmp listnffb165457sEND listen oUT sERIAL
  1650. jmp talkffb465460sEND talk oUT sERIAL
  1651. jmp readssffb765463rETURN i/o sTATUS bYTE
  1652. jmp setlfsffba65460sET la, fa, sa
  1653. jmp setnamffbd65469sET lENGTH aND fILE nAME aDDRESS
  1654. jmp (iopen)ffc0open65472open lOGICAL fILE
  1655. jmp (iclose)ffc3close65475close lOGICAL fILE
  1656. jmp (ichkin)ffc6chkin65478sET cHANNEL iN
  1657. jmp (ickout)ffc9ckout65481sET cHANNEL oUT
  1658. jmp (iclrch)ffccclrch65484rESTORE dEFAULT i/o cHANNEL
  1659. jmp (ibasin)ffcfbasin65487input fROM cHANNEL
  1660. jmp (ibsout)ffd2bsout65490output tO cHANNEL
  1661. jmp loadspffd565493load fROM fILE
  1662. jmp savespffd865496save TO fILE
  1663. jmp settimffdb65599sET iNTERNAL cLOCK
  1664. jmp rdtimffde65502rEAD iNTERNAL cLOCK
  1665. jmp (istop)ffe1stop65505sCAN stop kEY
  1666. jmp (igetin)ffe4getin65508rEAD bUFFERED dATA
  1667. jmp (iclall)ffe7clall65511cLOSE aLL fILES aND cHANNELS
  1668. jmp udtimffeaclock65514iNCREMENT iNTERNAL cLOCK
  1669. jmp scrorgffed65517rETURN sCREEN wINDOW sIZE (eDITOR)
  1670. jmp plotfff065520rEAD/sET x,y cURSOR cOORD (eDITOR)
  1671. jmp iobasefff365523rETURN i/o bASE
  1672. systemfff865528oPERATING sYSTEM vECTOR (ram1)
  1673. nmifffa65530pROCESSOR nmi vECTOR
  1674. resetfffc65532pROCESSOR reset vECTOR
  1675. irqfffe65534pROCESSOR irq/brk vECTOR
  1676.  
  1677.  
  1678.  
  1679. kernal/editor flags and shadow registers
  1680.  
  1681. tHE FOLLOWING SYMBOLS ARE USED BY THE c128 eDITOR. nOTE THAT THE eDITOR irq
  1682. vic SCREEN HANDLER DEPENDS UPON THEM. iN MOST CASES THE CONTENTS OF THESE
  1683. LOCATIONS WILL BE PLACED DIRECTLY INTO THE APPROPRIATE REGISTER AND SHOULD BE
  1684. USED INSTEAD OF THE ACTUAL REGISTER. fOR EXAMPLE, TO CHANGE THE LOCATION OF THE
  1685. CHARACTER SET USED BY vic, USE vm1 ($0a2c) INSTEAD OF vic REGISTER 24 ($d018).
  1686. vm1 WILL BE USED BY THE EDITOR TO UPDATE vic REGISTER 24.
  1687.  
  1688.  
  1689. address nameexplanation
  1690.  
  1691. $00d8/graphmsEE BELOW. if = $ff then editor leaves vic alone.
  1692. $00d9/charenmask fOR 8502 /charen bit.
  1693. $0a2c/vm1vic tEXT mODE vIDEO mATRIX & cHARACTER bASE pOINTER.
  1694. $0a2d/vm2vic gRAPHIC mODE vIDEO mATRIX & bIT mAP pOINTER.
  1695. $0a2e/vm38563 text display base aDDRESS.
  1696. $0a2f/vm48s63 attribute base aDDRESS.
  1697. $0a34/splitin split screen mode, contains value fOR middle raster irq.
  1698. $0a2b/curmod8563 cursqr mODE.
  1699. $0a21/pausecontrol s fLAG (iN EFFECT = $13)
  1700.  
  1701.  
  1702.  
  1703. 540 commodore 128
  1704.  
  1705.  
  1706. explanation of various kernal/editor flag bytes, etc.
  1707.  
  1708. address symboldescription
  1709.  
  1710. 76543210
  1711.  
  1712.  
  1713. 0000d6510-(in)(out)(in)(out)(out)(out)(out)
  1714. 0001r6510-capkeycasmtrcassencaswrtcharenhiramloram
  1715.  
  1716. 00f7lockscasectl s------
  1717.  
  1718. 00f8scrollofflinker
  1719.  
  1720. 00d3shflag---altalphactrlshift
  1721.  
  1722. oa22rptflgallnone------
  1723.  
  1724. oa26blnononblnk------
  1725.  
  1726. 00f9beeperon-------
  1727.  
  1728. 00d8graphmmcmsplitbmm-----
  1729.  
  1730. 00d7mode40/80-------
  1731.  
  1732. oa04init_chrsetcint-----basic
  1733. status
  1734.  
  1735.  
  1736.  
  1737. nOTES ON kERNAL sYMBOLS:
  1738.  
  1739. iNIT_sTATUS. sEE ALSO ABOVE. lETS SYSTEM KNOW WHAT HAS BEEN INITIALIZED AND
  1740. WHAT HASN'T. sET TO $00 BY A RESET BUT UNTOUCHED BY nmi.
  1741.  
  1742. sYSTEM_vECTOR. wHERE THE kERNAL GOES WHEN IT HAS TO GO SOMEWHERE. iT'S SET
  1743. TO basic COLD AT RESET. basic ITSELF SETS IT TO basic WARM AFTER IT HAS
  1744. INITIALIZED. tHE MONITOR RESPECTS IT TOO.
  1745.  
  1746. sYSTEM. vECTOR IN ram1 AT $fff8. sET AT POWER-UP TO c128mode, USER MAY REDIRECT
  1747. IT TO HIS CODE. tAKEN AT RESET ALWAYS PROVIDING USER WITH CONTROL (PROTECTION)
  1748. FROM RESET.
  1749.  
  1750.  
  1751. <END>
  1752.