linux-74ag:/usr/local/src/ddp516 # ./h316-370t H316t simulator V3.7-0 sim> set console log=frtn4p.log Logging to file "frtn4p.log" sim> attach -b ptr frtn4p.ptp sim> boot ptr [boot the compiler to test] HALT instruction, P: 37633 (STA 24) sim> reset all sim> attach -a ptr apfel3.src [source program into the high speed papertape reader] sim> attach -b ptp apfel3.obj [object program on the high speed papertape puncher] sim> deposit ss1 0 [no expanded listing] sim> deposit ss2 1 [no expanded listing] sim> deposit a 311 [device selaction: source=ptr, list=tty, object=ptp] sim> run 1000 [start the compilation; listing on the tty] 1 C APFELMAENNCHEN-PROGRAMM, 02.APRIL.2006 PHILIPP HACHTMANN 2 C INTERMEDIATE VERSION 3 C 4 C THIS VERSION SHOULD RUN A BIT FASTER BECAUSE THE SQUARE 5 C ROOT IS OMMITTED. 6 C 7 C SWITCH SETTINGS: 8 C SENSE-SWITCH 1: IF SET, ASK FOR PARAMETERS 9 C SENSE-SWITCH 2: IF SET, DON'T PRINT PARAMETERS ON START 10 C SENSE-SWITCH 3: IF SET, RESTORE PARAMETERS TO DEFAULT VALUES 11 C 12 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 13 C COMMON BLOCK DECLARATIONS 14 C 15 COMMON IDUM 16 DIMENSION IDUM(2500) 17 INTEGER MAXI,WIDTH,CR,LF,POSI,NEGA 18 COMMON /PARAM2/MAXI,WIDTH,CR,LF,POSI,NEGA 19 C 20 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 21 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 22 C 23 INTEGER INIT 24 COMMON /PARAM3/INIT 25 C 26 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 27 C START MESSAGE 28 100 WRITE (1,10) 29 10 FORMAT (46HMANDELBROT-DEMO 3RC1 02.04.2006, PH. HACHTMANN, 30 + 20H - PRELIMIMARY ISSUE) 31 C 32 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 33 C CONFIGURATION 34 CCCCCC RESET DO DEFAULT VALUES? 35 110 CALL SSWTCH(3,I) 36 IF (I.EQ.1) CALL RST 37 C 38 CCCCCC ON THE FIRST START OR IF DESIRED 39 IF(INIT.EQ.0) CALL STVAL 40 C 41 CCCCCC DO WE HAVE TO ASK FOR PARAMETERS? 42 CALL SSWTCH(1,I) 43 IF (I.EQ.1) CALL GETCFG 44 C 45 CCCCCC OUTPUT SETTINGS? 46 CALL SSWTCH(2,I) 47 IF(I.EQ.2) CALL OUTCFG 48 C 49 WRITE (1,55) 50 55 FORMAT (1H0) 51 C 52 CALL CALC2 53 C 54 WRITE(1, 60) 55 60 FORMAT (5HREADY) 56 C 57 CCCCCC BREAK WITH 7 IN A REG, THEN START OVER 58 PAUSE 7 59 GO TO 100 60 END 61 C END OF MAIN PROGRAM 62 C 63 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 64 CCCCCC THE MANDELBROT SET CALCULATION 65 SUBROUTINE CALC2 66 C 67 INTEGER MAXI,WIDTH,CR,LF 68 COMMON /PARAM2/MAXI,WIDTH,CR,LF 69 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 70 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 71 REAL CMPAVL 72 REAL ZR,ZI,ZRN 73 REAL X,Y 74 INTEGER COUNT 75 C 76 CCCCCC ENTER THE CALCULATION 77 299 CMPVAL=MAXVAL*MAXVAL 78 X=LOWX 79 Y=HIGHY 80 C 81 CCCCCC EINSTIEG IN DEN AKTUELLEN PUNKT 82 300 COUNT=0 83 ZR=0.0 84 ZI=0.0 85 C 86 CCCCCC HIER DER ITERIERTE TEIL 87 C 88 400 ZRN=ZR*ZR-ZI*ZI+X 89 ZI=2.0*ZR*ZI+Y 90 ZR=ZRN 91 C 92 IF ((ZR*ZR+ZI*ZI).GE.CMPVAL) GO TO 410 93 COUNT=COUNT+1 94 IF (COUNT.GE.MAXI) GO TO 410 95 GO TO 400 96 C 97 CCCCCC PUNKT FERTIG 98 410 NOUT=32 99 IF (COUNT.GE.8) NOUT=46 100 IF (COUNT.GE.23) NOUT=43 101 IF (COUNT.EQ.MAXI) NOUT=64 102 C NOUT=46 103 411 CALL PCHAR(NOUT) 104 GO TO 500 105 C 106 CCCCCC NEUEN PUNKT MACHEN 107 500 X = X + XSTEP 108 CCCCCC ZEILE NOCH NICHT VOLL? 109 IF (X.LE.HIGHX) GO TO 300 110 CCCCCC X AN ANFANG SETZTEN, CR+LF DRUCKEN 111 X = LOWX 112 CALL PCHAR(CR) 113 CALL PCHAR(LF) 114 CCCCCC Y WEITERRUECKEN - NEGATIV WEIL WIR VON OBEN KOMMEN 115 Y=Y-YSTEP 116 IF (Y.GE.LOWY) GO TO 300 117 C 118 CCCCCC HIER IST DAS BILD FERTIG. 119 RETURN 120 END 121 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 122 CCCCCC STARTWERTE AUSFUELLEN 123 SUBROUTINE STVAL 124 C 125 INTEGER MAXI,WIDTH,CR,LF 126 COMMON /PARAM2/MAXI,WIDTH,CR,LF 127 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 128 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 129 INTEGER INIT 130 COMMON /PARAM3/INIT 131 C 132 CR = 13 133 LF = 10 134 WIDTH = 70 135 MAXI = 60 136 MAXVAL = 2.0 137 LOWX =-1.45 138 HIGHX = 0.45 139 LOWY =-1.00 140 HIGHY = 1.00 141 INIT = 1 142 C 143 CCCCCC SCHRITTWEITEN AUSRECHNEN 144 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH) 145 YSTEP = 2.0 * XSTEP 146 C 147 WRITE (1,1500) 148 1500 FORMAT (20HDEFAULT VALUES USED.) 149 RETURN 150 END 151 C 152 C 153 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 154 CCCCCC EINSTELLUNGEN EINLESEN 155 SUBROUTINE GETCFG 156 C 157 INTEGER MAXI,WIDTH,CR,LF 158 COMMON /PARAM2/MAXI,WIDTH,CR,LF 159 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 160 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 161 C 162 REAL XIN1,XIN2,YIN1,YIN2 163 C 164 WRITE(1,11) 165 READ (1,16) XIN1 166 WRITE(1,12) 167 READ (1,16) XIN2 168 WRITE(1,13) 169 READ (1,16) YIN1 170 WRITE(1,14) 171 READ (1,16) YIN2 172 WRITE(1,15) 173 READ (1,17) MAXI 174 C 175 11 FORMAT(14H X FROM : ) 176 12 FORMAT(14H TO : ) 177 13 FORMAT(14H Y FROM : ) 178 14 FORMAT(14H TO : ) 179 15 FORMAT(14H MAXIT (I3): ) 180 16 FORMAT(F12.0) 181 17 FORMAT(I3) 182 C 183 CCCCCC EVENTUELL STARTWERTE TAUSCHEN: 184 CCCCCC WENN XIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN 185 150 I F(XIN2.GT.XIN1) GO TO 200 186 TEMP = XIN1 187 XIN1 = XIN2 188 XIN2 = TEMP 189 C 190 CCCCCC WENN YIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN 191 200 IF(YIN2.GT.YIN1) GO TO 201 192 TEMP = YIN1 193 YIN1 = YIN2 194 YIN2 = TEMP 195 C 196 CCCCCC WERTE UEBERNEHMEN 197 201 LOWX = XIN1 198 HIGHX = XIN2 199 LOWY = YIN1 200 HIGHY = YIN2 201 C 202 CCCCCC SCHRITTWEITEN AUSRECHNEN 203 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH) 204 YSTEP = 2.0 * XSTEP 205 C 206 RETURN 207 END 208 C 209 C 210 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 211 CCCCCC EINSTELLUNGEN AUSGEBEN 212 SUBROUTINE OUTCFG 213 C 214 INTEGER MAXI,WIDTH,CR,LF 215 COMMON /PARAM2/MAXI,WIDTH,CR,LF 216 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 217 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP 218 C 219 WRITE (1,20) 220 20 FORMAT (9HSETTINGS:) 221 WRITE (1,30) LOWX, HIGHX 222 30 FORMAT (12HX-WERTE VON ,1F8.5,5H BIS ,1F8.5) 223 WRITE (1,40) LOWY, HIGHY 224 40 FORMAT (12HY-WERTE VON ,F8.5,5H BIS ,F8.5) 225 WRITE (1,50) MAXI, MAXVAL, XSTEP, YSTEP, WIDTH 226 50 FORMAT ( 4HMAX:,I3, 227 + 8H MAXVAL:,F8.5, 228 + 7H XSTEP:,F8.5, 229 + 7H YSTEP:,F8.5, 230 + 7H WIDTH:,I2) 231 RETURN 232 END 233 C 234 C 235 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 236 CCCCCC RUECKSETZEN 237 SUBROUTINE RST 238 C 239 INTEGER MAXI,WIDTH,CR,LF 240 COMMON /PARAM2/MAXI,WIDTH,CR,LF 241 C LINE BELOW ADDED CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 242 COMMON /PARAM3/INIT 243 C 244 WRITE(1,245) 245 245 FORMAT(25HPARAMETER RESET REQUESTED) 246 INIT=0 247 RETURN 248 END 249 C 250 C 251 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 252 C PRELOAD VALUE OF INIT 253 BLOCK DATA 254 INTEGER INIT 255 COMMON /PARAM3/INIT 256 DATA INIT/0/ 257 END 258 CCCCCCCCCCCCCCCCCCCCCCCC 259 $0 END OF JOB HALT instruction, P: 15427 (JST 15431) [compilation ready] sim> detach ptr sim> detach ptp sim> attach -b ptr ldre16kslst.ptp [boot the loader in order to link/load the program] sim> boot ptr HALT instruction, P: 37633 (STA 24) sim> reset all sim> attach ptr apfel3.obj [the just translated main program => high speed papertape reader] sim> go 37000 HALT instruction, P: 37445 (STA 37661) sim> cont [load the main program] MR HALT instruction, P: 34306 (JMP* 34272) sim> attach -b ptr pchar.obj [subroutine => high speed papertape reader] sim> cont [ and load ] MR HALT instruction, P: 34306 (JMP* 34272) sim> attach -b ptr libfor1.ptp [fortran runtimelib tape 1 => high speed papertape reader] sim> cont [ and load ] MR HALT instruction, P: 34306 (JMP* 34272) sim> attach -b ptr libfor2.ptp [fortran runtimelib tape 2 => high speed papertape reader] sim> cont [ and load ] MR HALT instruction, P: 34306 (JMP* 34272) sim> attach -b ptr libfor3.ptp [fortran runtimelib tape 3 => high speed papertape reader] sim> cont [ and load ] MR HALT instruction, P: 34306 (JMP* 34272) sim> attach -b ptr libasr.ptp [io library tape => high speed papertape reader] sim> con [ and load ] LC [.... loading complete ...., program ready to run] HALT instruction, P: 34306 (JMP* 34272) sim> go 37002 [ask for a memory map] *LOW 01000 *START 01000 *HIGH 06602 *NAMES 33416 *COMN 32747 *BASE 00322 CALC2 01164 STVAL 01454 GETCFG 01602 OUTCFG 02114 RST 02312 PCHAR 02344 FLOAT 02362 C$12 02372 S$22 02424 A$22 02432 M$22 02652 D$22 03053 DIV$ 03250 REAL 03330 SNGL 03330 L$22 03330 H$22 03340 N$22 03356 SLITE 03370 SLITET 03404 SSWTCH 03425 L$33 03502 ARG$ 03516 F$R1 03536 F$W1 03550 O$AP 03646 O$AC 03720 O$AF 03724 F$IO 03734 F$AR 04257 F$CB 04435 F$ER 06320 F$HT 06330 I$AI 06364 I$GA 06401 I$AA 06401 C$ASR 06526 PARAM2 32747 PARAM1 32755 PARAM3 32773 32774 LC HALT instruction, P: 34306 (JMP* 34272) sim> run 1000 [run the program, print output to console] MANDELBROT-DEMO 3RC1 02.04.2006, PH. HACHTMANN - PRELIMIMARY ISSUE DEFAULT VALUES USED. ....... ..... ...++... ....+@@+.... .++@@@@@@@+. ...+@@@@@@@... ........+......+@@@@@........ .. +.+@.+...@+@@@@@@@@@@@@@@@+@+...+..... ..@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@+.. .....+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+. ..+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@... .. ...+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.... ...... ...... ..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+. ...+......+.+.......++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.. ...+@@+@@@@@@++.....@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@... ....@@@@@@@@@@@@@+..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.. ........@@@@@@@@@@@@@@@@+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@++ ...+.+..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ..++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.. ...+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+. ...+....@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. ........@@@@@@@@@@@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+ ....+@@@@@@@@@@@@+...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+. ...+@@++@@@@+@......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@... ...++....@+.+.......++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.. ..... .+.. .+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.. .. ...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.. + .++.+.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@... ....+@@@@@@@@@@@@@@@@@@@@@@@@@@@+@@@.+ .++@@@.@@@@@@@@@@@@@@@@@@@@@@@..@@++.. .++++...+@++@@@@@@@@@@@@@+.@......... ...... ........+@@@@@@....... . ...@@@@@@@@+.. ...@@@@@@@+.. .+..++@@...+ ....++.. ..... READY PA HALT instruction, P: 06351 (IRS 6320) [program ended] sim> bye [stop/exit the simulator] Goodbye Log file closed linux-74ag:/usr/local/src/ddp516 #