;ACME 0.97 !ifdef lib_cbm_c128_zeropage_a !eof lib_cbm_c128_zeropage_a = 1 ; These labels and their values are given in the C128 manual. ; Label names were converted to lower case and prefixed by "z_", however. ; The following labels appear twice, only their first appearance is active: ; z_verck, given as $0c and $93 ; z_count, given as $0d and $a5 ; z_keysiz, given as $78 and $da ; z_keynum, given as $77 and $dc ; z_xcnt, given as $0110 and $0a80 ; z_hulp, given as $78 and $0aa0 ; z_keynxt, given as $dd and $1152 ; z_xsave , given as $0ab2 and $115d ; z_bitmsk, given as $da and $116d ; z_dejavu, given as $0a02 and $1221 !address { z_d8502 = $00 z_d6510 = $00 z_r8502 = $01 z_r6510 = $01 z_bank = $02 z_pc_hi = $03 z_pc_lo = $04 z_s_reg = $05 z_a_reg = $06 z_x_reg = $07 z_y_reg = $08 z_stkptr = $09 z_integr = $09 z_charac = $09 ; labels from MONITOR { z_pcb = $02 z_pch = $03 z_pcl = $04 z_flgs = $05 z_acc = $06 z_xr = $07 z_yr = $08 z_sp = $09 ;} z_endchr = $0a z_trmpos = $0b z_verck = $0c z_count = $0d z_dimflg = $0e z_valtyp = $0f z_intflg = $10 z_garbfl = $11 z_dores = $11 z_subflg = $12 z_inpflg = $13 z_domask = $14 z_tansgn = $14 z_channl = $15 z_poker = $15 z_linnum = $16 z_temppt = $18 z_lastpt = $19 z_tempst = $1b z_index = $24 z_index1 = $24 z_index2 = $26 ; given as $24 in german manual, which is probably wrong z_resho = $28 z_resmoh = $29 z_addend = $2a z_resmo = $2a z_reslo = $2b z_txttab = $2d z_vartab = $2f z_arytab = $31 z_strend = $33 z_fretop = $35 z_frespc = $37 z_max_mem_1 = $39 z_curlin = $3b z_txtptr = $3d z_form = $3f z_fndpnt = $3f z_datlin = $41 z_datptr = $43 z_inpptr = $45 z_varnam = $47 z_fdecpt = $49 z_varpnt = $49 z_lstpnt = $4b z_andmsk = $4b z_forpnt = $4b z_eormsk = $4c z_vartxt = $4d z_opptr = $4d z_opmask = $4f z_grbpnt = $50 z_tempf3 = $50 z_defpnt = $50 z_dscpnt = $52 z_helper = $55 z_jmper = $56 z_oldov = $58 z_tempf1 = $59 z_arypnt = $5a z_highds = $5a z_hightr = $5c z_tempf2 = $5e z_deccnt = $5f z_grbtop = $61 z_dptflg = $61 z_lowtr = $61 z_expsgn = $62 z_fac1 = $63 z_degree = $69 z_sgnflg = $69 z_argexp = $6a z_strng1 = $70 z_arisgn = $70 z_facov = $71 z_strng2 = $72 z_polypt = $72 z_curtol = $72 z_fbufpt = $72 z_autinc = $74 z_mvdflg = $76 z_noze = $77 z_sprnum = $77 z_keynum = $77 z_hulp = $78 z_keysiz = $78 z_syntmp = $79 z_dsdesc = $7a z_tos = $7d z_runmod = $7f z_parsts = $80 z_point = $80 z_parstx = $81 z_oldstk = $82 z_colsel = $83 z_multicolor_1 = $84 z_multicolor_2 = $85 z_foreground = $86 z_scale_x = $87 z_scale_y = $89 z_stopnb = $8b z_grapnt = $8c z_vtemp1 = $8e z_vtemp2 = $8f z_status = $90 z_stkey = $91 z_svxt = $92 ;z_verck = $93 ; already given as $0c! z_c3po = $94 z_bsour = $95 z_syno = $96 z_xsav = $97 z_ldtnd = $98 z_dfltn = $99 z_dflto = $9a z_prty = $9b z_dpsw = $9c z_msgflg = $9d z_ptr1 = $9e z_t1 = $9e z_ptr2 = $9f z_t2 = $9f z_time = $a0 z_r2d2 = $a3 z_pcntr = $a3 z_bsour1 = $a4 ;z_count = $a5 ; already given as $0d! z_cntdn = $a5 z_bufpt = $a6 z_inbit = $a7 z_bitci = $a8 z_rinone = $a9 z_ridata = $aa z_riprty = $ab z_sal = $ac z_sah = $ad z_eal = $ae z_eah = $af z_cmpo = $b0 z_tape1 = $b2 z_bitts = $b4 z_nxtbit = $b5 z_rodata = $b6 z_fnlen = $b7 z_la = $b8 z_sa = $b9 z_fa = $ba z_fnadr = $bb z_roprty = $bd z_fsblk = $be z_drive = $bf z_cas1 = $c0 z_stal = $c1 z_stah = $c2 z_memuss = $c3 z_data = $c5 z_ba = $c6 z_fnbank = $c7 z_ribuf = $c8 z_robuf = $ca z_keytab = $cc z_imparm = $ce z_ndx = $d0 z_kyndx = $d1 z_keyidx = $d2 z_shflag = $d3 z_sfdx = $d4 z_lstx = $d5 z_crsw = $d6 z_mode = $d7 z_graphm = $d8 z_charen = $d9 z_sedsal = $da z_sedeal = $dc z_sedt1 = $de z_sedt2 = $df ;z_keysiz = $da ; already given as $78! z_keylen = $db ;z_keynum = $dc ; already given as $77! z_keynxt = $dd z_keybnk = $de z_keytmp = $df z_bitmsk = $da z_saver = $db ; these vars are for the currently active screen (vic/vdc) { ; the values for the other screen are at $a40..$a5a, ; and the contents are exchanged when changing screens. ; there is a second pair of screen-specific blocks at $354 and $a60. z_pnt = $e0 z_user = $e2 z_scbot = $e4 z_sctop = $e5 z_sclf = $e6 z_scrt = $e7 z_lsxp = $e8 z_lstp = $e9 z_indx = $ea z_tblx = $eb z_pntr = $ec z_lines = $ed z_columns = $ee z_datax = $ef z_lstchr = $f0 z_color = $f1 z_tcolor = $f2 z_rvs = $f3 z_qtsw = $f4 z_insrt = $f5 z_insflg = $f6 z_locks = $f7 z_scroll = $f8 z_beeper = $f9 ;z_frekzp = $fa ; ROM does not use this, but it does get swapped out when screen changes! ;} ; $fb/$fc/$fd/$fe are unused z_lofbuf = $ff ; overwritten when outputting line numbers or ti$ z_fbuffr = $0100 ; buffer for number strings z_xcnt = $0110 z_dosf1l = $0111 z_dosds1 = $0112 z_dosf2l = $0113 z_dosds2 = $0114 z_dosf2a = $0115 z_dosofl = $0117 z_dosofh = $0119 z_dosla = $011b z_dosfa = $011c z_dossa = $011d z_dosrcl = $011e z_dosbnk = $011f z_dosdid = $0120 z_didchk = $0122 z_bnr = $0123 z_enr = $0124 z_dolr = $0125 z_flag = $0126 z_swe = $0127 z_usgn = $0128 z_uexp = $0129 z_vn = $012a z_chsn = $012b z_vf = $012c z_nf = $012d z_posp = $012e z_fesp = $012f z_etof = $0130 z_cform = $0131 z_sno = $0132 z_blfd = $0133 z_begfd = $0134 z_lfor = $0135 z_endfd = $0136 z_sysstk = $0137 z_buf = $0200 ; this block is not in the german C128 manual { z_fetch = $02a2 z_fetchvec = $02aa z_stash = $02af z_stavec = $02b9 z_cmpare = $02c8 z_cmpvec = $02c8 z_jsrfar = $02cd z_jmpfar = $02e3 ;} z_esc_fn_vec = $02fc z_bnkvec = $02fe z_ierror = $0300 z_icrnch = $0304 z_iqplop = $0306 z_igone = $0308 z_ieval = $030a z_iesclk = $030c z_iescpr = $030e z_iescex = $0310 z_itime = $0312 z_iirq = $0314 z_ibrk = $0316 z_inmi = $0318 z_iopen = $031a z_iclose = $031c z_ichkin = $031e z_ichkout = $0320 z_iclrch = $0322 z_ibasin = $0324 z_ibasout = $0326 z_istop = $0328 z_igetin = $032a z_iclall = $032c z_exmon = $032e z_iload = $0330 z_isave = $0332 ; this block is not in the german C128 manual { z_ctlvec = $0334 z_shfvec = $0336 z_escvec = $0338 z_keyvec = $033a z_keychk = $033c z_decode = $033e z_decode_shift = $0340 z_decode_cbm = $0342 z_decode_ctrl = $0344 z_decode_alt = $0346 z_decode_caps = $0348 z_keyd = $034a ; these vars are for the currently active screen (vic/vdc) { ; the values for the other screen are at $a60..$a6d, ; and the contents are exchanged when changing screens. ; there is a second pair of screen-specific blocks at $e0 and $a40. z_tabmap = $0354 z_bitabl = $035e ;} z_lat = $0362 z_fat = $036c z_sat = $0376 z_chrget = $0380 z_chrgot = $0386 z_qnum = $0390 ;} z_ind_sub_ram0 = $039f z_ind_sub_ram1 = $03ab z_indin1_ram1 = $03b7 z_indin2 = $03c0 z_indtxt = $03c9 z_zero = $03d2 z_current_bank = $03d5 z_tmpdes = $03d6 z_fin_bank = $03da z_savsiz = $03db z_bits = $03df z_sprtmp_1 = $03e0 z_sprtmp_2 = $03e1 z_fg_bg = $03e2 z_fg_mc1 = $03e3 z_vicscn = $0400 z_system = $0a00 z_dejavu = $0a02 z_palnts = $0a03 ; bit7 set means PAL z_init_status = $0a04 z_memstr = $0a05 z_memsiz = $0a07 z_irqtmp = $0a09 z_caston = $0a0b z_kika26 = $0a0c z_stupid = $0a0d z_timout = $0a0e z_enabl = $0a0f z_m51ctr = $0a10 z_m51cdr = $0a11 z_m51ajb = $0a12 z_rsstat = $0a14 z_bitnum = $0a15 z_baudof = $0a16 z_ridbe = $0a18 z_ridbs = $0a19 z_rodbs = $0a1a z_rodbe = $0a1b z_serial = $0a1c z_timer = $0a1d ; decrementing counter for SLEEP (low/medium/high) z_xmax = $0a20 z_pause = $0a21 z_rptflg = $0a22 z_kount = $0a23 z_delay = $0a24 z_lstshf = $0a25 z_blnon = $0a26 z_blnsw = $0a27 z_blnct = $0a28 z_gdbln = $0a29 z_gdcol = $0a2a z_curmod = $0a2b z_vm1 = $0a2c z_vm2 = $0a2d z_vm3 = $0a2e z_vm4 = $0a2f z_lintmp = $0a30 z_sav80a = $0a31 z_sav80b = $0a32 z_curcol = $0a33 z_split = $0a34 z_fnadrx = $0a35 z_palcnt = $0a36 ; countdown timer for TI's PAL adjustment (every fifth PAL irq, have an additional TI tick) z_speed = $0a37 z_sprites = $0a38 z_blanking = $0a39 ; this block is not in the german C128 manual { z_hold_off = $0a3a z_ldtbi_sa = $0a3b z_clr_ea_lo = $0a3c z_clr_ea_hi = $0a3d ;} ; $a40 - $a5a: data of currently inactive screen (vic/vdc). ; the values for the active screen are at $e0..$fa. ; $a5b - $a5f: unused? ; $a60 - $a6d: data of currently inactive screen (vic/vdc). ; the values for the active screen are at $354..$361. ; $a6e - $a7f: unused? ;z_xcnt = $0a80 ; already given as $0110! ;z_hulp = $0aa0 ; already given as $78! z_format = $0aaa z_length = $0aab z_msal = $0aac z_sxreg = $0aaf z_syreg = $0ab0 z_wrap = $0ab1 z_xsave = $0ab2 z_direction = $0ab3 z_temps = $0ab4 z_curbnk = $0ac0 z_pat = $0ac1 z_tbuffr = $0b00 z_rs232i = $0c00 z_rs232o = $0d00 z_pkybuf = $1000 z_pkydef = $100a z_dosstr = $1100 z_vwork = $1131 z_xypos = $1131 z_xpos = $1131 z_ypos = $1133 z_xdest = $1135 z_ydest = $1137 z_xyabs = $1139 z_xabs = $1139 z_yabs = $113b z_xysgn = $113d z_xsgn = $113d z_ysgn = $113f z_fct = $1141 z_errval = $1145 z_lesser = $1147 z_greatr = $1148 z_angsgn = $1149 z_sinval = $114a z_cosval = $114c z_angcnt = $114e z_xcircl = $1150 z_ycircl = $1152 z_xradus = $1154 z_yradus = $1156 z_rotang = $1158 z_angbeg = $115c z_angend = $115e z_xrcos = $1160 z_yrsin = $1162 z_xrsin = $1164 z_yrcos = $1166 z_xcentr = $1150 z_ycentr = $1152 z_xdist1 = $1154 z_ydist1 = $1156 z_xdist2 = $1158 z_ydist2 = $115a z_disend = $115c z_colcnt = $115e z_rowcnt = $115f z_strcnt = $1160 z_xcord1 = $1150 z_ycord1 = $1152 z_boxang = $1154 z_xcount = $1156 z_ycount = $1158 z_bxleng = $115a z_xcord2 = $115c z_ycord2 = $115e z_leylen = $1151 ;z_keynxt = $1152 ; already given as $dd! z_strsz = $1153 z_gettyp = $1154 z_strptr = $1155 z_oldbyt = $1156 z_newbyt = $1157 z_xsize = $1159 z_ysize = $115b ;z_xsave = $115d ; already given as $0ab2! z_stradr = $115f z_bitidx = $1161 z_chrpag = $1168 z_bitcnt = $1169 z_scalem = $116a z_width = $116b z_filflg = $116c ;z_bitmsk = $116d ; already given as $da! z_numcnt = $116e z_trcflg = $116f z_renum_tmp_1 = $1170 z_renum_tmp_2 = $1172 z_t3 = $1174 z_t4 = $1175 z_vtemp3 = $1177 z_vtemp4 = $1178 z_vtemp5 = $1179 z_adray1 = $117a z_adray2 = $117c z_sprite_data = $117e z_vic_save = $11d6 ; this block is not in the german C128 manual { z_upper_lower = $11eb z_upper_graphic = $11ec ;} z_oldlin = $1200 z_oldtxt = $1202 z_puchrs = $1204 z_pufill = $1204 z_pucoma = $1205 z_pudot = $1206 z_pumony = $1207 z_errnum = $1208 z_errlin = $1209 z_trapno = $120b z_tmptrp = $120d z_errtxt = $120e z_text_top = $1210 z_max_mem_0 = $1212 z_tmptxt = $1214 z_tmplin = $1216 z_usrpok = $1218 z_rndx = $121b z_circle_segment = $1220 ;z_dejavu = $1221 ; already given as $0a02! z_tempo_rate = $1222 z_voices = $1223 z_ntime = $1229 z_octave = $122b z_sharp = $122c z_pitch = $122d z_voice = $122f z_wave0 = $1230 z_dnote = $1233 z_fltsav = $1234 z_fltflg = $1238 z_nibble = $1239 z_tonnum = $123a z_tonval = $123b z_parcnt = $123e z_atktab = $123f z_sustab = $1249 z_wavtab = $1253 z_pulslw = $125d z_pulshi = $1267 z_filters = $1271 z_int_trip_flag = $1276 z_int_adr_lo = $1279 z_int_adr_hi = $127c z_intval = $127f z_coltyp = $1280 z_sound_voice = $1281 z_sound_time_lo = $1282 z_sound_time_hi = $1285 z_sound_max_lo = $1288 z_sound_max_hi = $128b z_sound_min_lo = $128e z_sound_min_hi = $1291 z_sound_direction = $1294 z_sound_step_lo = $1297 z_sound_step_hi = $129a z_sound_freq_lo = $129d z_sound_freq_hi = $12a0 z_temp_time_lo = $12a3 z_temp_time_hi = $12a4 z_temp_max_lo = $12a5 z_temp_max_hi = $12a6 z_temp_min_lo = $12a7 z_temp_min_hi = $12a8 z_temp_direction = $12a9 z_temp_step_lo = $12aa z_temp_step_hi = $12ab z_temp_freq_lo = $12ac z_temp_freq_hi = $12ad z_temp_pulse_lo = $12ae z_temp_pulse_hi = $12af z_temp_waveform = $12b0 z_pot_temp_1 = $12b1 z_pot_temp_2 = $12b2 z_window_temp = $12b3 z_savram = $12b7 z_defmod = $12fa z_lincnt = $12fb z_sprite_number = $12fc ; this block is not in the german C128 manual { z_irq_wrap_flag = $12fd z_rambot = $1c00 ;} }