-
Notifications
You must be signed in to change notification settings - Fork 5
/
p2com.asm
20022 lines (16780 loc) · 501 KB
/
p2com.asm
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
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
; ADDPINS/ADDBITS only allowed in PASM under #immediate expression
; Allow INA/INB/etc to be used in CON expressions as register values
;************************************************
;* *
;* Spin2 Compiler v46 *
;* *
;* Written by Chip Gracey *
;* (C) 2006-2023 by Parallax, Inc. *
;* Last Updated: 2024/11/20 *
;* *
;************************************************
;
; Version 0.0 - Adapted from SXASM v1.01
; 0.1 - Added Propeller II instructions
;
ideal
p386
model flat
%CREFUREF
;
;
; Public routines
;
public P2InitStruct
public P2Compile1
public P2Compile2
public P2InsertInterpreter
public P2InsertDebugger
public P2InsertFlashLoader
public P2InsertClockSetter
public P2ResetDebugSymbols
public P2ParseDebugString
public P2Disassemble
;
;
; Equates
;
spin2_version = 46
obj_limit = 100000h ;must be same in delphi
file_limit = 32 ;must be same in delphi
param_limit = 16 ;must be same in delphi
info_limit = 1000 ;must be same in delphi
debug_data_limit = 4000h ;must be same in delphi
debug_string_limit = 8000h ;must be same in delphi
debug_display_limit = 1100 ;must be same in delphi
ddsymbols_limit_auto = 1000h
ddsymbols_limit_name = 1000h
symbols_limit_auto = 10000h ;adjust as needed to accommodate auto symbols
symbols_limit_level = 400h ;adjust as needed to accommodate level symbols
symbols_limit_param = 400h
symbols_limit_main = 40000h
symbols_limit_local = 8000h
symbols_limit_inline = 8000h
struct_id_limit = 1000h ;cannot exceed $1000
struct_def_limit = 8000h
symbol_limit = 30
pubcon_list_limit = 10000h
block_nest_limit = 16
block_stack_limit = 1000h
if_limit = 256
case_limit = 256
case_fast_limit = 256 ;cannot exceed 256
params_limit = 127
results_limit = 15
locals_limit = 10000h + params_limit*4 + results_limit*4
subs_limit = 1024
objs_limit = 1024
distiller_limit = 10000h
inline_limit = 120h
mrecv_reg = 1D2h
msend_reg = 1D3h
pasm_regs = 1D8h
inline_locals = 1E0h
debug_size_limit = 2A00h
clkfreq_address = 044h
;
;
; Macro for assigning ascending values
;
macro count0 count_name
count_name = 0
counter = 1
endm
macro countn count_name,n
count_name = n
counter = n+1
endm
macro count count_name
count_name = counter
counter = counter+1
endm
macro counti count_name,n
count_name = counter
counter = counter+n
endm
macro count2n count_name,n
count_name = n
counter = n+2
endm
macro count2 count_name
count_name = counter
counter = counter+2
endm
;
;
; Macro for non-word symbol checks
;
macro syms s,t,v
local no
cmp eax,s
jne no
mov eax,t
mov ebx,v
ret
no:
endm
;
;
; Macros for automatic symbols
;
macro sym t,v,s
db s,0
dd v
db t
endm
macro syml t,v,l,s
db s,0
dd v shl l
db t
endm
;
;
; Assembly operands
;
count0 operand_ds
count operand_bitx
count operand_testb
count operand_du
count operand_duii
count operand_duiz
count operand_ds3set
count operand_ds3get
count operand_ds2set
count operand_ds2get
count operand_ds1set
count operand_ds1get
count operand_dsj
count operand_ls
count operand_lsj
count operand_dsp
count operand_lsp
count operand_rep
count operand_jmp
count operand_call
count operand_calld
count operand_jpoll
count operand_loc
count operand_aug
count operand_d
count operand_de
count operand_l
count operand_cz
count operand_pollwait
count operand_getbrk
count operand_pinop
count operand_testp
count operand_pushpop
count operand_xlat
count operand_akpin
count operand_asmclk
count operand_nop
count operand_debug
;
;
; Assembly push/pops
;
count0 pp_pusha ; PUSHA D/# --> WRLONG D/#,PTRA++
count pp_pushb ; PUSHB D/# --> WRLONG D/#,PTRB++
count pp_popa ; POPA D --> RDLONG D,--PTRA
count pp_popb ; POPB D --> RDLONG D,--PTRB
;
;
; Assembly codes
;
macro asmcode symbol,v1,v2,v3
symbol = (v3 shl 11) + (v2 shl 9) + v1
endm
asmcode ac_ror, 000000000b,11b,operand_ds ; ROR D,S/#
asmcode ac_rol, 000000100b,11b,operand_ds ; ROL D,S/#
asmcode ac_shr, 000001000b,11b,operand_ds ; SHR D,S/#
asmcode ac_shl, 000001100b,11b,operand_ds ; SHL D,S/#
asmcode ac_rcr, 000010000b,11b,operand_ds ; RCR D,S/#
asmcode ac_rcl, 000010100b,11b,operand_ds ; RCL D,S/#
asmcode ac_sar, 000011000b,11b,operand_ds ; SAR D,S/#
asmcode ac_sal, 000011100b,11b,operand_ds ; SAL D,S/#
asmcode ac_add, 000100000b,11b,operand_ds ; ADD D,S/#
asmcode ac_addx, 000100100b,11b,operand_ds ; ADDX D,S/#
asmcode ac_adds, 000101000b,11b,operand_ds ; ADDS D,S/#
asmcode ac_addsx, 000101100b,11b,operand_ds ; ADDSX D,S/#
asmcode ac_sub, 000110000b,11b,operand_ds ; SUB D,S/#
asmcode ac_subx, 000110100b,11b,operand_ds ; SUBX D,S/#
asmcode ac_subs, 000111000b,11b,operand_ds ; SUBS D,S/#
asmcode ac_subsx, 000111100b,11b,operand_ds ; SUBSX D,S/#
asmcode ac_cmp, 001000000b,11b,operand_ds ; CMP D,S/#
asmcode ac_cmpx, 001000100b,11b,operand_ds ; CMPX D,S/#
asmcode ac_cmps, 001001000b,11b,operand_ds ; CMPS D,S/#
asmcode ac_cmpsx, 001001100b,11b,operand_ds ; CMPSX D,S/#
asmcode ac_cmpr, 001010000b,11b,operand_ds ; CMPR D,S/#
asmcode ac_cmpm, 001010100b,11b,operand_ds ; CMPM D,S/#
asmcode ac_subr, 001011000b,11b,operand_ds ; SUBR D,S/#
asmcode ac_cmpsub, 001011100b,11b,operand_ds ; CMPSUB D,S/#
asmcode ac_fge, 001100000b,11b,operand_ds ; FGE D,S/#
asmcode ac_fle, 001100100b,11b,operand_ds ; FLE D,S/#
asmcode ac_fges, 001101000b,11b,operand_ds ; FGES D,S/#
asmcode ac_fles, 001101100b,11b,operand_ds ; FLES D,S/#
asmcode ac_sumc, 001110000b,11b,operand_ds ; SUMC D,S/#
asmcode ac_sumnc, 001110100b,11b,operand_ds ; SUMNC D,S/#
asmcode ac_sumz, 001111000b,11b,operand_ds ; SUMZ D,S/#
asmcode ac_sumnz, 001111100b,11b,operand_ds ; SUMNZ D,S/#
asmcode ac_bitl, 010000000b,00b,operand_bitx ; BITL D,S/#
asmcode ac_bith, 010000100b,00b,operand_bitx ; BITH D,S/#
asmcode ac_bitc, 010001000b,00b,operand_bitx ; BITC D,S/#
asmcode ac_bitnc, 010001100b,00b,operand_bitx ; BITNC D,S/#
asmcode ac_bitz, 010010000b,00b,operand_bitx ; BITZ D,S/#
asmcode ac_bitnz, 010010100b,00b,operand_bitx ; BITNZ D,S/#
asmcode ac_bitrnd, 010011000b,00b,operand_bitx ; BITRND D,S/#
asmcode ac_bitnot, 010011100b,00b,operand_bitx ; BITNOT D,S/#
asmcode ac_testb, 010000000b,00b,operand_testb ; TESTB D,S/#
asmcode ac_testbn, 010000100b,00b,operand_testb ; TESTBN D,S/#
asmcode ac_and, 010100000b,11b,operand_ds ; AND D,S/#
asmcode ac_andn, 010100100b,11b,operand_ds ; ANDN D,S/#
asmcode ac_or, 010101000b,11b,operand_ds ; OR D,S/#
asmcode ac_xor, 010101100b,11b,operand_ds ; XOR D,S/#
asmcode ac_muxc, 010110000b,11b,operand_ds ; MUXC D,S/#
asmcode ac_muxnc, 010110100b,11b,operand_ds ; MUXNC D,S/#
asmcode ac_muxz, 010111000b,11b,operand_ds ; MUXZ D,S/#
asmcode ac_muxnz, 010111100b,11b,operand_ds ; MUXNZ D,S/#
asmcode ac_mov, 011000000b,11b,operand_ds ; MOV D,S/#
asmcode ac_not, 011000100b,11b,operand_du ; NOT D{,S/#}
asmcode ac_abs, 011001000b,11b,operand_du ; ABS D{,S/#}
asmcode ac_neg, 011001100b,11b,operand_du ; NEG D{,S/#}
asmcode ac_negc, 011010000b,11b,operand_du ; NEGC D{,S/#}
asmcode ac_negnc, 011010100b,11b,operand_du ; NEGNC D{,S/#}
asmcode ac_negz, 011011000b,11b,operand_du ; NEGZ D{,S/#}
asmcode ac_negnz, 011011100b,11b,operand_du ; NEGNZ D{,S/#}
asmcode ac_incmod, 011100000b,11b,operand_ds ; INCMOD D,S/#
asmcode ac_decmod, 011100100b,11b,operand_ds ; DECMOD D,S/#
asmcode ac_zerox, 011101000b,11b,operand_ds ; ZEROX D,S/#
asmcode ac_signx, 011101100b,11b,operand_ds ; SIGNX D,S/#
asmcode ac_encod, 011110000b,11b,operand_du ; ENCOD D{,S/#}
asmcode ac_ones, 011110100b,11b,operand_du ; ONES D{,S/#}
asmcode ac_test, 011111000b,11b,operand_du ; TEST D,{S/#}
asmcode ac_testn, 011111100b,11b,operand_ds ; TESTN D,S/#
asmcode ac_setnib, 100000000b,00b,operand_ds3set ; SETNIB {D,}S/#{,#0..7}
asmcode ac_getnib, 100001000b,00b,operand_ds3get ; GETNIB D{,S/#,#0..7}
asmcode ac_rolnib, 100010000b,00b,operand_ds3get ; ROLNIB D{,S/#,#0..7}
asmcode ac_setbyte, 100011000b,00b,operand_ds2set ; SETBYTE {D,}S/#{,#0..3}
asmcode ac_getbyte, 100011100b,00b,operand_ds2get ; GETBYTE D{,S/#,#0..3}
asmcode ac_rolbyte, 100100000b,00b,operand_ds2get ; ROLBYTE D{,S/#,#0..3}
asmcode ac_setword, 100100100b,00b,operand_ds1set ; SETWORD {D,}S/#{,#0..1}
asmcode ac_getword, 100100110b,00b,operand_ds1get ; GETWORD D{,S/#,#0..1}
asmcode ac_rolword, 100101000b,00b,operand_ds1get ; ROLWORD D{,S/#,#0..1}
asmcode ac_altsn, 100101010b,00b,operand_duiz ; ALTSN D{,S/#}
asmcode ac_altgn, 100101011b,00b,operand_duiz ; ALTGN D{,S/#}
asmcode ac_altsb, 100101100b,00b,operand_duiz ; ALTSB D{,S/#}
asmcode ac_altgb, 100101101b,00b,operand_duiz ; ALTGB D{,S/#}
asmcode ac_altsw, 100101110b,00b,operand_duiz ; ALTSW D{,S/#}
asmcode ac_altgw, 100101111b,00b,operand_duiz ; ALTGW D{,S/#}
asmcode ac_altr, 100110000b,00b,operand_duiz ; ALTR D{,S/#}
asmcode ac_altd, 100110001b,00b,operand_duiz ; ALTD D{,S/#}
asmcode ac_alts, 100110010b,00b,operand_duiz ; ALTS D{,S/#}
asmcode ac_altb, 100110011b,00b,operand_duiz ; ALTB D{,S/#}
asmcode ac_alti, 100110100b,00b,operand_duii ; ALTI D{,S/#}
asmcode ac_setr, 100110101b,00b,operand_ds ; SETR D,S/#
asmcode ac_setd, 100110110b,00b,operand_ds ; SETD D,S/#
asmcode ac_sets, 100110111b,00b,operand_ds ; SETS D,S/#
asmcode ac_decod, 100111000b,00b,operand_du ; DECOD D{,S/#}
asmcode ac_bmask, 100111001b,00b,operand_du ; BMASK D{,S/#}
asmcode ac_crcbit, 100111010b,00b,operand_ds ; CRCBIT D,S/#
asmcode ac_crcnib, 100111011b,00b,operand_ds ; CRCNIB D,S/#
asmcode ac_muxnits, 100111100b,00b,operand_ds ; MUXNITS D,S/#
asmcode ac_muxnibs, 100111101b,00b,operand_ds ; MUXNIBS D,S/#
asmcode ac_muxq, 100111110b,00b,operand_ds ; MUXQ D,S/#
asmcode ac_movbyts, 100111111b,00b,operand_ds ; MOVBYTS D,S/#
asmcode ac_mul, 101000000b,01b,operand_ds ; MUL D,S/#
asmcode ac_muls, 101000010b,01b,operand_ds ; MULS D,S/#
asmcode ac_sca, 101000100b,01b,operand_ds ; SCA D,S/#
asmcode ac_scas, 101000110b,01b,operand_ds ; SCAS D,S/#
asmcode ac_addpix, 101001000b,00b,operand_ds ; ADDPIX D,S/#
asmcode ac_mulpix, 101001001b,00b,operand_ds ; MULPIX D,S/#
asmcode ac_blnpix, 101001010b,00b,operand_ds ; BLNPIX D,S/#
asmcode ac_mixpix, 101001011b,00b,operand_ds ; MIXPIX D,S/#
asmcode ac_addct1, 101001100b,00b,operand_ds ; ADDCT1 D,S/#
asmcode ac_addct2, 101001101b,00b,operand_ds ; ADDCT2 D,S/#
asmcode ac_addct3, 101001110b,00b,operand_ds ; ADDCT3 D,S/#
asmcode ac_wmlong, 101001111b,00b,operand_dsp ; WMLONG_ D,S/#/PTRx
asmcode ac_rqpin, 101010000b,10b,operand_ds ; RQPIN D,S/#
asmcode ac_rdpin, 101010001b,10b,operand_ds ; RDPIN D,S/#
asmcode ac_rdlut, 101010100b,11b,operand_dsp ; RDLUT D,S/#/PTRx
asmcode ac_rdbyte, 101011000b,11b,operand_dsp ; RDBYTE D,S/#/PTRx
asmcode ac_rdword, 101011100b,11b,operand_dsp ; RDWORD D,S/#/PTRx
asmcode ac_rdlong, 101100000b,11b,operand_dsp ; RDLONG D,S/#/PTRx
asmcode ac_callpa, 101101000b,00b,operand_lsj ; CALLPA D/#,S/#
asmcode ac_callpb, 101101010b,00b,operand_lsj ; CALLPB D/#,S/#
asmcode ac_djz, 101101100b,00b,operand_dsj ; DJZ D,S/#
asmcode ac_djnz, 101101101b,00b,operand_dsj ; DJNZ D,S/#
asmcode ac_djf, 101101110b,00b,operand_dsj ; DJF D,S/#
asmcode ac_djnf, 101101111b,00b,operand_dsj ; DJNF D,S/#
asmcode ac_ijz, 101110000b,00b,operand_dsj ; IJZ D,S/#
asmcode ac_ijnz, 101110001b,00b,operand_dsj ; IJNZ D,S/#
asmcode ac_tjz, 101110010b,00b,operand_dsj ; TJZ D,S/#
asmcode ac_tjnz, 101110011b,00b,operand_dsj ; TJNZ D,S/#
asmcode ac_tjf, 101110100b,00b,operand_dsj ; TJF D,S/#
asmcode ac_tjnf, 101110101b,00b,operand_dsj ; TJNF D,S/#
asmcode ac_tjs, 101110110b,00b,operand_dsj ; TJS D,S/#
asmcode ac_tjns, 101110111b,00b,operand_dsj ; TJNS D,S/#
asmcode ac_tjv, 101111000b,00b,operand_dsj ; TJV D,S/#
asmcode ac_jint, 000000000b,00b,operand_jpoll ; JINT S/#
asmcode ac_jct1, 000000001b,00b,operand_jpoll ; JCT1 S/#
asmcode ac_jct2, 000000010b,00b,operand_jpoll ; JCT2 S/#
asmcode ac_jct3, 000000011b,00b,operand_jpoll ; JCT3 S/#
asmcode ac_jse1, 000000100b,00b,operand_jpoll ; JSE1 S/#
asmcode ac_jse2, 000000101b,00b,operand_jpoll ; JSE2 S/#
asmcode ac_jse3, 000000110b,00b,operand_jpoll ; JSE3 S/#
asmcode ac_jse4, 000000111b,00b,operand_jpoll ; JSE4 S/#
asmcode ac_jpat, 000001000b,00b,operand_jpoll ; JPAT S/#
asmcode ac_jfbw, 000001001b,00b,operand_jpoll ; JFBW S/#
asmcode ac_jxmt, 000001010b,00b,operand_jpoll ; JXMT S/#
asmcode ac_jxfi, 000001011b,00b,operand_jpoll ; JXFI S/#
asmcode ac_jxro, 000001100b,00b,operand_jpoll ; JXRO S/#
asmcode ac_jxrl, 000001101b,00b,operand_jpoll ; JXRL S/#
asmcode ac_jatn, 000001110b,00b,operand_jpoll ; JATN S/#
asmcode ac_jqmt, 000001111b,00b,operand_jpoll ; JQMT S/#
asmcode ac_jnint, 000010000b,00b,operand_jpoll ; JNINT S/#
asmcode ac_jnct1, 000010001b,00b,operand_jpoll ; JNCT1 S/#
asmcode ac_jnct2, 000010010b,00b,operand_jpoll ; JNCT2 S/#
asmcode ac_jnct3, 000010011b,00b,operand_jpoll ; JNCT3 S/#
asmcode ac_jnse1, 000010100b,00b,operand_jpoll ; JNSE1 S/#
asmcode ac_jnse2, 000010101b,00b,operand_jpoll ; JNSE2 S/#
asmcode ac_jnse3, 000010110b,00b,operand_jpoll ; JNSE3 S/#
asmcode ac_jnse4, 000010111b,00b,operand_jpoll ; JNSE4 S/#
asmcode ac_jnpat, 000011000b,00b,operand_jpoll ; JNPAT S/#
asmcode ac_jnfbw, 000011001b,00b,operand_jpoll ; JNFBW S/#
asmcode ac_jnxmt, 000011010b,00b,operand_jpoll ; JNXMT S/#
asmcode ac_jnxfi, 000011011b,00b,operand_jpoll ; JNXFI S/#
asmcode ac_jnxro, 000011100b,00b,operand_jpoll ; JNXRO S/#
asmcode ac_jnxrl, 000011101b,00b,operand_jpoll ; JNXRL S/#
asmcode ac_jnatn, 000011110b,00b,operand_jpoll ; JNATN S/#
asmcode ac_jnqmt, 000011111b,00b,operand_jpoll ; JNQMT S/#
;asmcode ac_empty, 101111010b,00b,operand_ls ; <empty> D/#,S/#
;asmcode ac_empty, 101111100b,00b,operand_ls ; <empty> D/#,S/#
asmcode ac_setpat, 101111110b,00b,operand_ls ; SETPAT D/#,S/#
asmcode ac_wrpin, 110000000b,00b,operand_ls ; WRPIN D/#,S/#
asmcode ac_wxpin, 110000010b,00b,operand_ls ; WXPIN D/#,S/#
asmcode ac_wypin, 110000100b,00b,operand_ls ; WYPIN D/#,S/#
asmcode ac_wrlut, 110000110b,00b,operand_lsp ; WRLUT D/#,S/#/PTRx
asmcode ac_wrbyte, 110001000b,00b,operand_lsp ; WRBYTE D/#,S/#/PTRx
asmcode ac_wrword, 110001010b,00b,operand_lsp ; WRWORD D/#,S/#/PTRx
asmcode ac_wrlong, 110001100b,00b,operand_lsp ; WRLONG D/#,S/#/PTRx
asmcode ac_rdfast, 110001110b,00b,operand_ls ; RDFAST D/#,S/#
asmcode ac_wrfast, 110010000b,00b,operand_ls ; WRFAST D/#,S/#
asmcode ac_fblock, 110010010b,00b,operand_ls ; FBLOCK D/#,S/#
asmcode ac_xinit, 110010100b,00b,operand_ls ; XINIT D/#,S/#
asmcode ac_xzero, 110010110b,00b,operand_ls ; XZERO D/#,S/#
asmcode ac_xcont, 110011000b,00b,operand_ls ; XCONT D/#,S/#
asmcode ac_rep, 110011010b,00b,operand_rep ; REP D/#/@,S/#
asmcode ac_coginit, 110011100b,10b,operand_ls ; COGINIT D/#,S/#
asmcode ac_qmul, 110100000b,00b,operand_ls ; QMUL D/#,S/#
asmcode ac_qdiv, 110100010b,00b,operand_ls ; QDIV D/#,S/#
asmcode ac_qfrac, 110100100b,00b,operand_ls ; QFRAC D/#,S/#
asmcode ac_qsqrt, 110100110b,00b,operand_ls ; QSQRT D/#,S/#
asmcode ac_qrotate, 110101000b,00b,operand_ls ; QROTATE D/#,S/#
asmcode ac_qvector, 110101010b,00b,operand_ls ; QVECTOR D/#,S/#
asmcode ac_hubset, 000000000b,00b,operand_l ; HUBSET D/#
asmcode ac_cogid, 000000001b,10b,operand_l ; COGID D/#
asmcode ac_cogstop, 000000011b,00b,operand_l ; COGSTOP D/#
asmcode ac_locknew, 000000100b,10b,operand_d ; LOCKNEW D
asmcode ac_lockret, 000000101b,00b,operand_l ; LOCKRET D/#
asmcode ac_locktry, 000000110b,10b,operand_l ; LOCKTRY D/#
asmcode ac_lockrel, 000000111b,10b,operand_l ; LOCKREL D/#
asmcode ac_qlog, 000001110b,00b,operand_l ; QLOG D/#
asmcode ac_qexp, 000001111b,00b,operand_l ; QEXP D/#
asmcode ac_rfbyte, 000010000b,11b,operand_d ; RFBYTE D
asmcode ac_rfword, 000010001b,11b,operand_d ; RFWORD D
asmcode ac_rflong, 000010010b,11b,operand_d ; RFLONG D
asmcode ac_rfvar, 000010011b,11b,operand_d ; RFVAR D
asmcode ac_rfvars, 000010100b,11b,operand_d ; RFVARS D
asmcode ac_wfbyte, 000010101b,00b,operand_l ; WFBYTE D/#
asmcode ac_wfword, 000010110b,00b,operand_l ; WFWORD D/#
asmcode ac_wflong, 000010111b,00b,operand_l ; WFLONG D/#
asmcode ac_getqx, 000011000b,11b,operand_d ; GETQX D
asmcode ac_getqy, 000011001b,11b,operand_d ; GETQY D
asmcode ac_getct, 000011010b,10b,operand_d ; GETCT D
asmcode ac_getrnd, 000011011b,11b,operand_de ; GETRND D
asmcode ac_setdacs, 000011100b,00b,operand_l ; SETDACS D/#
asmcode ac_setxfrq, 000011101b,00b,operand_l ; SETXFRQ D/#
asmcode ac_getxacc, 000011110b,00b,operand_d ; GETXACC D
asmcode ac_waitx, 000011111b,11b,operand_l ; WAITX D/#
asmcode ac_setse1, 000100000b,00b,operand_l ; SETSE1 D/#
asmcode ac_setse2, 000100001b,00b,operand_l ; SETSE2 D/#
asmcode ac_setse3, 000100010b,00b,operand_l ; SETSE3 D/#
asmcode ac_setse4, 000100011b,00b,operand_l ; SETSE4 D/#
asmcode ac_pollint, 000000000b,11b,operand_pollwait ; POLLINT
asmcode ac_pollct1, 000000001b,11b,operand_pollwait ; POLLCT1
asmcode ac_pollct2, 000000010b,11b,operand_pollwait ; POLLCT2
asmcode ac_pollct3, 000000011b,11b,operand_pollwait ; POLLCT3
asmcode ac_pollse1, 000000100b,11b,operand_pollwait ; POLLSE1
asmcode ac_pollse2, 000000101b,11b,operand_pollwait ; POLLSE2
asmcode ac_pollse3, 000000110b,11b,operand_pollwait ; POLLSE3
asmcode ac_pollse4, 000000111b,11b,operand_pollwait ; POLLSE4
asmcode ac_pollpat, 000001000b,11b,operand_pollwait ; POLLPAT
asmcode ac_pollfbw, 000001001b,11b,operand_pollwait ; POLLFBW
asmcode ac_pollxmt, 000001010b,11b,operand_pollwait ; POLLXMT
asmcode ac_pollxfi, 000001011b,11b,operand_pollwait ; POLLXFI
asmcode ac_pollxro, 000001100b,11b,operand_pollwait ; POLLXRO
asmcode ac_pollxrl, 000001101b,11b,operand_pollwait ; POLLXRL
asmcode ac_pollatn, 000001110b,11b,operand_pollwait ; POLLATN
asmcode ac_pollqmt, 000001111b,11b,operand_pollwait ; POLLQMT
asmcode ac_waitint, 000010000b,11b,operand_pollwait ; WAITINT
asmcode ac_waitct1, 000010001b,11b,operand_pollwait ; WAITCT1
asmcode ac_waitct2, 000010010b,11b,operand_pollwait ; WAITCT2
asmcode ac_waitct3, 000010011b,11b,operand_pollwait ; WAITCT3
asmcode ac_waitse1, 000010100b,11b,operand_pollwait ; WAITSE1
asmcode ac_waitse2, 000010101b,11b,operand_pollwait ; WAITSE2
asmcode ac_waitse3, 000010110b,11b,operand_pollwait ; WAITSE3
asmcode ac_waitse4, 000010111b,11b,operand_pollwait ; WAITSE4
asmcode ac_waitpat, 000011000b,11b,operand_pollwait ; WAITPAT
asmcode ac_waitfbw, 000011001b,11b,operand_pollwait ; WAITFBW
asmcode ac_waitxmt, 000011010b,11b,operand_pollwait ; WAITXMT
asmcode ac_waitxfi, 000011011b,11b,operand_pollwait ; WAITXFI
asmcode ac_waitxro, 000011100b,11b,operand_pollwait ; WAITXRO
asmcode ac_waitxrl, 000011101b,11b,operand_pollwait ; WAITXRL
asmcode ac_waitatn, 000011110b,11b,operand_pollwait ; WAITATN
asmcode ac_allowi, 000100000b,00b,operand_pollwait ; ALLOWI
asmcode ac_stalli, 000100001b,00b,operand_pollwait ; STALLI
asmcode ac_trgint1, 000100010b,00b,operand_pollwait ; TRGINT1
asmcode ac_trgint2, 000100011b,00b,operand_pollwait ; TRGINT2
asmcode ac_trgint3, 000100100b,00b,operand_pollwait ; TRGINT3
asmcode ac_nixint1, 000100101b,00b,operand_pollwait ; NIXINT1
asmcode ac_nixint2, 000100110b,00b,operand_pollwait ; NIXINT2
asmcode ac_nixint3, 000100111b,00b,operand_pollwait ; NIXINT3
asmcode ac_setint1, 000100101b,00b,operand_l ; SETINT1 D/#
asmcode ac_setint2, 000100110b,00b,operand_l ; SETINT2 D/#
asmcode ac_setint3, 000100111b,00b,operand_l ; SETINT3 D/#
asmcode ac_setq, 000101000b,00b,operand_l ; SETQ D/#
asmcode ac_setq2, 000101001b,00b,operand_l ; SETQ2 D/#
asmcode ac_push, 000101010b,00b,operand_l ; PUSH D/#
asmcode ac_pop, 000101011b,11b,operand_d ; POP D
asmcode ac_jmprel, 000110000b,00b,operand_l ; JMPREL D/#
asmcode ac_skip, 000110001b,00b,operand_l ; SKIP D/#
asmcode ac_skipf, 000110010b,00b,operand_l ; SKIPF D/#
asmcode ac_execf, 000110011b,00b,operand_l ; EXECF D/#
asmcode ac_getptr, 000110100b,00b,operand_d ; GETPTR D
asmcode ac_getbrk, 000110101b,11b,operand_getbrk ; GETBRK D
asmcode ac_cogbrk, 000110101b,00b,operand_l ; COGBRK D/#
asmcode ac_brk, 000110110b,00b,operand_l ; BRK D/#
asmcode ac_setluts, 000110111b,00b,operand_l ; SETLUTS D/#
asmcode ac_setcy, 000111000b,00b,operand_l ; SETCY D/#
asmcode ac_setci, 000111001b,00b,operand_l ; SETCI D/#
asmcode ac_setcq, 000111010b,00b,operand_l ; SETCQ D/#
asmcode ac_setcfrq, 000111011b,00b,operand_l ; SETCFRQ D/#
asmcode ac_setcmod, 000111100b,00b,operand_l ; SETCMOD D/#
asmcode ac_setpiv, 000111101b,00b,operand_l ; SETPIV D/#
asmcode ac_setpix, 000111110b,00b,operand_l ; SETPIX D/#
asmcode ac_cogatn, 000111111b,00b,operand_l ; COGATN D/#
asmcode ac_testp, 001000000b,00b,operand_testp ; TESTP D/#
asmcode ac_testpn, 001000001b,00b,operand_testp ; TESTPN D/#
asmcode ac_dirl, 001000000b,00b,operand_pinop ; DIRL D/#
asmcode ac_dirh, 001000001b,00b,operand_pinop ; DIRH D/#
asmcode ac_dirc, 001000010b,00b,operand_pinop ; DIRC D/#
asmcode ac_dirnc, 001000011b,00b,operand_pinop ; DIRNC D/#
asmcode ac_dirz, 001000100b,00b,operand_pinop ; DIRZ D/#
asmcode ac_dirnz, 001000101b,00b,operand_pinop ; DIRNZ D/#
asmcode ac_dirrnd, 001000110b,00b,operand_pinop ; DIRRND D/#
asmcode ac_dirnot, 001000111b,00b,operand_pinop ; DIRNOT D/#
asmcode ac_outl, 001001000b,00b,operand_pinop ; OUTL D/#
asmcode ac_outh, 001001001b,00b,operand_pinop ; OUTH D/#
asmcode ac_outc, 001001010b,00b,operand_pinop ; OUTC D/#
asmcode ac_outnc, 001001011b,00b,operand_pinop ; OUTNC D/#
asmcode ac_outz, 001001100b,00b,operand_pinop ; OUTZ D/#
asmcode ac_outnz, 001001101b,00b,operand_pinop ; OUTNZ D/#
asmcode ac_outrnd, 001001110b,00b,operand_pinop ; OUTRND D/#
asmcode ac_outnot, 001001111b,00b,operand_pinop ; OUTNOT D/#
asmcode ac_fltl, 001010000b,00b,operand_pinop ; FLTL D/#
asmcode ac_flth, 001010001b,00b,operand_pinop ; FLTH D/#
asmcode ac_fltc, 001010010b,00b,operand_pinop ; FLTC D/#
asmcode ac_fltnc, 001010011b,00b,operand_pinop ; FLTNC D/#
asmcode ac_fltz, 001010100b,00b,operand_pinop ; FLTZ D/#
asmcode ac_fltnz, 001010101b,00b,operand_pinop ; FLTNZ D/#
asmcode ac_fltrnd, 001010110b,00b,operand_pinop ; FLTRND D/#
asmcode ac_fltnot, 001010111b,00b,operand_pinop ; FLTNOT D/#
asmcode ac_drvl, 001011000b,00b,operand_pinop ; DRVL D/#
asmcode ac_drvh, 001011001b,00b,operand_pinop ; DRVH D/#
asmcode ac_drvc, 001011010b,00b,operand_pinop ; DRVC D/#
asmcode ac_drvnc, 001011011b,00b,operand_pinop ; DRVNC D/#
asmcode ac_drvz, 001011100b,00b,operand_pinop ; DRVZ D/#
asmcode ac_drvnz, 001011101b,00b,operand_pinop ; DRVNZ D/#
asmcode ac_drvrnd, 001011110b,00b,operand_pinop ; DRVRND D/#
asmcode ac_drvnot, 001011111b,00b,operand_pinop ; DRVNOT D/#
asmcode ac_splitb, 001100000b,00b,operand_d ; SPLITB D
asmcode ac_mergeb, 001100001b,00b,operand_d ; MERGEB D
asmcode ac_splitw, 001100010b,00b,operand_d ; SPLITW D
asmcode ac_mergew, 001100011b,00b,operand_d ; MERGEW D
asmcode ac_seussf, 001100100b,00b,operand_d ; SEUSSF D
asmcode ac_seussr, 001100101b,00b,operand_d ; SEUSSR D
asmcode ac_rgbsqz, 001100110b,00b,operand_d ; RGBSQZ D
asmcode ac_rgbexp, 001100111b,00b,operand_d ; RGBEXP D
asmcode ac_xoro32, 001101000b,00b,operand_d ; XORO32 D
asmcode ac_rev, 001101001b,00b,operand_d ; REV D
asmcode ac_rczr, 001101010b,11b,operand_d ; RCZR D
asmcode ac_rczl, 001101011b,11b,operand_d ; RCZL D
asmcode ac_wrc, 001101100b,00b,operand_d ; WRC D
asmcode ac_wrnc, 001101101b,00b,operand_d ; WRNC D
asmcode ac_wrz, 001101110b,00b,operand_d ; WRZ D
asmcode ac_wrnz, 001101111b,00b,operand_d ; WRNZ D
asmcode ac_modcz, 001101111b,11b,operand_cz ; MODCZ c,z
asmcode ac_modc, 001101111b,10b,operand_cz ; MODC c
asmcode ac_modz, 001101111b,01b,operand_cz ; MODZ z
asmcode ac_setscp, 001110000b,00b,operand_l ; SETSCP D/#
asmcode ac_getscp, 001110001b,00b,operand_d ; GETSCP D
asmcode ac_jmp, 110110000b,00b,operand_jmp ; JMP # <or> D
asmcode ac_call, 110110100b,00b,operand_call ; CALL # <or> D
asmcode ac_calla, 110111000b,00b,operand_call ; CALLA # <or> D
asmcode ac_callb, 110111100b,00b,operand_call ; CALLB # <or> D
asmcode ac_calld, 111000000b,00b,operand_calld ; CALLD reg,# / D,S
asmcode ac_loc, 111010000b,00b,operand_loc ; LOC reg,#
asmcode ac_augs, 111100000b,00b,operand_aug ; AUGS #
asmcode ac_augd, 111110000b,00b,operand_aug ; AUGD #
asmcode ac_pusha, pp_pusha, 00b,operand_pushpop ; PUSHA D/# alias instructions
asmcode ac_pushb, pp_pushb, 00b,operand_pushpop ; PUSHB D/#
asmcode ac_popa, pp_popa, 11b,operand_pushpop ; POPA D
asmcode ac_popb, pp_popb, 11b,operand_pushpop ; POPB D
asmcode ac_ret, 0, 11b,operand_xlat ; RET
asmcode ac_reta, 1, 11b,operand_xlat ; RETA
asmcode ac_retb, 2, 11b,operand_xlat ; RETB
asmcode ac_reti0, 3, 00b,operand_xlat ; RETI0
asmcode ac_reti1, 4, 00b,operand_xlat ; RETI1
asmcode ac_reti2, 5, 00b,operand_xlat ; RETI2
asmcode ac_reti3, 6, 00b,operand_xlat ; RETI3
asmcode ac_resi0, 7, 00b,operand_xlat ; RESI0
asmcode ac_resi1, 8, 00b,operand_xlat ; RESI1
asmcode ac_resi2, 9, 00b,operand_xlat ; RESI2
asmcode ac_resi3, 10, 00b,operand_xlat ; RESI3
asmcode ac_xstop, 11, 00b,operand_xlat ; XSTOP
asmcode ac_akpin, 0, 00b,operand_akpin ; AKPIN S/#
asmcode ac_asmclk, 0, 00b,operand_asmclk ; ASMCLK
asmcode ac_nop, 000000000b,00b,operand_nop ; NOP
asmcode ac_debug, 000110110b,00b,operand_debug ; DEBUG()
;
;
; Types
;
count0 type_undefined ; (undefined symbol, must be 0)
count type_left ; (
count type_right ; )
count type_leftb ; [
count type_rightb ; ]
count type_comma ; ,
count type_equal ; =
count type_pound ; #
count type_colon ; :
count type_back ; \
count type_under ; _
count type_tick ; `
count type_dollar ; $ (without a hex digit following)
count type_percent ; % (without a bin digit or quote following)
count type_dot ; .
count type_dotdot ; ..
count type_at ; @
count type_atat ; @@
count type_upat ; ^@
count type_til ; ~
count type_tiltil ; ~~
count type_inc ; ++
count type_dec ; --
count type_rnd ; ??
count type_assign ; :=
count type_swap ; :=:
count type_op ; !, -, ABS, ENC, etc.
count type_float ; FLOAT
count type_round ; ROUND
count type_trunc ; TRUNC
count type_constr ; STRING
count type_conlstr ; LSTRING
count type_block ; CON, VAR, DAT, OBJ, PUB, PRI
count type_field ; FIELD
count type_struct ; STRUCT
count type_sizeof ; SIZEOF
count type_size ; BYTE, WORD, LONG
count type_size_fit ; BYTEFIT, WORDFIT
count type_fvar ; FVAR, FVARS
count type_file ; FILE
count type_if ; IF
count type_ifnot ; IFNOT
count type_elseif ; ELSEIF
count type_elseifnot ; ELSEIFNOT
count type_else ; ELSE
count type_case ; CASE
count type_case_fast ; CASE_FAST
count type_other ; OTHER
count type_repeat ; REPEAT
count type_repeat_var ; REPEAT var - different QUIT method
count type_repeat_count ; REPEAT count - different QUIT method
count type_repeat_count_var ; REPEAT count WITH var - different QUIT method
count type_while ; WHILE
count type_until ; UNTIL
count type_from ; FROM
count type_to ; TO
count type_step ; STEP
count type_with ; WITH
count type_i_next_quit ; NEXT/QUIT
count type_i_return ; RETURN
count type_i_abort ; ABORT
count type_i_look ; LOOKUPZ, LOOKUP, LOOKDOWNZ, LOOKDOWN
count type_i_cogspin ; COGSPIN
count type_i_flex ; HUBSET, COGINIT, COGSTOP...
count type_recv ; RECV
count type_send ; SEND
count type_debug ; DEBUG
count type_debug_cmd ; DEBUG commands
count type_asm_end ; END
count type_asm_dir ; ORGH, ORG, ORGF, RES, FIT
count type_asm_cond ; IF_C, IF_Z, IF_NC, etc
count type_asm_inst ; RDBYTE, RDWORD, RDLONG, etc.
count type_asm_effect ; WC, WZ, WCZ
count type_asm_effect2 ; ANDC, ANDZ, ORC, ORZ, XORC, XORZ
count type_reg ; REG
count type_con_int ; user constant integer (must be followed by type_con_float)
count type_con_float ; user constant float
count type_con_struct ; user data structure
count type_register ; user register long
count type_loc_byte ;L0 user loc byte (L0..L11 must be contiguous)
count type_loc_word ;L1 user loc word
count type_loc_long ;L2 user loc long
count type_loc_struct ;L3 user loc struct
count type_loc_byte_ptr ;L4 user loc byte ptr
count type_loc_word_ptr ;L5 user loc word ptr
count type_loc_long_ptr ;L6 user loc long ptr
count type_loc_struct_ptr ;L7 user loc struct ptr
count type_loc_byte_ptr_val ;L8 internal loc byte ptr val
count type_loc_word_ptr_val ;L9 internal loc word ptr val
count type_loc_long_ptr_val ;L10 internal loc long ptr val
count type_loc_struct_ptr_val ;L11 internal loc struct ptr val
count type_var_byte ;V0 user var byte (V0..V11 must be contiguous)
count type_var_word ;V1 user var word
count type_var_long ;V2 user var long
count type_var_struct ;V3 user var struct
count type_var_byte_ptr ;V4 user var byte ptr
count type_var_word_ptr ;V5 user var word ptr
count type_var_long_ptr ;V6 user var long ptr
count type_var_struct_ptr ;V7 user var struct ptr
count type_var_byte_ptr_val ;V8 internal var byte ptr val
count type_var_word_ptr_val ;V9 internal var word ptr val
count type_var_long_ptr_val ;V10 internal var long ptr val
count type_var_struct_ptr_val ;V11 internal var struct ptr val
count type_dat_byte ;D0 user dat byte (D0..D3 must be contiguous)
count type_dat_word ;D1 user dat word
count type_dat_long ;D2 user dat long
count type_dat_struct ;D3 user dat struct
count type_dat_long_res ;(D2) user dat long reserve
count type_hub_byte ;H0 user hub byte (unused) (H0..H2 must be contiguous)
count type_hub_word ;H1 user hub word (unused)
count type_hub_long ;H2 user hub long (CLKMODE, CLKFREQ)
count type_obj ; user object
count type_objpub ; user object.method()
count type_objcon_int ; user object.constant integer (must be followed by type_objcon_float)
count type_objcon_float ; user object.constant float
count type_objcon_struct ; user object.constant structure TESTT future work
count type_method ; user method
count type_end ; end-of-line c=0, end-of-file c=1
;
;
; Bytecodes
;
count0 bc_drop ;main bytecodes
count bc_drop_push
count bc_drop_trap
count bc_drop_trap_push
count bc_return_results
count bc_return_args
count bc_abort_0
count bc_abort_arg
count bc_call_obj_sub
count bc_call_obji_sub
count bc_call_sub
count bc_call_ptr
count bc_call_recv
count bc_call_send
count bc_call_send_bytes
count bc_mptr_obj_sub
count bc_mptr_obji_sub
count bc_mptr_sub
count bc_jmp
count bc_jz
count bc_jnz
count bc_tjz
count bc_djnz
count bc_pop
count bc_pop_rfvar
count bc_hub_bytecode
count bc_case_fast_init
count bc_case_fast_done
count bc_case_value
count bc_case_range
count bc_case_done
count bc_lookup_value
count bc_lookdown_value
count bc_lookup_range
count bc_lookdown_range
count bc_look_done
count bc_add_pbase
count bc_coginit
count bc_coginit_push
count bc_cogstop
count bc_cogid
count bc_locknew
count bc_lockret
count bc_locktry
count bc_lockrel
count bc_lockchk
count bc_cogatn
count bc_pollatn
count bc_waitatn
count bc_getrnd
count bc_getct
count bc_pollct
count bc_waitct
count bc_pinlow
count bc_pinhigh
count bc_pintoggle
count bc_pinfloat
count bc_wrpin
count bc_wxpin
count bc_wypin
count bc_akpin
count bc_rdpin
count bc_rqpin
count bc_unused_3F
count bc_unused_40
count bc_debug
count bc_con_rfbyte
count bc_con_rfbyte_not
count bc_con_rfword
count bc_con_rfword_not
count bc_con_rflong
count bc_con_rfbyte_decod
count bc_con_rfbyte_decod_not
count bc_con_rfbyte_bmask
count bc_con_rfbyte_bmask_not
count bc_setup_field_p
count bc_setup_field_pi
count bc_setup_reg
count bc_setup_reg_pi
count bc_setup_byte_pbase
count bc_setup_byte_vbase
count bc_setup_byte_dbase
count bc_setup_byte_pbase_pi
count bc_setup_byte_vbase_pi
count bc_setup_byte_dbase_pi
count bc_setup_word_pbase
count bc_setup_word_vbase
count bc_setup_word_dbase
count bc_setup_word_pbase_pi
count bc_setup_word_vbase_pi
count bc_setup_word_dbase_pi
count bc_setup_long_pbase
count bc_setup_long_vbase
count bc_setup_long_dbase
count bc_setup_long_pbase_pi
count bc_setup_long_vbase_pi
count bc_setup_long_dbase_pi
count bc_setup_byte_pa
count bc_setup_word_pa
count bc_setup_long_pa
count bc_setup_byte_pb_pi
count bc_setup_word_pb_pi
count bc_setup_long_pb_pi
count bc_setup_struct_pbase
count bc_setup_struct_vbase
count bc_setup_struct_dbase
count bc_setup_struct_pop
count bc_ternary
count bc_lt
count bc_ltu
count bc_lte
count bc_lteu
count bc_e
count bc_ne
count bc_gte
count bc_gteu
count bc_gt
count bc_gtu
count bc_ltegt
count bc_lognot
count bc_bitnot
count bc_neg
count bc_abs
count bc_encod
count bc_decod
count bc_bmask
count bc_ones
count bc_sqrt
count bc_qlog
count bc_qexp
count bc_shr
count bc_shl
count bc_sar
count bc_ror
count bc_rol
count bc_rev
count bc_zerox
count bc_signx
count bc_add
count bc_sub
count bc_logand
count bc_logxor
count bc_logor
count bc_bitand
count bc_bitxor
count bc_bitor
count bc_fge
count bc_fle
count bc_addbits
count bc_addpins
count bc_mul
count bc_div
count bc_divu
count bc_rem
count bc_remu
count bc_sca
count bc_scas
count bc_frac
count bc_string
count bc_bitrange
counti bc_con_n ,16
counti bc_setup_reg_1D8_1F8 ,16
counti bc_setup_var_0_15 ,16
counti bc_setup_local_0_15 ,16
counti bc_read_local_0_15 ,16
counti bc_write_local_0_15 ,16
countn bc_set_incdec ,79h ;variable operator bytecodes
count bc_repeat_var_init_n
count bc_repeat_var_init_1
count bc_repeat_var_init
count bc_repeat_var_loop
count bc_get_field
count bc_get_addr
count bc_read
count bc_write
count bc_write_push
count bc_var_inc
count bc_var_dec
count bc_var_preinc_push
count bc_var_predec_push
count bc_var_postinc_push
count bc_var_postdec_push
count bc_var_lognot
count bc_var_lognot_push
count bc_var_bitnot
count bc_var_bitnot_push
count bc_var_swap
count bc_var_rnd
count bc_var_rnd_push