REM REM ************************************************* REM * Dragon file header: * REM * Start: $2401 Length: $074c Exec: $8b8d * REM *(Start: 09217 Length: 01868 Exec: 35725) * REM ************************************************* REM 10 :'DUMP PROGRAM 20 :'PEEKS A WORD (16 BITS) 30 DEF FN W(A)= PEEK (A)*256+ PEEK (A+1) 40 DIM ZZ(2),XX(2,1),ZZ$(2),XX$(2,1) 50 DIM XY(1,2,3) 60 :'DEFINING VARIABLES BEFORE USE 70 FOR I=0 TO 2 80 ZZ(I)=I:ZZ$(I)= STR$ (I) 90 FOR J=0 TO 1 100 XX(I,J)=C:XX$(I,J)= STR$ (C) 110 XY(J,I,0)=C 120 C=C+1 130 NEXT J,I 140 PS=0 150 PE=0 160 VS=0 170 VE=0 180 AS=0 190 AE=0 200 DA=0 210 NA=0 220 DV=0 230 DBYTE=0:AN$="":SBYTE=0 240 R=0:H3=0:H2=0:H1=0:H0=0 250 PA=&H19 260 PS= FN W(PA) 270 VS= FN W(PA+2) 280 AS= FN W(PA+4) 290 PE=VS-1 300 VE=AS-1 310 AE= FN W(PA+6)-1 320 CLS 330 INPUT "OUTPUT TO PRINTER";AN$ 340 IF AN$="Y" THEN DV=-2 : ELSE DV=0 350 PRINT #DV,"PROGRAM START ADDRESS = ";:DBYTE=PS 360 GO SUB 790: PRINT #DV 370 PRINT #DV,"PROGRAM END ADDRESS = ";:DBYTE=PE 380 GO SUB 790: PRINT #DV 390 PRINT #DV,"VARIABLE START ADDRESS = ";:DBYTE=VS 400 GO SUB 790: PRINT #DV 410 PRINT #DV,"VARIABLE END ADDRESS = ";:DBYTE=VE 420 GO SUB 790: PRINT #DV 430 PRINT #DV,"ARRAY START ADDRESS = ";:DBYTE=AS 440 GO SUB 790: PRINT #DV 450 PRINT #DV,"ARRAY END ADDRESS = ";:DBYTE=AE 460 GO SUB 790: PRINT #DV 470 INPUT "DO YOU WISH A PROGRAM DUMP";AN$ 480 IF AN$<>"Y" THEN GO TO 640 490 PRINT #DV,"PROGRAM DUMP" 500 DA=PS 510 NA= FN W(DA) 520 IF (NA=0) OR (DA=PE) THEN 630 530 PRINT #DV: PRINT #DV 540 DBYTE=DA: GO SUB 790 550 PRINT #DV 560 DBYTE=NA: GO SUB 790 570 DA=DA+2 580 DBYTE= FN W(DA): GO SUB 790 590 DA=DA+2 600 SBYTE= PEEK (DA): GO SUB 870 610 DA=DA+1 620 IF DA<>NA THEN GO TO 600 : ELSE GO TO 510 630 PRINT #DV 640 INPUT "DO YOU VANT A VARIABLE DUMP";AN$ 650 IF AN$<>"Y" THEN GO TO 700 660 PRINT #DV: PRINT #DV: PRINT #DV,"VARIABLE DUMP" 670 FOR DA=VS TO VE 680 SBYTE= PEEK (DA): GO SUB 870 690 NEXT DA 700 PRINT #DV 710 INPUT "DO WANT AN ARRAY DUMP";AN$ 720 IF AN$<>"Y" THEN GO TO 770 730 PRINT #DV: PRINT #DV: PRINT #DV,"ARRAY DUMP" 740 FOR DA=AS TO AE 750 SBYTE= PEEK (DA): GO SUB 870 760 NEXT DA 770 PRINT #DV: PRINT #DV,"DUMP FINISHED" 780 STOP 790 :'PRINT 2 BYTES AS 4 HEX CHARS 800 R=DBYTE 810 H3= INT (R/4096):R=DBYTE-H3*4096 820 H2= INT (R/256):R=R-H2*256 830 H1= INT (R/16):H0=R-H1*16 840 HW$= HEX$ (H3)+ HEX$ (H2)+ HEX$ (H1)+ HEX$ (H0) 850 PRINT #DV, USING " ";HW$ 860 RETURN 870 :'PRINT 1 BYTE AS A CHARACTER 880 PRINT CHR$ (SBYTE); 890 RETURN