File: checks.t2

For general comments see here
LineAddressObject Code LabelF1N1BF2N2CommentsCheck
1 0  ; tape2/checks.t2
2 0  ;--------------------------------------------------------------------
3 0  ; checkb(b) - print Boolean value if checking
4 0  ;
5 0  =6953 
6 6953  Checks::; 
7 6953  Checkb:; 
8 6953 1600000 kbd 0   ;get keyboard setting @6953
9 6953+0075164 and BBit   ;=<000/000> test for B-bit
10 6954 1055474 jz .ret   ;not set, ignore @6954
11 6954+0600115 lod ChkVal   ;load value to be checked
12 6955 1155454 jz .1   ;zero is false @6955
13 6955+0616557 lod Msg2   ;'TRUE' message
14 6956 1015455 jmp .2   ;output string @6956
15 6956+ ;
16 6956+ .1:; 
17 6956+0616556 lod Msg1   ;'FALSE' message
18 6957  .2:; 
19 6957 0415130 sto CKwk1   ;save message address @6957
20 6957+0615457 lod .ptr   ;load pointer to prefix (cr,lf,*.sp)
21 6958   calln ,   ;output string @6958
21+16958 7300005100012 lnk T2Link:jmp OutStr 
22 6959 0615130.ptr:lod CKwk1   ;load message @6959
23 6959+0015166 o00 CKpfx   ;in-line const
24 6960   calln ,   ;output string @6960
24+16960 7300005100012 lnk T2Link:jmp OutStr 
25 6961 1015474 jmp .ret   ;and return @6961
26 6961+ ;--------------------------------------------------------------------
27 6961+ ; checks(str)
28 6961+ ;
29 6961+ Checks:; 
30 6961+1600000 kbd 0   ;
31 6962 0075164 and BBit   ;=<000/000> @6962
32 6962+1055474 jz .ret   ;ignore, just return
33 6963 0600115 lod ChkVal   ;load string address @6963
34 6963+1015455 jmp .2   ;output it
35 6964  ;--------------------------------------------------------------------
36 6964  ; checkr(r)
37 6964  ; need to set up special formatting for check output
38 6964  ;
39 6964  Checkr:; 
40 6964 1600000 kbd 0   ; @6964
41 6964+0075164 and BBit   ;=<000/000>
42 6965 1055474 jz .ret   ; @6965
43 6965+ ;
44 6965+0615167 lod CKrfmt   ;=04000004000011
45 6966 0200074 exa Rfmt   ; @6966
46 6966+0415130 sto CKwk1   ;save current setting
47 6967 0615165 lod CKfmt   ;=<00 CKpfx : 00 0> @6967
48 6967+0200076 exa prtfmt   ;
49 6968 0415131 sto CKwk2   ;save current setting @6968
50 6968+ ; now output the number
51 6968+0600115 lod ChkVal   ;value to be checked
52 6969   calln ,   ;call outreal @6969
52+16969 7300005000021 lnk T2Link:jmp OutReal 
53 6970 0615130 lod CKwk1   ;restore current settings @6970
54 6970+0400074 sto Rfmt   ;for prefix
55 6971  .3:; 
56 6971  ;L6971:
57 6971 0615131 lod CKwk2   ;restore current setting @6971
58 6971+0400076 sto prtfmt   ;
59 6972  .ret:; 
60 6972 0600115 lod ChkVal   ;reload value being checked @6972
61 6972+  clo     ;ensure overflow clear
61+16972+1075475 jo .1    
61+26973  .1:; 
62 6973 0000463000001 o00 ChkLink/jmp 1;return @6973
63 6974  ;--------------------------------------------------------------------
64 6974  ; checki(i)
65 6974  ;
66 6974  Checki:; 
67 6974 1600000 kbd 0   ;get buttons @6974
68 6974+0075164 and BBit   ;=<000/000> test for B-bit
69 6975 1055474 jz .ret   ;return if not set @6975
70 6975+0055147 o02 W6759   ;=11+1=>12
71 6976 0200075 exa Ndigits   ;digits(12) @6976
72 6976+0415130 sto CKwk1   ;save Ndigits
73 6977 0615165 lod CKfmt   ;=<00 CKpfx:00 0> @6977
74 6977+0200076 exa prtfmt   ;set prefix string
75 6978 0415131 sto CKwk2   ;save current setting @6978
76 6978+0600115 lod ChkVal   ;load value for printing
77 6979   calln ,   ;print it @6979
77+16979 7300005000022 lnk T2Link:jmp OutIntchk 
78 6980 0615130 lod CKwk1   ; @6980
79 6980+0400075 sto Ndigits   ;restore digits(n)
80 6981 1015473 jmp .3   ;restore prefix and return @6981
81 6981+ ;
82 6981+0000000 o00 0   ;
83 6982  ;--------------------------------------------------------------------