On Tuesday, November 7, 2017 at 6:29:26 PM UTC-8, James Davis wrote:
> You can extract Apple II files to Windows text files and vice-versa with CiderPress from/to disk images or shrink-it files.
Here are the two versions of your hello as I extracted them with CiderPress from your two disk images:
BeagleBrosDOSBossMyCopy1HELLO.txt
0 DIM CL(3):CL(0) = 7:CL(1) = 18:CL(2) = 29
10 REM AZ=ALTZP
20 REM P2=PAGE2
30 REM S8=80STORE
40 REM HI=HIRES
50 REM RR=RAMRD
60 REM RW=RAMWRT
70 REM HR=HRAMRD
80 REM HW=HRAMWRT
90 REM B1=BANK1
100 GOSUB 2230 REM DISPLAY SCREEN BACKDROP
105 GOSUB 2500 REM UPDATE SCREEN WITH DATA
110 GOSUB 2405 REM PROCESS KEYPRESS
115 GOTO 105
999 RETURN
1000 REM *** DETERMINE HIGH READ
1010 IF AD < 53248 THEN RT$ = "": RETURN
1015 IF HR = 0 THEN GOTO 1055
1020 IF AD < 57344 THEN GOTO 1035
1025 IF AZ = 1 THEN RT$ = " AUX ": RETURN
1030 RT$ = " RAM ": RETURN
1035 IF AZ = 1 AND B1 = 0 THEN RT$ = " AUX B2 ": RETURN
1040 IF AZ = 1 AND B1 = 1 THEN RT$ = " AUX B1 ": RETURN
1045 IF AZ = 0 AND B1 = 0 THEN RT$ = " RAM B2 ": RETURN
1050 IF AZ = 0 AND B1 = 1 THEN RT$ = " RAM B1 ": RETURN
1055 RT$ = " ROM ": RETURN
1100 REM *** DETERMINE HIGH WRITE
1110 IF AD < 53248 THEN RT$ = "": RETURN
1115 IF HW = 1 THEN GOTO 1055
1120 GOTO 1020
1200 REM *** DETERMINE RAM READ
1205 IF AD < 512 OR AD > = 49152 THEN RT$ = "": RETURN
1210 IF RR = 1 THEN RT$ = " AUX ": RETURN
1215 RT$ = " RAM ": RETURN
1300 REM *** DETERMINE RAM WRITE
1305 IF AD < 512 OR AD > = 49152 THEN RT$ = "": RETURN
1310 IF RW = 1 THEN RT$ = " AUX ": RETURN
1315 RT$ = " RAM ": RETURN
1400 REM *** DETERMINE RW RAM
1405 IF AD > = 512 THEN GOTO 1420
1410 RT = 1: IF AZ = 1 THEN RT$ = " AUX ": RETURN
1415 RT$ = " RAM ": RETURN
1420 IF AD < 1024 OR AD > = 2048 THEN GOTO 1435
1425 RT = 2: IF P2 = 1 AND S8 = 1 THEN RT$ = " AUX ": RETURN
1430 RT$ = " RAM ": RETURN
1435 IF AD < 8192 OR AD > = 16384 THEN RT$ = "": RETURN
1440 RT = 3: IF HI = 1 AND P2 = 1 AND S8 = 1 THEN RT$ = " AUX ": RETURN
1445 RT$ = " RAM ": RETURN
1500 REM *** DETERMINE HIGH RAM READ
2000 REM *** DRAW HORIZONAL LINE ***
2005 VTAB 5: HTAB 5
2010 FOR II = 1 TO 10: PRINT "_";: NEXT II: RETURN
2020 REM *** DRAW VERTICAL LINE ***
2021 REM *** PARAM H : HTAB OF VERTICAL LINE
2025 VTAB 5: HTAB 4
2030 FOR II = 2 TO 5: HTAB H: PRINT "|": NEXT II: PRINT : FOR II = 7 TO 18: HTAB H: PRINT "|": NEXT II
2040 REM *** PRINT ADDRESSES ***
2050 VTAB 2: HTAB 1: PRINT "$FFFF"
2060 PRINT "$E000": PRINT
2070 PRINT "$D000": PRINT
2080 PRINT "$BFFF": PRINT
2090 PRINT "$3FFF"
2100 PRINT "$2000": PRINT : PRINT
2110 PRINT "$07FF"
2120 PRINT "$0400": PRINT : PRINT
2130 PRINT "$01FF"
2140 PRINT "$0000"
2150 RETURN
2160 REM *** PRINT TITLES
2170 VTAB 1: HTAB 11: PRINT "RW";: HTAB 21: PRINT "READ";: HTAB 32: PRINT "WRITE": RETURN
2180 REM *** PRINT SOFT SWITCHES ***
2190 VTAB 23: HTAB 1
2200 INVERSE : PRINT "P";: NORMAL : PRINT "AGE2 RAM";: INVERSE : PRINT "R";: NORMAL : PRINT "D ";: INVERSE : PRINT "A";: NORMAL : PRINT "LTZP HRAMR";: INVERSE : PRINT "D";: HTAB 35: PRINT "B";: NORMAL : PRINT "ANK1"
2210 INVERSE : PRINT "H";: NORMAL : PRINT "IRES RAM";: INVERSE : PRINT "W";: NORMAL : PRINT "RT ";: INVERSE : PRINT "8";: NORMAL : PRINT "0STORE HRAMWR";: INVERSE : PRINT "T";: NORMAL : PRINT "' RE";: INVERSE : PRINT "S";: NORMAL : PRINT "ET";: RETURN
2220 REM *** PRINT SCREEN ***"
2230 HOME : GOSUB 2050
2240 FOR I = 0 TO 3: READ H: VTAB 2: GOSUB 2030: NEXT I
2250 FOR I = 1 TO 10: READ V: VTAB V: HTAB 7: GOSUB 2010: HTAB 18: GOSUB 2010: HTAB 29: GOSUB 2010: NEXT I
2260 GOSUB 2170: GOSUB 2190: VTAB 1: RETURN
2300 REM *** RESET
2310 AZ = 0:P2 = 0:S8 = 0:HI = 0:RR = 0:RW = 0:HR = 0:HW = 0:B1 = 0
2315 RETURN
2400 REM *** READ KEY
2405 K = PEEK (49152): IF K < = 127 THEN GOTO 2405
2410 POKE 49168,0
2415 K$ = CHR$ (K - 128)
2420 IF K$ = "P" OR K$ = "p" THEN P2 = 1 - P2: RETURN
2425 IF K$ = "H" OR K$ = "h" THEN HI = 1 - HI: RETURN
2430 IF K$ = "R" OR K$ = "r" THEN RR = 1 - RR: RETURN
2435 IF K$ = "W" OR K$ = "w" THEN RW = 1 - RW: RETURN
2440 IF K$ = "A" OR K$ = "a" THEN AZ = 1 - AZ: RETURN
2445 IF K$ = "8" THEN S8 = 1 - S8: RETURN
2450 IF K$ = "D" OR K$ = "d" THEN HR = 1 - HR: RETURN
2455 IF K$ = "T" OR K$ = "t" THEN HW = 1 - HW: RETURN
2460 IF K$ = "B" OR K$ = "b" THEN B1 = 1 - B1: RETURN
2465 IF K$ = "S" OR K$ = "s" THEN GOSUB 2310: RETURN
2470 PRINT CHR$ (7): GOTO 2405
2500 REM *** UPDATE SCREEN WITH DATA
2501 GOSUB 2905
2505 AD = 0: GOSUB 1400: IF RT$ = "" THEN GOTO 4000
2510 C = 0:R = 17: GOSUB 2810
2515 AD = 1024: GOSUB 1400: IF RT$ = "" THEN GOTO 4000
2520 C = 0:R = 13: GOSUB 2810
2525 AD = 8192: GOSUB 1400: IF RT$ = "" THEN GOTO 4000
2530 R = 9: GOSUB 2810
2531 AD = 512:R = 15: GOSUB 2535
2532 AD = 2048:R = 11: GOSUB 2535
2533 AD = 16384:R = 7: GOSUB 2535
2534 GOTO 2565
2535 GOSUB 1200: IF RT$ = "" THEN GOTO 4000
2540 TR$ = RT$: GOSUB 1300: IF RT$ = "" THEN GOTO 4000
2545 TW$ = RT$: GOSUB 2710: IF TR$ = TW$ THEN C = 0: GOSUB 2810: RETURN
2550 C = 1:RT$ = TR$: GOSUB 2810
2555 C = 2:RT$ = TW$: GOSUB 2810
2560 RETURN
2565 AD = 53248:R = 4: GOSUB 2600
2570 AD = 57344:R = 2: GOSUB 2600
2600 GOSUB 1000: IF RT$ = "" THEN GOTO 4000
2605 TR$ = RT$: GOSUB 1100: IF RT$ = "" THEN GOTO 4000
2610 TW$ = RT$: GOSUB 2710: IF TR$ = TW$ THEN C = 0: GOSUB 2810: RETURN
2615 GOTO 2550
2700 REM *** CLEAR DATA IN ROW
2705 REM *** PARAM R=ROW
2710 FOR I = 0 TO 2: VTAB R: HTAB CL(I): PRINT " ";: NEXT I: RETURN
2800 REM *** DISPLAY DATA IN COLUMN
2805 REM *** PARAM R=ROW, C=COL, RT$=DATA
2810 VTAB R: HTAB CL(C): PRINT RT$;: RETURN
2900 REM *** DISPLAY SOFT SWITCH VALUES
2905 INVERSE : VTAB 23: HTAB 6: PRINT P2;: HTAB 14: PRINT RR;: HTAB 23: PRINT AZ;: HTAB 33: PRINT HR;: HTAB 40: PRINT B1;
2910 VTAB 24: HTAB 6: PRINT HI;: HTAB 14: PRINT RW;: HTAB 23: PRINT S8;: HTAB 33: PRINT HW;: NORMAL : RETURN
4000 VTAB 1: PRINT "ERROR"
5000 DATA 6,17,28,39
5010 DATA 1,3,5,6,8,10,12,14,16,18
BeagleBrosDOSBossMyCopy2HELLO.txt
0 DIM CL(3):CL(0) = 7:CL(1) = 18:CL(2) = 29
10 REM AZ=ALTZP
20 REM P2=PAGE2
30 REM S8=80STORE
40 REM HI=HIRES
50 REM RR=RAMRD
60 REM RW=RAMWRT
70 REM HR=HRAMRD
80 REM HW=HRAMWRT
90 REM B1=BANK1
100 GOSUB 2230 REM DISPLAY SCREEN BACKDROP
105 GOSUB 2500 REM UPDATE SCREEN WITH DATA
110 GOSUB 2405 REM PROCESS KEYPRESS
115 GOTO 105
999 RETURN
1000 REM *** DETERMINE HIGH READ
1010 IF AD < 53248 THEN RT$ = "": RETURN
1015 IF HR = 0 THEN GOTO 1055
1020 IF AD < 57344 THEN GOTO 1035
1025 IF AZ = 1 THEN RT$ = " AUX ": RETURN
1030 RT$ = " RAM ": RETURN
1035 IF AZ = 1 AND B1 = 0 THEN RT$ = " AUX B2 ": RETURN
1040 IF AZ = 1 AND B1 = 1 THEN RT$ = " AUX B1 ": RETURN
1045 IF AZ = 0 AND B1 = 0 THEN RT$ = " RAM B2 ": RETURN
1050 IF AZ = 0 AND B1 = 1 THEN RT$ = " RAM B1 ": RETURN
1055 RT$ = " ROM ": RETURN
1100 REM *** DETERMINE HIGH WRITE
1110 IF AD < 53248 THEN RT$ = "": RETURN
1115 IF HW = 1 THEN GOTO 1055
1120 GOTO 1020
1200 REM *** DETERMINE RAM READ
1201 IF RR = 0 THEN GOTO 1215
1202 IF ((AD > = 1024 AND AD < 2048) OR (AD > = 8192 AND AD < 16384)) THEN GOTO 1210
1204 IF AD < 512 OR AD > = 49152 THEN RT$ = "": RETURN
1205 RT$ = " AUX ": RETURN
1210 IF S8 = 0 THEN GOTO 1205
1215 RT$ = " RAM ": RETURN
1300 REM *** DETERMINE RAM WRITE
1301 IF RW = 0 THEN GOTO 1315
1302 IF ((AD > = 1024 AND AD < 2048) OR (AD > = 8192 AND AD < 16384)) THEN GOTO 1310
1304 IF AD < 512 OR AD > = 49152 THEN RT$ = "": RETURN
1305 RT$ = " AUX ": RETURN
1310 IF S8 = 0 THEN GOTO 1305
1315 RT$ = " RAM ": RETURN
1400 REM *** DETERMINE RW RAM
1405 IF AD > = 512 THEN GOTO 1420
1410 RT = 1: IF AZ = 1 THEN RT$ = " AUX ": RETURN
1415 RT$ = " RAM ": RETURN
1420 IF AD < 1024 OR AD > = 2048 THEN GOTO 1435
1425 RT = 2: IF P2 = 1 AND S8 = 1 THEN RT$ = " AUX ": RETURN
1430 RT$ = " RAM ": RETURN
1435 IF AD < 8192 OR AD > = 16384 THEN RT$ = "": RETURN
1440 RT = 3: IF HI = 1 AND P2 = 1 AND S8 = 1 THEN RT$ = " AUX ": RETURN
1445 RT$ = " RAM ": RETURN
2000 REM *** DRAW HORIZONAL LINE ***
2005 VTAB 5: HTAB 5
2010 FOR II = 1 TO 10: PRINT "_";: NEXT II: RETURN
2020 REM *** DRAW VERTICAL LINE ***
2021 REM *** PARAM H : HTAB OF VERTICAL LINE
2025 VTAB 5: HTAB 4
2030 FOR II = 2 TO 5: HTAB H: PRINT "|": NEXT II: PRINT : FOR II = 7 TO 18: HTAB H: PRINT "|": NEXT II
2040 REM *** PRINT ADDRESSES ***
2050 VTAB 2: HTAB 1: PRINT "$FFFF"
2060 PRINT "$E000": PRINT
2070 PRINT "$D000": PRINT
2080 PRINT "$BFFF": PRINT
2090 PRINT "$3FFF"
2100 PRINT "$2000": PRINT : PRINT
2110 PRINT "$07FF"
2120 PRINT "$0400": PRINT : PRINT
2130 PRINT "$01FF"
2140 PRINT "$0000"
2150 RETURN
2160 REM *** PRINT TITLES
2170 VTAB 1: HTAB 11: PRINT "RW";: HTAB 21: PRINT "READ";: HTAB 32: PRINT "WRITE": RETURN
2180 REM *** PRINT SOFT SWITCHES ***
2190 VTAB 23: HTAB 1
2200 INVERSE : PRINT "P";: NORMAL : PRINT "AGE2 RAM";: INVERSE : PRINT "R";: NORMAL : PRINT "D ";: INVERSE : PRINT "A";: NORMAL : PRINT "LTZP HRAMR";: INVERSE : PRINT "D";: HTAB 35: PRINT "B";: NORMAL : PRINT "ANK1"
2210 INVERSE : PRINT "H";: NORMAL : PRINT "IRES RAM";: INVERSE : PRINT "W";: NORMAL : PRINT "RT ";: INVERSE : PRINT "8";: NORMAL : PRINT "0STORE HRAMWR";: INVERSE : PRINT "T";: NORMAL : PRINT "' RE";: INVERSE : PRINT "S";: NORMAL : PRINT "ET";: RETURN
2220 REM *** PRINT SCREEN ***"
2230 HOME : GOSUB 2050
2240 FOR I = 0 TO 3: READ H: VTAB 2: GOSUB 2030: NEXT I
2250 FOR I = 1 TO 10: READ V: VTAB V: HTAB 7: GOSUB 2010: HTAB 18: GOSUB 2010: HTAB 29: GOSUB 2010: NEXT I
2260 GOSUB 2170: GOSUB 2190: VTAB 1: RETURN
2300 REM *** RESET
2310 AZ = 0:P2 = 0:S8 = 0:HI = 0:RR = 0:RW = 0:HR = 0:HW = 0:B1 = 0
2315 RETURN
2400 REM *** READ KEY
2405 K = PEEK (49152): IF K < = 127 THEN GOTO 2405
2410 POKE 49168,0
2415 K$ = CHR$ (K - 128)
2420 IF K$ = "P" OR K$ = "p" THEN P2 = 1 - P2: RETURN
2425 IF K$ = "H" OR K$ = "h" THEN HI = 1 - HI: RETURN
2430 IF K$ = "R" OR K$ = "r" THEN RR = 1 - RR: RETURN
2435 IF K$ = "W" OR K$ = "w" THEN RW = 1 - RW: RETURN
2440 IF K$ = "A" OR K$ = "a" THEN AZ = 1 - AZ: RETURN
2445 IF K$ = "8" THEN S8 = 1 - S8: RETURN
2450 IF K$ = "D" OR K$ = "d" THEN HR = 1 - HR: RETURN
2455 IF K$ = "T" OR K$ = "t" THEN HW = 1 - HW: RETURN
2460 IF K$ = "B" OR K$ = "b" THEN B1 = 1 - B1: RETURN
2465 IF K$ = "S" OR K$ = "s" THEN GOSUB 2310: RETURN
2468 IF K$ = CHR$ (27) THEN HOME : END
2470 PRINT CHR$ (7): GOTO 2405
2500 REM *** UPDATE SCREEN WITH DATA
2501 GOSUB 2905
2505 AD = 0: GOSUB 1400: IF RT$ = "" THEN GOTO 4000
2510 C = 0:R = 17: GOSUB 2810
2511 AD = 1024:R = 13: GOSUB 2535: IF TR$ = TW$ AND TR$ = " RAM " THEN RT$ = " ":C = 0: GOSUB 2810: GOTO 2515
2512 IF TR$ = " RAM " THEN GOSUB 1400:C = 1:R = 13: GOSUB 2810
2513 IF TW$ = " RAM " THEN GOSUB 1400:C = 2:R = 13: GOSUB 2810
2514 GOTO 2521
2515 AD = 1024: GOSUB 1400: IF RT$ = "" THEN GOTO 4000
2520 C = 0:R = 13: GOSUB 2810
2521 AD = 8192:R = 9: GOSUB 2535: IF TR$ = TW$ AND TR$ = " RAM " THEN RT$ = " ":C = 0: GOSUB 2810: GOTO 2525
2522 IF TR$ = " RAM " THEN GOSUB 1400:C = 1:R = 13: GOSUB 2810
2523 IF TW$ = " RAM " THEN GOSUB 1400:C = 2:R = 13: GOSUB 2810
2524 GOTO 2531
2525 AD = 8192: GOSUB 1400: IF RT$ = "" THEN GOTO 4000
2530 C = 0:R = 9: GOSUB 2810
2531 AD = 512:R = 15: GOSUB 2535
2532 AD = 2048:R = 11: GOSUB 2535
2533 AD = 16384:R = 7: GOSUB 2535
2534 GOTO 2565
2535 GOSUB 1200: IF RT$ = "" THEN GOTO 4000
2540 TR$ = RT$: GOSUB 1300: IF RT$ = "" THEN GOTO 4000
2545 TW$ = RT$: GOSUB 2710: IF TR$ = TW$ THEN C = 0: GOSUB 2810: RETURN
2550 C = 1:RT$ = TR$: GOSUB 2810
2555 C = 2:RT$ = TW$: GOSUB 2810
2560 RETURN
2561 AD = 1024:R = 13:
2565 AD = 53248:R = 4: GOSUB 2600
2570 AD = 57344:R = 2: GOSUB 2600
2600 GOSUB 1000: IF RT$ = "" THEN GOTO 4000
2605 TR$ = RT$: GOSUB 1100: IF RT$ = "" THEN GOTO 4000
2610 TW$ = RT$: GOSUB 2710: IF TR$ = TW$ THEN C = 0: GOSUB 2810: RETURN
2615 GOTO 2550
2700 REM *** CLEAR DATA IN ROW
2705 REM *** PARAM R=ROW
2710 FOR I = 0 TO 2: VTAB R: HTAB CL(I): PRINT " ";: NEXT I: RETURN
2800 REM *** DISPLAY DATA IN COLUMN
2805 REM *** PARAM R=ROW, C=COL, RT$=DATA
2810 VTAB R: HTAB CL(C): PRINT RT$;: RETURN
2900 REM *** DISPLAY SOFT SWITCH VALUES
2905 INVERSE : VTAB 23: HTAB 6: PRINT P2;: HTAB 14: PRINT RR;: HTAB 23: PRINT AZ;: HTAB 33: PRINT HR;: HTAB 40: PRINT B1;
2910 VTAB 24: HTAB 6: PRINT HI;: HTAB 14: PRINT RW;: HTAB 23: PRINT S8;: HTAB 33: PRINT HW;: NORMAL : RETURN
4000 VTAB 1: PRINT "ERROR"
5000 DATA 6,17,28,39
5010 DATA 1,3,5,6,8,10,12,14,16,18
You can view the differenced with ExamDiff.
BTW, could you add some instructions? I ran these in AppleWin, pressing all the highlighted letters and I did not see any changes on the display screen. What is this program supposed to do exactly? I ask, not having looked at the code much.