|  | File: reset.t2
For general comments see here 
| Line | Address | Object Code | Label | F1 | N1 | B | F2 | N2 | Comments | Check | 
|---|
 | 1 | 0 |  | ; tape2/reset.t2 |  |  | 2 | 0 |  | ;--------------- |  |  | 3 | 0 |  | ; initialise run-time system |  |  | 4 | 0 |  | ; |  |  | 5 | 0 |  | Reset: | ; |  |  |  | 6 | 0 | 0615154 |  | lod | W6764 |  |  |  | ; | @7069 |  | 7 | 0+ | 0400074 |  | sto | Rfmt |  |  |  | ; |  |  | 8 | 1 | 0616213 |  | lod | N8 |  |  |  | ;=-8 | @7070 |  | 9 | 1+ | 0420075 |  | stn | Ndigits |  |  |  | ;digits(-8) |  |  | 10 | 2 | 0540076 |  | cls | prtfmt |  |  |  | ; | @7071 |  | 11 | 2+ | 0540077 |  | cls | outdev |  |  |  | ;output stream=punch 1 |  |  | 12 | 3 | 0540100 |  | cls | RdBuff |  |  |  | ; | @7072 |  | 13 | 3+ | 0540101 |  | cls | RdBuff+1 |  |  |  | ; |  |  | 14 | 4 | 0540102 |  | cls | RdBuff+2 |  |  |  | ; | @7073 |  | 15 | 4+ | 0540103 |  | cls | RdBuff+3 |  |  |  | ; |  |  | 16 | 5 | 0540025 |  | cls | indev |  |  |  | ;input stream=reader 1 | @7074 |  | 17 | 5+ | 0600033 |  | lod | himem |  |  |  | ; |  |  | 18 | 6 | 0400027 |  | sto | stkpt |  |  |  | ; | @7075 |  | 19 | 6+ | 0000000 |  | o00 | 0 |  |  |  | ; |  |  | 20 | 7 | 1160006 |  | jo | ep6# |  |  |  | ; | @7076 |  | 21 | 7+ | 1100006 |  | jmp | ep6# |  |  |  | ; |  |  | 22 | 8 |  | ;-------------------------------------------------------------------- |  |  | 23 | 8 |  | CheckStack:: | ; |  |  |  | 24 | 8 | 0000000000000 | .lnk: | +0 | ;return address | @7077 |  | 25 | 9 |  | ;--------------- |  |  | 26 | 9 |  | ; checkstack - if stack has reached lomem, see if we can extend |  |  | 27 | 9 |  | ;         if not goto SpaceOflo |  |  | 28 | 9 |  | ; stack pointer in acc on entry |  |  | 29 | 9 |  | ; |  |  | 30 | 9 |  | .ent: | ; |  |  |  | 31 | 9 | 0120031 |  | sub | lomem |  |  |  | ;compare pointer | @7078 |  | 32 | 9+ | 1020013 |  | jn | .1 |  |  |  | ;problems-> |  |  | 33 | 10 |  |  | ret |  |  |  |  | ;OK, return | @7079 |  | 33+1 | 10 | 0000043000001 |  | o00 | CheckStack.lnk | / | jmp | 1 |  |  |  | 34 | 11 |  | ; |  |  | 35 | 11 |  | ; only way to make more space is to overwrite the compiler etc. |  |  | 36 | 11 |  | ; modify entry points to indicate reload needed |  |  | 37 | 11 |  | ; |  |  | 38 | 11 |  | CheckStacka.lnk= ëÿ¿P/@hëÿ¿hX@Ø ôÿ¿ÿCheckStack.lnk | ; |  |  |  | 39 | 11 |  | CheckStacka.ent: | ; |  |  |  | 40 | 11 |  | .1: | ; |  |  |  | 41 | 11 | 0615155 |  | lod | Jcorrupt |  |  |  | ;= | @7080 | | 42 | 11+ | 0400011 |  | sto | ep9 |  |  |  | ;set up entry points |  |  | 43 | 12 | 0400010 |  | sto | ep8 |  |  |  | ;ditto | @7081 |  | 44 | 12+ | 0056220 |  | o02 | K15a |  |  |  | ;=15+1=>16 |  |  | 45 | 13 | 0320031 |  | o15 | lomem |  |  |  | ;store, and subtract | @7082 |  | 46 | 13+ | 1040014 |  | jz | SpaceOflo |  |  |  | ;out of memory |  |  | 47 | 14 | 0600027 |  | lod | stkpt |  |  |  | ; | @7083 |  | 48 | 14+ | 1000011 |  | jmp | .ent |  |  |  | ;and try again |  |  | 49 | 15 |  | ;-------------------------------------------------------------------- |  |  | 50 | 15 |  | ; |  |  | 51 | 15 |  | pause:: | ; |  |  |  | 52 | 15 |  | pause: | ; |  |  |  | 53 | 15 | 1600000 |  | kbd | 0 |  |  |  | ;get initial state | @7084 |  | 54 | 15+ | 1120021 |  | jn | .2 |  |  |  | ;sign bit set-> |  |  | 55 | 16 |  | ;loop until sign bit is set |  |  | 56 | 16 |  | ; |  |  | 57 | 16 |  | .1: | ; |  |  |  | 58 | 16 | 1600000 |  | kbd | 0 |  |  |  | ;read state again | @7085 |  | 59 | 16+ | 1020000 |  | jn | Return |  |  |  | ;negative, return |  |  | 60 | 17 | 1000020 |  | jmp | .1 |  |  |  | ;not yet, continue | @7086 |  | 61 | 17+ |  | ; |  |  | 62 | 17+ |  | ;loop until sign bit clears |  |  | 63 | 17+ |  | .2: | ; |  |  |  | 64 | 17+ | 1600000 |  | kbd | 0 |  |  |  | ;read state again |  |  | 65 | 18 | 1120021 |  | jn | .2 |  |  |  | ;loop while still set | @7087 |  | 66 | 18+ | 1000000 |  | jmp | Return |  |  |  | ;exit |  |  | 67 | 19 |  | ;-------------------------------------------------------------------- |  |  | 68 | 19 |  | ; DWait, Data Wait - emit warbling sound while waiting for |  |  | 69 | 19 |  | ;  leftmost F2 digit to be toggled |  |  | 70 | 19 |  | ; |  |  | 71 | 19 |  | DWait:: | ; |  |  |  | 72 | 19 |  | DWait: | ; |  |  |  | 73 | 19 | 1600000 |  | kbd | 0 |  |  |  | ;test for F2 bit | @7088 |  | 74 | 19+ | 0075156 |  | and | F2bit |  |  |  | ;=<00 0:40 0> get initial setting |  |  | 75 | 20 | 1040027 |  | jz | .1 |  |  |  | ;not set, wait for it | @7089 |  | 76 | 20+ |  | ; |  |  | 77 | 20+ |  | ; bit already set, wait for it to clear |  |  | 78 | 20+ |  | ; |  |  | 79 | 20+ | 1600000 |  | kbd | 0 |  |  |  | ;input state of k/b |  |  | 80 | 21 | 0075156 |  | and | F2bit |  |  |  | ;=<00 0:40 0> | @7090 |  | 81 | 21+ | 1055212 |  | jz | CkoRet |  |  |  | ;now clear, return |  |  | 82 | 22 |  |  | calln | , |  |  |  | ; returns at 7090 | @7091 |  | 82+1 | 22 | 7300021000033 |  | lnk | 4 | : | jmp | Delay |  |  |  | 83 | 23 |  | ; |  |  | 84 | 23 |  | ; bit not set, wait for it to set |  |  | 85 | 23 |  | ; |  |  | 86 | 23 |  | .1: | ; |  |  |  | 87 | 23 | 1600000 |  | kbd | 0 |  |  |  | ;input state of k/b | @7092 |  | 88 | 23+ | 0075156 |  | and | F2bit |  |  |  | ;=<00 0:40 0> |  |  | 89 | 24 | 1040031 |  | jz | .2 |  |  |  | ;still set, wait | @7093 |  | 90 | 24+ | 1015212 |  | jmp | CkoRet |  |  |  | ;cleared, return |  |  | 91 | 25 |  | ; |  |  | 92 | 25 |  | .2: | ; |  |  |  | 93 | 25 |  |  | calln | , |  |  |  | ;very odd return (7092+) | @7094 |  | 93+1 | 25 | 7300021000033 |  | lnk | 4 | : | jmp | Delay |  |  |  | 94 | 26 |  | ; |  |  | 95 | 26 | 7777777777700 | KM64: | -64 | ; | @7095 |  | 96 | 27 |  | ; |  |  | 97 | 27 |  | ; delay subroutine, issue two-tone wail and read keyboard |  |  | 98 | 27 |  | ; |  |  | 99 | 27 |  | Delay: | ; |  |  |  | 100 | 27 | 0600032 |  | lod | KM64 |  |  |  | ;=-64 | @7096 |  | 101 | 27+ |  | .3: | ; |  |  |  | 102 | 27+ | 0136210 |  | sub | N1 |  |  |  | ;=-1 |  |  | 103 | 28 | 0000000000000 |  | 00 | 0 | : | 00 | 0 | ;four no-ops | @7097 |  | 104 | 29 | 0000000000000 |  | 00 | 0 | : | 00 | 0 | ;to set tone | @7098 |  | 105 | 30 | 1120033 |  | jn | .3 |  |  |  | ;repeat 64 times | @7099 |  | 106 | 30+ | 0600032 |  | lod | KM64 |  |  |  | ;=-64 |  |  | 107 | 31 |  | .4: | ; |  |  |  | 108 | 31 | 0136210 |  | sub | N1 |  |  |  | ;=-1 | @7100 |  | 109 | 31+ | 0000000 |  | o00 | 0 |  |  |  | ;three no-ops |  |  | 110 | 32 | 0000000000000 |  | 00 | 0 | : | 00 | 0 | ;to set different tone | @7101 |  | 111 | 33 | 1020037 |  | jn | .4 |  |  |  | ;repeat 64 times | @7102 |  | 112 | 33+ | 1600000 |  | kbd | 0 |  |  |  | ;get keyboard setting |  |  | 113 | 34 | 0000023077776 |  | o00 | 4 | / | jmp | -2# | ;and very odd return | @7103 |  | 114 | 35 |  | ;-------------------------------------------------------------------- |  |  |  |