-
Notifications
You must be signed in to change notification settings - Fork 2
/
XK-300_U12.info
1287 lines (1178 loc) · 35.1 KB
/
XK-300_U12.info
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
FILE "XK-300_U12.bin" F000
option 6802
***** General Info
comment .
comment .D5BUG
comment .(SAME AS USED IN MEK6802D5)
comment .
comment ROM LABEL:
comment . ELENCO
comment . ADVENT
comment . ELECTRONICS
comment . (312) 297-6200
comment E419 -------------------------------------------------------
comment E419 DEFS - DEFINITIONS & SCRATCH LOCATIONS
comment E419 -------------------------------------------------------
const F003
const F01F
const F6EB
const F631
const F729
const F736
const F4C8
const F6E5
const F730
comment E484
insert E484 PIA EQU $E484
insert E484 KPCOL EQU $0
insert E484 KPROW EQU $2
insert E484 ANOD EQU $E484
insert E484 CATH EQU $E486
insert E484 PIAROW EQU $E486
insert E487 PIACRA EQU $E485
insert E486 PIAPB EQU $E486
label E484 PIADP
label E485 PIACR
label E486 PIADPB
label E487 PIACRB
label E47C STKTOP-2
label E47D STKTOP-1
label E47E STKTOP
rmb E419-E463
+dec E419-E463
label E419 MNPTR
label E41B KEY
label E41C KEYFLG
label E41A DISBUF-3
label E41D DISBUF
label E41E DISBUF+1
label E41F DISBUF+2
label E420 DISBUF+3
label E421 DISBUF+4
label E422 DISBUF+5
label E423 ROLPAS
label E424 XSAVD
label E425 XSAVD+1
label E426 XSAV1
label E428 XTMP1
label E42A MEMSAV
label E42B MEMSAV+1
label E42C HEXBUF
label E42D HEXBUF+1
label E42E HEXBUF+2
label E42F USP
label E430 UCC-1
label E431 UCC
label E432 UB
label E433 UA
label E434 UX
label E436 UPC
label E437 UPC+1
label E438 ROIFLG
label E439 ROIBAK
label E43B UPROG
label E43C UIRQV
label E43E FNCFL
label E43F FNCPNT
label E441 REGNO
label E442 BKPNTR
label E444 BRKNO
label E445 BRKTAB
insert E459 BRKEND EQU $E459
lcomment E459 .
comment E459 .
comment E459 CASSETTE INTERFACE SCRATCH LOCATIONS
comment E459 .
label E459 BYTE
label E45A CYCNT
label E45B CYCNT+1
label E45C GOOD1S
label E45D OLD
label E45E CHKSM
label E45F NBITS
label E460 BEGAD
label E462 ENDAD
label E464 BEGAD+4
insert F000 . NAM RESET
*insert F000 . OPT CREF,LLEN=80
***** Program Addresses
comment F000
comment F000 -------------------------------------------------------
comment F000 RESET - COLD START ROUTINE
comment F000 -------------------------------------------------------
label F000 RESET
lcomment F000 SET INTERRUPT MASK
lcomment F002 CLEAR RAM
label F005 CLRLOP
lcomment F00D INITIALIZE SYSTEM PIA
lcomment F01E DEFAULT USER STACK
comment F024
comment F024 -------------------------------------------------------
comment F024 PROMPT - ROUTINE TO SET UP PROMPT CONDITIONS
comment F024 -------------------------------------------------------
label F024 PROMPT
lcomment F024 INIT SYSTEM STACK
lcomment F027 SET FIRST PASS
lcomment F02C INIT FLAGS
lcomment F038 DISPLAY PROMPT
lcomment F042 EXECUTE FUNCTION SELECT
lcomment F048 ENABLE NMI
lcomment F04B & GO
comment F04E
comment F04E -------------------------------------------------------
comment F04E GET - ROUTINE TO READ A KEY
comment F04E -------------------------------------------------------
label F04E GET
lcomment F04E POINT AT PIA
lcomment F053 TO TURN OFF DISPLAYS
lcomment F055 COL 0, ALL ROWS
label F057 LPCOL
lcomment F057 STORE INFO TO KEY MATRIX
lcomment F059 MSB IS MUX BIT
lcomment F05B BIT-7 LOW MEANS COL FOUND
lcomment F05D INC COL BITS TO MUX
lcomment F05G CONTINUE FOR ALL COLS
lcomment F061 KEY BOUNCED , START OVER
label F063 COLFND
lcomment F063 MASK TO SAVE ONLY COL
lcomment F065 WILL UPDATE LATER; JUST TEMP SAV
lcomment F068 ROW5
label F06A LPROW
lcomment F06A COPY ROW INFO ROW A-REG
lcomment F06B COMBINE WITH COL INFO
lcomment F06E DRIVE KEY MATRIX
lcomment F070 MSB LOW = CLOSURE
lcomment F074 NEXT LOWER ROW BIT
lcomment F075 LOOP TILL ALL ROWS TRIED
lcomment F077 KEY BOUNCED; START OVER
label F079 ROWFND
lcomment F079 PREPARE TO FIND BINARY ROW #
label F07A LPFND
lcomment F07A LOOP BUILDS BINARY ROW #
lcomment F07B WHEN BIT FALLS OFF; A-REG HAS #
label F080 DUNROW
lcomment F087 A-REG IS 000RRRCC
comment F088 A-REG NOW CONTAINS OFFSET FOR KEY LOOK-UP
label F088 CLOP
lcomment F088 SEE IF KEY STILL DOWN
lcomment F08A WAIT TILL LET UP
lcomment F08C DELAY TO DEBOUNCE
lcomment F08F POINT AT TOP OF TABLE
lcomment F095 GET KEY CODE
lcomment F097 SAVE KEY VALUE
lcomment F09C INDICATE KEY PENDING
lcomment F09F TO CLEAR NMI
label F0A2 DIDDLE
comment F0A3 THIS RTS IS USED AS A DO-NOTHING SUB
comment F0A3 SO SYST CAN BE DISABLED EXCEPT DISPLAY
comment F0A3
comment F0A3 -------------------------------------------------------
comment F0A3 KYTBL - KEY VALUE TABLE
comment F0A3 -------------------------------------------------------
label F0A3 KYTBL
data F0A3-F0BA
comment F0BB
comment F0BB -------------------------------------------------------
comment F0BB PUT - DISPLAYS DATA IN DISBUF & CALLS THE
comment F0BB FUNCTIONING SUBROUTINE
comment F0BB -------------------------------------------------------
lcomment F0B3 'FS' FUNCTION SET
lcomment F0B4 'FC' FUNCTION CLEAR
lcomment F0B5 'P/L' PUNCH/LOAD
lcomment F0B6 'T/B' TRACE/BREAK
lcomment F0B7 'MD' MEMORY DISPLAY
lcomment F0B8 'EX' ESCAPE
lcomment F0B9 'RD' REGISTER DISPLAY
lcomment F0BA 'GO' GO
label F0BB PUT
lcomment F0BB INIT DIG ENABLE PATTERN
label F0BD LP1P
lcomment F0BD POINT AT DISPLAY BUFFER
lcomment F0C0 MAKE EXTRA COPY
label F0C1 LP2P
lcomment F0C1 POINT AT NXT DIGIT INFO
lcomment F0C2 ADD 1 TO 'X' FOR EACH SHIFT
lcomment F0C3 LOOP DEVELOPS DIGIT INFO ADDR
lcomment F0C5 GET SEG INFO
lcomment F0C7 ANODE DRIVERS ARE GND TRUE
lcomment F0C8 STORE ANODE INFO TO PIA
lcomment F0CB ENABLE DIGIT CATHODE
lcomment F0CE ON FOR 1 MILLISECOND
lcomment F0D1 1'S TURN OFF SEGS
lcomment F0D3 TURN OFF ALL SEGS
lcomment F0D6 ENABLE ALL KPD ROWS
lcomment F0D9 HAS ROTATING DIGIT ENABLE
lcomment F0DA GET ADDRESS OF ACTIVE MAIN PROG
lcomment F0DD EXECUTE IT
comment F0DF SEE MANUAL
lcomment F0DF RECOVER DIGIT ENABLE
lcomment F0E0 NEXT DIGIT
lcomment F0E1 NOT THRU WHOLE CYCLE
lcomment F0E3 PAST LAST DIGIT
comment F0E5
comment F0E5 -------------------------------------------------------
comment F0E5 FUNSEL - ROUTINE TO SELECT A FUNCTION FROM A KEY INPUT
comment F0E5 -------------------------------------------------------
label F0E5 FUNSEL
lcomment F0E5 KEY PENDING?
label F0EB KEYNOW
lcomment F0EA -- RETURN -- NO KEY PENDING
lcomment F0EB GET & ACKNOWLEDGE KEY
lcomment F0EE IF FUNCTION KEY
lcomment F0F5 # ENTRY SO ROLL IT IN
lcomment F0F8 CONVERT TO 7-SEG
lcomment F0FD BLANK LAST 2 DIGITS
label F100 UFNK
lcomment F100 POINT AT USER FUNCTION TBL
label F105 FUNKY
lcomment F105 POINT AT SYSTEM FUNCTION TBL
label F108 HASH
lcomment F108 2 BYTES PER ENTRY
lcomment F109 DEVELOP POINTER
lcomment F10C GET JMP ADDR
lcomment F10E GO THERE
label F110 SYSFNC
word F110-F11E
lcomment F110 'MD'
lcomment F112 'EX'
lcomment F114 'RD'
lcomment F116 'GO'
lcomment F117 'FS'
lcomment F11A 'FC'
lcomment F11C 'P/L'
lcomment F11E 'T/B'
comment F120
comment F120 -------------------------------------------------------
comment F120 MISC - MISC ROUTINES
comment F120 -------------------------------------------------------
comment F120 DECODE HEX TO 7-SEGMENT
label F120 DYSCOD
lcomment F120 SAVE REGS
lcomment F125 POINT AT HEX INFO
lcomment F128 GET HEX BYTE
lcomment F12A MAKE EXTRA COPY
lcomment F12B RIGHT JUSTIFY HIGH NIBBLE
lcomment F12E HIGH ORDER DIGIT IN B-REG
lcomment F12F LOW ORDER DIGIT IN A-REG
lcomment F131 SAVE ON STACK
lcomment F133 NEXT HEX BYTE
lcomment F134 DONE ?
lcomment F137 LOOP 3 TIMES
lcomment F139 LAST DISPLAY BUFFER DIGIT
lcomment F13C LOOP INDEX
lcomment F13E SAVE TEMPORARILY
lcomment F141 POINT AT LOOK-UP TABLE
lcomment F144 GET A HEX DIGIT TO CONVERT
lcomment F145 POINT AT 7-SEG EQUIV
lcomment F148 GET IT
lcomment F14A RECOVER POINTER TO DISP BUFFER
lcomment F14D STORE CONVERTED DIG
lcomment F14F NEXT DISPLAY POS
lcomment F150 LOOP INDEX
lcomment F151 CONTINUE FOR 6 DIGITS
lcomment F153 RECOVER ENTRY STATUS
lcomment F158 -- RETURN --
comment F159 .
comment F159 .
label F128 LPOl
label F13E LPO2
label F159 DYSTBL
bin F159-F168
lcomment F159 '0'
lcomment F15A '1'
lcomment F15B '2'
lcomment F15C '3'
lcomment F15D '4'
lcomment F15E '5'
lcomment F15F '6'
lcomment F160 '7'
lcomment F161 '8'
lcomment F162 '9'
lcomment F163 'A'
lcomment F164 'B'
lcomment F165 'C'
lcomment F166 'D'
lcomment F167 'E'
lcomment F168 'F'
comment F169 .
comment F169 DELAY SUBS
lcomment F169 SAVE X ENTRY VALUE
lcomment F16C 25 MS ENTRY POINT
lcomment F171 SAVE ENTRY VAL
lcomment F174 1 MS COUNT
lcomment F179 REQUIRED FOR SIMILARITY TO DLYl/25
lcomment F17D LOOP TILL X=0
lcomment F17F RECOVER ENTRY VALUE
lcomment F182 -- RETURN --
comment F183 .
comment F183 SUBROUTINE TO ADD X=X+A
lcomment F183 TO ALLOW CALCS
lcomment F186 ADD LOW BYTES
lcomment F189 UPDATE
lcomment F18C IF NO CARRY; YOU'RE DONE
lcomment F18E ADD CARRY TO HIGH BYTE
lcomment F191 RESULT TO X-REG
lcomment F194 -- RETURN --
comment F195 .
comment F195 CLEAR DISPLAY PER A-REG
lcomment F195 SAVE ENTRY VALUE
lcomment F198 RIGHTMOST DIGIT
lcomment F19C IF BIT IN A-REG NOT SET
lcomment F1AO NEXT DISPLAY
lcomment F1Al DONE ?
lcomment F1A4 CONTINUE 6 TIMES
lcomment F1A6 RECOVER ENTRY VALUE
lcomment F1A9 -- RETURN --
comment F1AA .
lcomment F1AA SAVE ENTRY VALUE
lcomment F1AD ADDR TO ROLL
lcomment F1B0 FIRST PASS ?
lcomment F1B5 THIS WAS PASS 1
lcomment F1B8 CLEAR LOC ON FIRST PASS
lcomment F1C2 SHIFT ROLL BYTE 4 PLACES
lcomment F1C4 COMBINE NEW DATA
lcomment F1C6 UPDATE LOC
lcomment F1C8 RECOVER ENTRY VAL
lcomment F1CB -- RETURN --
label F169 DLY25
const F16D-F16E
label F171 DLY1
const F175-F176
label F179 DLYX
label F17C DLYLP
label F183 ADDAX
label F191 ARND
label F195 CLRDS
label F19B CLRLP
label F1A0 ARNCLR
label F1AA ROLL2
label F1BC ARNCL2
label F1C4 R2OUT
comment F1CC .
comment F1CC ROLL 4 HEX INTO HEXBUF
label F1CC ROLL4
lcomment F1CC SAVE ENTRY VALUES
lcomment F1CD PASS 1 ?
lcomment F1D0 NO,CONTINUE
lcomment F1D2 YES,CLEAR FIRST PASS FLAG &
lcomment F1D5 CLR FIRST 4 DIGITS
lcomment F1D8 THEN PUT NEW DATA IN 4TH
lcomment F1DD LEFT JUSTIFY NEW DIGIT
label F1DD ARNCL4
lcomment F1E1 LOOP INDEX
lcomment F1E3 ROLLA INTO HEXBUF
lcomment F1ED RECOVER B-REG
lcomment F1EE RETURN
comment F1EF .
lcomment F1EF READ & ACKNOWLEDGE KEY
label F1E3 RO4LP
label F1ED R4OUT
label F1EF RDKEY
comment F1F6
comment F1F6 -------------------------------------------------------
comment F1F6 MEMCH - MEMORY CHANGE/DISPLAY/OFFSET ROUTINE
comment F1F6 -------------------------------------------------------
label F1F6 MEMBEG
label F205 MEMCH
label F20B MEMNOW
label F21E OFFOUT
const F222
label F221 OFFEND
label F227 OFFRET
label F228 OFFUN
bin F24D
label F243 ARNINC
label F257 BADOFF
const F258
bin F261
label F26B CALDUN
label F281 BADCAL
label F288 MEMBAK
label F28D NORMAL
label F297 NXMl
label F29E NXM2
label F2B5 NUM
label F2BA NEWMEM
label F2BF MEMOUT
lcomment F1F9 INT MAIN POINTER
lcomment F1FC SET FUNCTION FLAG TO ZERO
lcomment F1FF POINT AT ADDR TO DISPLAY
lcomment F202 EXIT TO UPDATE DISPLAY
lcomment F205 SEE IF ANY KEY PENDING
lcomment F20A -- RETURN --
lcomment F20B GET & ACKNOWLEDGE KEY
lcomment F20E SAVES STEPS LATER
lcomment F211 SEE IF IN OFFSET MODE
lcomment F214 (NOT IN OFFSET MODE)
lcomment F216 IF OFFSET CALC FINISHED
lcomment F218 CHECK KEY
lcomment F219 IF FUNCTION KEY
lcomment F21B ENTER NUMBER KEY
lcomment F21E CONVERT TO 7-SEG
lcomment F221 "A"
lcomment F224 STORE TO LAST DIGITS
lcomment F227 -- RETURN --
lcomment F228 'GO' ?
lcomment F22A IF NOT; EXIT
lcomment F22C GET DESTINATION OF BRANCH
lcomment F22F ADJ INSTEAD OF ADJ'ING THE SOURCE
lcomment F230 UPDATE
lcomment F233 LOW BYTE OF DESTINATION
lcomment F236 HI BYTE
lcomment F239 SUBTRACT LOW BYTES
lcomment F23C SUBTRACT W/ CARRY
lcomment F23F CHECK POLARITY OF LOW ORDER RESULT
lcomment F240 IF LO POS DON'T INC HI
lcomment F242 IF LOW WAS NEG INC HI $FF - $00
lcomment F243 IF B NOW ZERO; OFFSET IS IN RANGE
lcomment F244 IF NOT; TOO FAR
lcomment F246 SAVE RESULT
lcomment F249 CONVERT TO 7-SEG
lcomment F24C CLEAR FIRST 4 DISPLAYS
lcomment F253 INDICATE CALC DONE; & OK
lcomment F256 -- RETURN --
lcomment F25D WRITE "BAD" IN FIRST 3 DISPLAYS
lcomment F262 CLEAR UNUSED DIGITS
lcomment F267 INDICATE OFFSET NOT VALID
lcomment F26A -- RETURN --
lcomment F26B IF IT WAS $FF IT'S NOW 0
lcomment F26C OFFSET WAS BAD
lcomment F26E RECOVER MEM ADDR
lcomment F271 FUNCTION CLEAR KEY ?
lcomment F273 YES,DONT SAVE OFFSET
lcomment F275 'GO' ?
lcomment F277 'GO' IS ONLY VALID KEY HERE
lcomment F279 GET CALC'D OFFSET
lcomment F27C STORE TO MEM
lcomment F27E ADV TO NEXT MEM ADDR
lcomment F27F BACK TO MEM CHANGE
lcomment F281 'MD' ?
lcomment F283 'MD' IS THE ONLY VALID KEY HERE
lcomment F285 RECOVER MEM ADDRESS
lcomment F288 SIGNAL NOT IN OFFSET MODE
lcomment F28B RE-ENTER MEM CHANGE
lcomment F28D SET COND CODES
lcomment F28E IF NUMBER KEY
lcomment F290 'MD' ?
lcomment F292 NO,CHECK FOR "GO"
lcomment F294 YES,BACK UP
lcomment F297 'GO' ?
lcomment F299 NO,CHECK FOR "FS"
lcomment F29B YES,ADVANCE
lcomment F29E 'FS' ?
lcomment F2A0 NO MORE VALID KEYS
lcomment F2A9 SET OFFSET MODE
lcomment F2AC SET FIRST PASS
lcomment F2AF SAVE MEM CHG POINTER
lcomment F2B5 ENTER NEW DIGIT
lcomment F2B8 DON'T SET FIRST PASS
lcomment F2BC SET FIRST PASS FLAG
lcomment F2BF GET DATA TO DISPLAY
lcomment F2C1 UPDATE HEX BUFFER
lcomment F2C4 UPDATE ADDR
lcomment F2C7 CONV TO 7-SEG
comment F2CA
comment F2CA -------------------------------------------------------
comment F2CA REGDIS - REGISTER DISPLAY/CHANGE ROUTINE
comment F2CA -------------------------------------------------------
lcomment F2CA SEE IF IN VERIFY
lcomment F2CF SIGNAL VERIFY
lcomment F2D2 GO VERIFY TAPE
lcomment F2D8 INIT MAIN POINTER
lcomment F2BD SET SO RTS...
lcomment F2DE WILL BE TO PUT
lcomment F2E1 INIT STACKPOINTER
lcomment F2E4 INIT REG # = UPC
lcomment F2E9 INDICATE FIRST PASS
lcomment F2EC TO UPDATE DISPLAY
lcomment F2EE SEE IF ANY KEY PENDING
lcomment F2F3 RETURN -- NO KEY
lcomment F2F4 GET & ACKNOWLEDGE KEY
lcomment F2F7 IF FUNCTION KEY
lcomment F2FC UPDATE DISPLAY & EXIT
lcomment F2FE 'MD' ?
lcomment F308 WRAP AROUND
lcomment F30A UPDATE
lcomment F30D SET UP NEW REG ON EXIT
lcomment F30F 'GO'
lcomment F311 IGNORE INVALID ENTRY
lcomment F317 PAST ?
lcomment F31B WRAP AROUND
lcomment F31C UPDATE
lcomment F324 T/B KEY ?
lcomment F326 NO,RETURN
lcomment F328 YES,SET UP RETURN ADDR
lcomment F332 4-BYTES PER BLOCK ENTRY
lcomment F333 TOP OF INFO TABLE
lcomment F336 POINT AT TABLE ENTRY
lcomment F339 GET 7-SEG INFO
lcomment F33B SAVE ON STACK
lcomment F33F GET ADDR OF DESIRED REG
lcomment F341 SEE IF NEW REGF
lcomment F346 STORE CURRENT VAL TO DISPLAY STAA HEXBUF
lcomment F350 TO CONVERT TO 7-SEG
lcomment F353 RECOVER DISPLAY CODES
lcomment F354 & STORE TO DISP BUFFER
lcomment F35D CLEAR UNUSED DISPLAYS
lcomment F365 UPDATE HIGH OF PSEUDO REG
lcomment F36D UPDATE LOW BYTE
lcomment F36F -- RETURN --
label F2CA REGBEG
label F2D5 NOTVRF
label F2EE REGDIS
label F2F4 REGNOW
label F2FE REGFNC
label F30A ARNRl
label F30F NXRl
label F31C ARNR2
label F31F NEWREG
label F324 RUNONE
label F32E REGOUT
label F350 NOTNEW
label F365 ARNR3
label F36A ONLYl
label F370 REGTBL
word F370-F387
bin F372-F373
bin F376-F377
bin F37A-F37B
bin F37E-F37F
bin F382-F383
bin F386-F387
bin F37A-F37B
lcomment F388 FUNCTION FLAG SET ?
lcomment F38B YES,EDIT BREAKPIONTS
lcomment F38D NO,TAKE NO ACTION
lcomment F38E SET MNPTR WITH BREAKPOINT ROUTINE
lcomment F394 SET UP FOR ADDR INPUT
lcomment F399 DISPLAY NEXT BKPT
lcomment F39C KEY PENDING ?
lcomment F39F YES,DECODE KEY ?
lcomment F3A1 NO,RETURN TO PUT
lcomment F3A2 GET & ACKNOWLEDGE KEY
lcomment F3A5 HEX ?
lcomment F3A7 NO,CHECK FOR FUNCTION
lcomment F3A9 YES, ROLL INTO HEXBUF
lcomment F3AC DISPLAY & RETURN TO PUT
lcomment F3AF FS KEY ?
lcomment F3B1 NO,TRY FC
lcomment F3B3 YES,ENTER AS BKPT & RETURN
lcomment F3B5 FC KEY ?
lcomment F3B7 NO,CHECK FOR GO
lcomment F3B9 YES,REMOVE A BKPT
lcomment F3BC GO KEY ?
lcomment F3BE YES,DISPLAY NEXT BKPT & RETURN
comment F388
comment F388 -------------------------------------------------------
comment F388 BRKBEG - BREAKPOINT EDITOR
comment F388 -------------------------------------------------------
label F388 BRKBEG
label F38E BRKEDT
label F39C BRKPNT
label F3A2 BRKTST
label F3AF NOTHEX
label F3B5 CKFC
label F3BC CKGO
comment F3C0 .
comment F3C0 DISBRK - DISPLAY NEXT BREAKPOINT
label F3C0 DISBRK
label F3CB BKLOOP
label F3D7 NOTEND
label F3E3 BACK
label F3F0 DISDUN
lcomment F3C0 GET # INTO HEXBU
lcomment F3C3 ANY BREAKPOINTS ?
lcomment F3C6 NO,RETURN
lcomment F3C8 YES,DISPLAY NEXT
lcomment F3CF END OF TAB
lcomment F3D4 NO,GO TEST FOR B
lcomment F3D2 YES,WRAP AROUND
lcomment F3D7 BREAKPOINT ?
lcomment F3D9 NO,TRY NEXT LOC
lcomment F3DB YES,MOVE POINTER
lcomment F3DE GET BKPT ADDR
lcomment F3E0 & DISPLAY IT
lcomment F3E6 ANY BREAKPOINTS ?
lcomment F3E9 YES,RETURN
lcomment F3EB MASK ALL BUT LSD
lcomment F3F0 RETURN TO PUT
comment F3F1 .
comment F3F1 BKTOTB-ENTER A BREAKPOINT FROM HEXBUF INTO
comment F3F1 . THE TABLE & UPDATE BRKNO
label F3F1 BKTOTB
comment F40E ENTER BKPT INTO TABLE
label F428 FULL
comment F42E .
comment F42E BKFMTB - REMOVE A BREAKPOINT FROM BUFFER
comment F42E . & UPDATE BRKNO
label F42E BKFMTB
label F43E BKNO
label F444 BKLOP
label F44D NEXT1
label F450 ISBKPT
lcomment F3F1 BREAKPOINT EXIST ?
lcomment F3F4 YES,RETURN
lcomment F3F6 FIND OPEN SPACE
lcomment F3F8 GET # OF BREAKPOINTS
lcomment F3FB FULL ?
lcomment F3FD YES
comment F3FF CHECK FOR RAM
lcomment F3FF TEST FOR RAM
lcomment F407 RAM ?
lcomment F409 NO ,RETURN
lcomment F40B YES, RESTORE DATA
lcomment F40E POINT INTO BREAKPOINT TAB
lcomment F411 SAV OPCODE
lcomment F413 GET OP CODE ADDR
lcomment F419 INSERT BREAKPOINT
lcomment F41D COUNT BREAKPOINT
lcomment P420 FLAG BRAKPOINT
lcomment F422 UPDATE BKPT NO.
lcomment F428 RESET ROLPAS
lcomment F42D & RETURN
lcomment F42E BKPT (DISBUF) IN TABLE ?
lcomment F430 NO , RETURN
lcomment F432 YES , GET ITS ADDR
lcomment F435 & REMOVE IT.
lcomment F437 REMOVE OP CODE
lcomment F439 UPDATE COUNT
lcomment F43C DISPLAY BKPT & RETURN
comment F43E .
comment F43E BKNO - FIND NUMBER OF BREAKPOINTS, UPDATE BRKNO
comment F43E . & PUT ADDR OF LAST OPEN SPACE INTO BKPNTR
comment F43E .
lcomment F444 BREAKPOINT HERE ?
lcomment F446 NO, TRY NEXT ENTRY
lcomment F448 YES,COUNT IT
lcomment F44B SO DONT SAVE ADDR
lcomment F44D & SAVE ADDR
lcomment F450 POINT TO NEXT' ENTRY
lcomment F454 DONE ?
lcomment F457 NO,CONTINUE
lcomment F459 RESET ROLPAS
lcomment F45E YES
comment F45F
comment F45F -------------------------------------------------------
comment F45F INBKS - INSERT BREAKPOINTS FROM TABLE TO MEM
comment F45F -------------------------------------------------------
label F45F INBKS
label F467 CKBPT
label F47B NEXT2
label F484 NOBPT
lcomment F45F BREAKPOINTS ?
lcomment F462 NO,RETURN
lcomment F464 YES,INSTALL'EM
lcomment F467 BREAKPOINT ?
lcomment F469 NO,TRY NEXT ENTRY
lcomment F46B SAVE X
lcomment F46E SWI
lcomment F470 GET ADDR
lcomment F472 GET OP CODE
lcomment F474 STORE SWI
lcomment F476 RESTORE X
lcomment F479 SAVE OPCODE
lcomment F47F DONE ?
lcomment F482 NO,CONTINUE
comment F485 -------------------------------------------------------
comment F485 OUTBKS - REMOVE BREAKPOINTS FROM MEM
comment F485 -------------------------------------------------------
label F485 OUTBKS
label F488 REMOV1
comment F48C REMOVE BREAKPOINT FROM RAM
comment F496 NEXT ENTRY
label F496 NEXT3
comment F4A0 .
comment F4A0 FDBRK - FIND BREAKPOINT (HEXBUF) IN BRKTAB
comment F4A0 . BKPNTR POINTS AT BREAKPOINT & CARRY
comment F4A0 . IS SET IF BREKPOINT EXISTS,ELSE C IS ="0"
label F4A0 FNDBRK
label F4A9 BRKLOP
label F4AD NEXT
label F4B8 CKLSB
lcomment F4A0 BREAKPOINT MSB
lcomment F4A3 BREAKPOINT LSB
lcomment F4A6 BREAKPOINT TAB
lcomment F4A9 MATCH ?
lcomment F4AB YES
lcomment F4AD NO POINT TO NEXT .
lcomment F4AE DONE ?
lcomment F4AF NO,CONTINUE
lcomment F4B6 YES,BUT NO BKPT
lcomment F4B8 MATCH ?
lcomment F4BA NO,TRY NEXT ENTRY
lcomment F4BC BREAKPOINT ACTIVE ?
lcomment F4BE NO,TRY AGAIN
lcomment F4C0 YES,FOUND IT
lcomment F4C1 SAVE ADDR
comment F4C5 -------------------------------------------------------
comment F4C5 FSET - SET FUNCTION FLAG & DISPLAY "FS"
comment F4C5 -------------------------------------------------------
label F4C5 FSET
label F4CA FOUT
lcomment F4C5 TO SET FUNCTION FLAG
lcomment F4C7 CODE FOR 'FS'
lcomment F4D0 RETURN TO PUT
comment F4D1 -------------------------------------------------------
comment F4D1 FCLR - CLEAR FUNCTION FLAG & LAST 2 DIGITS
comment F4D1 -------------------------------------------------------
label F4D1 FCLR
const F4D3
lcomment F4D1 TO CLEAR FUNCTION FLAG
lcomment F4D2 TO CLEARLAST 2 DIGITS
comment F4D7 -------------------------------------------------------
comment F4D7 TAPES - SOFTWARE CASSETTE TAPE INTERFACE
comment F4D7 -------------------------------------------------------
label F4D7 TAPBEG
label F4DC LDTAP
label F4E2 PCH
label F4EC BEGEND
label F4F2 ADNOW
label F4FC FUNK
label F509 CONOUT
label F512 DYSOUT
label F515 DOPCH
lcomment F4D7 SEE IF PUNCH OR LOAD
lcomment F4DC DO LOAD (OR VERF)
lcomment F4DF WHEN DONE
lcomment F4E2 POINT AT BEGEND ROUTINE
lcomment F4E5 ACTIVATE
lcomment F4EA DISPLAY BB IN LAST DISPLAYS
lcomment F4EC SEE IF KEY PENDING
lcomment F4F1 -- RETURN -- NO KEY
lcomment F4F2 READ & ACKNOWLEDGE KEY
lcomment F4F5 FUNCTION KEY
lcomment F4F7 ENTER NEW NUMBER
lcomment F4FA CONVERT TO 7-SEG & LEAVE
lcomment F4FE END ADDR DONE ?
lcomment F501 GO DO PUNCH
lcomment F503 SAVE ENTERED ADDR
lcomment F509 'EE' OR 'BB' TO LAST DISPLAYS
lcomment F50C CLEAR FIRST FOUR NIBBLES
lcomment F512 CONV & RETURN
lcomment F515 SAVE ENTERED ADDR
lcomment F51B PUNCH TAPE
lcomment F51E WHEN DONE
comment F521 -------------------------------------------------------
comment F521 FEDGE - ROUTINE TO LOCATE AN EDGE (POS OR NEG)
comment F521 . AND DETRMINE DISTANCE TO IT (TIME)
comment F521 . EXECUTION TIME TUNED
comment F521 -------------------------------------------------------
label F521 FEDGE
label F527 LOOPF
comment F521 8 FOR BSR
lcomment F521 2 START COUNT«FIXED (-1)
lcomment F523 4 CLEAR INTERRUPT
lcomment F526 2 DELAY
lcomment F527 2 DURATION COUNT IN A-REG
lcomment F528 4 CHECK FOR EDGE FOUND
lcomment F52B 4 IF NOT;KEEP LOOKING
lcomment F52D 2 INVERT EDGE SENSE CONTROL
lcomment F52F 5 PIA LOOKS FOR OTHER EDGE
lcomment F532 5 --RETURN--
comment F533 -------------------------------------------------------
comment F533 TIN - READ 1 BYTE FROM TAPE
comment F533 . TIME TUNED
comment F533 -------------------------------------------------------
label F533 TIN
label F546 NOTSH
label F552 LOOPS
comment F533 8 FOR JSR
lcomment F535 5 INITIALIZE BYTE
lcomment F538 6
lcomment F53B 6 INIT BIT-TIME COUNT
lcomment F53E 6 INIT LOGIC SENSE
lcomment F541 [22/21+-5] SYNC TO AN EDGE
lcomment F543 6 DELAY
lcomment F546 6 DELAY
lcomment F549 5 "
lcomment F54C [22/21+-5] MEASURE TO NEXT EDGE
lcomment F54E 2 <1.5 SHORT HALF ?
lcomment F550 4 MUST FIND SHORT FIRST
lcomment F552 5 SAVE LAST COUNT
lcomment F555 [22/21+-5) MEASURE TO NEXT
lcomment F557 2 MAKE EXTRA COPY
lcomment F558 4 SUM OF LAST 2
lcomment F55B 2 >2.33 NOM. SHORTS?
lcomment F55D 4 KEEP LOOKING FOR LONG
comment F55F .
comment F55F EDGE SENSE SET-UP TO SENSE TRAILING EDGE OF CYCLES
comment F55F & YOU ARE IN THE MIDDLE OF THE FIRST LONG CYCLE
lcomment F55F 3 DELAY
lcomment F562 4 CLEAR INTERRUPT FLAG
lcomment F565 2 COMPENSATE FOR PROCESSING
lcomment F567 4 BRANCH INTO COUNT LOOP
lcomment F569 2 INIT BIT-TIME COUNT
lcomment F56B 4 DELAY
lcomment F56D 6
lcomment F570 5 ESTABLISH BIT-TIME COUNT
lcomment F573 6 INIT LOGIC SENSE
lcomment F576 2 FIXED TIME (-1)= INIT COUNT
lcomment F578 2 A-REG HOLDS DURATION COUNT
lcomment F579 4 EDGE YET?
lcomment F57C 4 IF NOT;KEEP LOOKING
lcomment F57E 4 CLEAR INTERRUPT FLAG
lcomment F581 6 DELAY TO MAKE PASS TIME...
lcomment F584 2 EVEN MULTIPLE OF LOOP TIME
lcomment F585 2 <1.4 SHORT ?
lcomment F587 4
lcomment F589 6 GOOD1S POS MEANS 0
lcomment F58C 4
lcomment F58E 6 GOODIS NEG MEANS 1
lcomment F591 4 DELAY
lcomment F593 4 HIGH BYTE
lcomment F596 4 ADD CURRENT TO BIT-TIME COUNT
lcomment F599 5 UPDATE
lcomment F59C 2 ADD IN CARRY
lcomment F59E 5 UPDATE HIGH BYTE
lcomment F5A1 4 IF CARRY; BIT MAY BE OVER
lcomment F5A3 2 DELAY
lcomment F5A4 4 BIT NOT OVER
lcomment F5A6 2 (279-256)
lcomment F5A8 4 BIT-TIME EXPIRED
lcomment F5AA [38] 2
lcomment F5AC " 2
lcomment F5AD " 4
lcomment F5AF " 3
lcomment F5B2 " 4
comment F5B4 .
comment F5B4 END OF A BIT-TIME
lcomment F5B4 6 LOGIC SENSE TO CARRY
lcomment F5B7 6 SHIFT NEW BIT INTO BYTE
lcomment F5BA 4 DONE WHEN START FALLS OUT
lcomment F5BC 2 >2.5 NOM. SHORTS ?
lcomment F5BE 4 NO; BIT-TIME STARTS AT 0
lcomment F5C0 2 YES; TRY MAINTAIN FRAMING
lcomment F5C2 4 NEXT BIT-TIME
comment F5C4 .
comment F5C4 DATA BYTE READ; CLEAN-UP AND LEAVE
lcomment F5C4 4 GET CURRENT BYTE
lcomment F5C7 4 ADD TO CHECKSUM
lcomment F5CA 5 UPDATE
lcomment F5CD 4 GET RECEIVED DATA IN A-REG
lcomment F5D0 5 -- RETURN --
label F569 LPOUT
label F56D LPMID
label F576 LPIN
label F578 LOOP1
label F579 SYNCIN
label F58E SHRT
label F593 WITHIN
label F5A6 CHKOVR
label F5AA NOTOVR
label F5C4 TINDUN
comment F5D1 -------------------------------------------------------
comment F5D1 BIT1 - SEND A LOGIC 1 BIT-TIME
comment F5D1 . LESS 177 CLOCK CYCLES
comment F5D1 . TIME TUNED
comment F5D1 -------------------------------------------------------
label F5D1 BIT1
label F5D3 LOOPB1
comment F5D1 8 FOR BSR
lcomment F5D1 2 # SHORT H-CYCS (-1)
lcomment F5D3 [20/5] TRANSMIT EDGE
lcomment F5D6 [152] 2 DELAY
lcomment F5D8 " 2
lcomment F5D9 " 4
lcomment F5DB 4 DELAY
lcomment F5DD 2 1 LESS HALF CYCLE
lcomment F5DE 4 TILL 2ND LAST EDGE
lcomment F5E0 [20/5] 15TH EDGE IN BIT-TIME
lcomment F5E3 5 --RETURN-- 177 CYC TO NXT
comment F5E4 -------------------------------------------------------
comment F5E4 BIT0 - SEND A LOGIC 0 BIT-TIME
comment F5E4 . LESS 177 CLOCK CYCLES
comment F5E4 . TIME TUNED
comment F5E4 -------------------------------------------------------
label F5E4 BIT0
label F5E6 LOOPB0
comment F5E4 8 FOR BSR
lcomment F5E4 2 # LONG H-CYCS (-1)
lcomment F5E6 [20/5] TRANSMIT EDGE
lcomment F5E9 [344] 2 DELAY
lcomment F5EB " 2
lcomment F5EC " 4
lcomment F5EE 2 DELAY
lcomment F5EF 2 1 LESS TO GO
lcomment F5F0 4 TILL 2ND LAST EDGE
lcomment F5F2 [20/5] 7TH EDGE IN BIT-TIME
lcomment F5F5 [182] 2 DELAY
lcomment F5F7 " 2
lcomment F5F8 " 4
lcomment F5FA 3 DELAY
lcomment F5FD 2 "
lcomment F5FE 5 --RETURN-- 177 CYC TO NXT
comment F5FF -------------------------------------------------------
comment F5FF INVRT - ROUTINE TO TRANSMIT A RISING
comment F5FF . OR FALLING EDGE TO THE CASSETTE
comment F5FF . TIME TUNED
comment F5FF -------------------------------------------------------
label F5FF INVRT
comment F5FF 9 FOR JSR
lcomment F5FF 2
lcomment F601 4
lcomment F604 5 INVERT OUTPUT
lcomment F607 5 -- RETURN --
comment F608 -------------------------------------------------------
comment F608 PNCHB - PUNCH 1 BYTE TO TAPE. INCLUDES
comment F608 . START BIT,DATA,AND ALL BUT LAST HALF-CYCLE
comment F608 . OF STOP BITS
comment F608 . TIME TUNED