File: zeropage.a

package info (click to toggle)
acme 1%3A0.96.2-1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 1,360 kB
  • sloc: ansic: 8,071; makefile: 91; sh: 53
file content (610 lines) | stat: -rw-r--r-- 11,528 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
;ACME 0.95

!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

	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_lofbuf	= $ff
	z_fbuffr	= $0100
	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
		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
	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
	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
	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 - $a5f: copy of data at $e0 - $ff of currently inactive screen
	; $a60 - $a7f: ?
	; 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
}