GMT DEMO PROGRAM MACRO V05.00 Tuesday 09-Oct-84 07:27 Table of contents 1- 3 THE DEMO PROGRAM 1- 56 THE TIME COUNTER ROUTINE GMT DEMO PROGRAM MACRO V05.00 Tuesday 09-Oct-84 07:27 Page 1 1 .TITLE GMT DEMO PROGRAM 2 000000 .PSECT GMT 3 .SBTTL THE DEMO PROGRAM 4 5 ; THE GLOBAL LABEL ALLOWS PRELOADING OF THE RELOCATION REGISTER 6 7 000000 GMT:: 8 9 ; FOR DEBUG PURPOSES WE CAN PRELOAD "RREG.0" 10 11 000000 012767 000000' 000000G MOV #GMT,RREG.0 ; Reloc reg "0" 12 13 ; AND THE BREAKPOINT REGISTERS ALSO 14 15 000006 012767 000110' 000000G MOV #BREAK1,BKPT.0 ; The break address 16 000014 016767 000070 000000G MOV BREAK1,INST.0 ; The instruction 17 000022 012767 000003 000060 MOV #3,BREAK1 ; The trap 18 000030 012767 000116' 000000G MOV #BREAK2,BKPT.1 ; The break address 19 000036 016767 000054 000000G MOV BREAK2,INST.1 ; The instruction 20 000044 012767 000003 000044 MOV #3,BREAK2 ; The trap 21 000052 012767 000136' 000000G MOV #STOP,BKPT.7 ; Inline code!! 22 000060 016767 000052 000000G MOV STOP,INST.7 ; Insure it is accessed 23 000066 012767 000003 000042 MOV #3,STOP ; each iteration 24 25 ; Load the LTC vector with the service routine address 26 27 000074 012737 000170' 000100 MOV #GMTCNT,@#100 ; LTC will do the counting for us 28 000102 012737 000341 000102 MOV #341,@#102 ; HIGHEST PRIORITY WE CAN GET 29 30 ; Stop and view the menu 31 ; THE LTC VECTOR IS USED BY THE PROGRAM 32 ; ODTV09 can now steal it for it's own purposes 33 ; and execute the original routine when it's done 34 35 000110 012767 177777 000220 BREAK1: MOV #-1,EXCLGT ; could be any valid instruction 36 ; stop the timer where it is! 37 38 ; THE SECOND BREAK WILL WRITE THE DISPLAY TO THE SCREEN 39 40 000116 000240 BREAK2: NOP 41 42 ; ";P" & "D" ON THE KEYBOARD WILL DISPLAY THE GMT TIMER SYMBOLS 43 44 000120 005767 000000G START: TST FFLG.0 ; FFLG.0=1 WILL START THE TIMER 45 000124 001404 BEQ STOP 46 000126 005067 000204 CLR EXCLGT ; ALLOW THE COUNT 47 000132 005067 000000G CLR FFLG.0 ; Reset the flag for nxt time 48 000136 006267 000000G STOP: ASR FFLG.1 ; SET TO STOP THE COUNTER 49 000142 103003 BCC CONTIN ; CONTINUE 50 000144 012767 177777 000164 MOV #-1,EXCLGT ; -1 halts the count(but retains it) 51 000152 006267 000000G CONTIN: ASR FFLG.2 ; FFLG.2 also halts, but resets it 52 000156 103360 BCC START 53 000160 012767 000001 000150 MOV #1,EXCLGT ; Reset the count and stop 54 000166 000754 BR START 55 56 .SBTTL THE TIME COUNTER ROUTINE 57 GMT DEMO PROGRAM MACRO V05.00 Tuesday 09-Oct-84 07:27 Page 1-1 THE TIME COUNTER ROUTINE 58 ; GMT = GREENWICH MEAN TIME 59 ; IT MAY BE RESET BY THE APPLICATION PROGRAM AT ANY TIME 60 ; IT MAY BE INHIBITED BY...SET EXCLGT! 61 62 000170 004767 000160 GMTCNT: CALL SAVE ; SAVE ALL REG'S 63 000174 012705 000336' MOV #EXCLGT,R5 ; USE A REG FOR EVERY THING 64 000200 005725 TST (R5)+ ; IS THE FLAG ON? 65 000202 001407 BEQ 1$ ; NO SWITCH IS ON! 66 000204 100447 BMI 5$ ; SKIP IT (AS IS) 67 000206 005165 177776 COM -2(R5) ; DO IT ONLY ONCE 68 000212 005725 TST (R5)+ ; SKIP THE TICKER 69 000214 005025 CLR (R5)+ ; CLR THE SECS & MINS 70 000216 005025 CLR (R5)+ ; AND THE HOURS 71 000220 000415 BR 3$ ; TO FINISH IT 72 73 000222 105365 000001 1$: DECB 1(R5) ; 60 TICKS PER SEC 74 000226 100036 BPL 5$ ; ONE SECOND MUST PASS 75 000230 112525 MOVB (R5)+,(R5)+ ; RELOAD TICKER 76 000232 012703 000003 MOV #3,R3 ; 3 LOOPS 77 000236 012704 000332' MOV #MAXLST,R4 ; THE MAX COUNTS 78 000242 105215 2$: INCB (R5) ; BIN CNT OF SEC'S 79 000244 121524 CMPB (R5),(R4)+ ; ONE MINUTE? 80 000246 103402 BCS 3$ 81 000250 105025 CLRB (R5)+ ; START OVER..NEW MINUTE 82 000252 077305 SOB R3,2$ ; CHK THE REST 83 000254 012703 000003 3$: MOV #3,R3 ; 3 SHIFT CYCLES 84 000260 012705 000344' MOV #BINHRS,R5 ; THE BINARY IS 85 000264 012702 000352' MOV #ASCHRS,R2 ; CONVERTED TO ASCII 86 000270 111501 4$: MOVB (R5),R1 ; BIN VALUE 87 000272 042701 177600 BIC #177600,R1 ; CLEAN IT UP 88 000276 005000 CLR R0 ; QUOTIENT 89 000300 071027 000012 DIV #10.,R0 ; THE TENS DIGIT 90 000304 110062 000001 MOVB R0,1(R2) ; GOES HERE 91 000310 110112 MOVB R1,(R2) ; REMAINDER IS HERE 92 000312 062712 030060 ADD #30060,(R2) ; MAKE THEM ASCII 93 000316 005742 TST -(R2) ; DECR BY TWO 94 000320 005305 DEC R5 ; BACKUP 95 000322 077316 SOB R3,4$ ; 3 BYTES WORTH 96 000324 004767 000052 5$: CALL RSTORE 97 000330 000002 RTI ; RETURN 98 99 000332 074 074 030 MAXLST: .BYTE 60.,60.,24.,0 ; MAX COUNTS IN BINARY 000335 000 100 000336 000000 EXCLGT::.WORD 0 ; THE EXCLUDE FLG 101 000340 000073 TICKS: 59. ; TICK COUNTER 102 000342 000 BINSEC::.BYTE 0 ; SECONDS CTR 103 000343 000 BINMIN::.BYTE 0 ; MINUTES CTR 104 000344 000000 BINHRS::.WORD 0 ; HOURS CTR 105 000346 000000 ASCSEC::.WORD 0 ; ASCII SECONDS 106 000350 000000 ASCMIN::.WORD 0 ; ASCII MINUTES 107 000352 000000 ASCHRS::.WORD 0 ; ASCII HOURS 108 109 ; SUBRS TO SAVE AND RESTORE THE 6 GENERAL PURPOSE REGISTERS 110 111 .ENABL LSB 112 000354 012627 SAVE: MOV (SP)+,(PC)+ 113 000356 000000 1$: .WORD 0 GMT DEMO PROGRAM MACRO V05.00 Tuesday 09-Oct-84 07:27 Page 1-2 THE TIME COUNTER ROUTINE 114 000360 010046 MOV R0,-(SP) 115 000362 010146 MOV R1,-(SP) 116 000364 010246 MOV R2,-(SP) 117 000366 010346 MOV R3,-(SP) 118 000370 010446 MOV R4,-(SP) 119 000372 010546 MOV R5,-(SP) 120 000374 016746 177756 MOV 1$,-(SP) 121 000400 000207 RETURN 122 123 000402 012667 177750 RSTORE: MOV (SP)+,1$ 124 000406 012605 MOV (SP)+,R5 125 000410 012604 MOV (SP)+,R4 126 000412 012603 MOV (SP)+,R3 127 000414 012602 MOV (SP)+,R2 128 000416 012601 MOV (SP)+,R1 129 000420 012600 MOV (SP)+,R0 130 000422 016746 177730 MOV 1$,-(SP) 131 000426 000207 RETURN 132 133 .DSABL LSB 134 135 000000' .END GMT GMT DEMO PROGRAM MACRO V05.00 Tuesday 09-Oct-84 07:27 Page 1-3 Symbol table ASCHRS 000352RG 002 BKPT.0= ****** GX EXCLGT 000336RG 002 INST.0= ****** GX RSTORE 000402R 002 ASCMIN 000350RG 002 BKPT.1= ****** GX FFLG.0= ****** GX INST.1= ****** GX SAVE 000354R 002 ASCSEC 000346RG 002 BKPT.7= ****** GX FFLG.1= ****** GX INST.7= ****** GX START 000120R 002 BINHRS 000344RG 002 BREAK1 000110R 002 FFLG.2= ****** GX MAXLST 000332R 002 STOP 000136R 002 BINMIN 000343RG 002 BREAK2 000116R 002 GMT 000000RG 002 RREG.0= ****** GX TICKS 000340R 002 BINSEC 000342RG 002 CONTIN 000152R 002 GMTCNT 000170R 002 . ABS. 000000 000 (RW,I,GBL,ABS,OVR) 000000 001 (RW,I,LCL,REL,CON) GMT 000430 002 (RW,I,LCL,REL,CON) Errors detected: 0 *** Assembler statistics Work file reads: 0 Work file writes: 0 Size of work file: 44 Words ( 1 Pages) Size of core pool: 15616 Words ( 61 Pages) Operating system: RT-11 Elapsed time: 00:00:15.53 DY:GMT,DY:GMT=DY:GMT