Subj: CMT71 EPROM BURNER This program, to friendlyize the setup of a CMT71-P01 so that duplication sessions can be done by the less button-minded, is an improvement on an earlier version on this BBS in two ways: (1) cosmetically: it now works with 32K as well as 64K EPROMs, and (2) fundamentally: it now works. With the annotations and comments stripped it's about 1.5K [12] 0001 ! Program to automate setup of a CMT71-P01 to COPY "MASTER" EPROMs 0002 ! copies master to CMT RAM, FREEing the port if necessary, checks sums, &c 0003 ! PROGRAMMERS: routine loses all sub-environments & uses Z9$(7)[8] in main 0004 ! sets DELAY 0,0 and STARTUP "", and unDEFines KEY "#99"; renumbers OK 0005 ! requires CMT EPRMSTWR LEX file (from image in EPROMs as shipped ex CMT) 0006 ! requires this file (CMT71P01: rename at lines A-1 and B-1 if desired) 0007 ! requires FORTH/ASSEMBLER or 41-TRANSLATOR ROM in Port 1 OR 2 0008 ! requires MASTER module in Port 3, and CMT71-P01 in Port 4 0009 ! program may be restricted to 'approved' images at label B (uncomment) 0010 ! ********** OPERATOR INSTRUCTIONS (OUTLINE) ********** 0011 ! check hardware correctly switched (32/64K) and plugged-in/powered-up OK 0012 ! type RUN CMT71P01 into the HP-71 and press the ENDLINE key 0013 ! a port-map-reminder is displayed while program the checks the setup 0014 ! if setup cannot be verified OK the program stops an with error message 0015 ! when setup is OK the 71 displays READY and switches itself off 0016 ! program EPROMs as required while the 71 remains switched off 0017 ! when finished programming press CMT71-P01 RESET and turn 71 back on 0018 ! the computer will automatically run a program to RE-check the setup 0019 ! if "re-checks OK" is NOT displayed then EPROMs may be misprogrammed 0020 DELAY 0,0 @ GOSUB 210 @ ON ERROR GOTO 200 @ RUN CMT71P01,'A' 0030 'A': ON ERROR GOTO 200 @ DESTROY Z9$ @ DIM Z9$(7)[8] 0040 IF NOT POS(VER$," FTH") THEN DISP @ DISP "FORTH/41"; @ GOTO 180 0050 Z9$(4)="00000" @ Z9$(5)=":PORT(3)" @ Z9$(6)=":PORT(4)" 0060 ON ERROR GOTO 170 @ Z9$(3)=PTSIZE$(Z9$(5)) @ Z9$(1)=CAT$(1,Z9$(5))[1,8] 0070 'B': ! IF Z9$(1)#"MASTER1A" THEN 170 ! check for correct master(s) here 0080 IF PTTEST$(Z9$(5))#Z9$(4) THEN 170 0090 ON ERROR GOTO 100 @ Z9$(2)=PTADDR$(Z9$(6)) @ ON ERROR GOTO 200 @ GOTO 150 0100 IF ERRN=34 THEN DISP @ DISP "EPRMSTWR file"; @ GOTO 190 0110 IF ERRN#64 THEN 160 0120 ON ERROR GOTO 200 @ IF MEM 1220 ! > build a runtime display and return to whence sent from 1230 ! > 1240 ! get absolute addresses of Ports 3 and 4 1250 ! which way FORTH? Either 1260 ! TRANSLATORs move Ports through here, {{FORTHX has 2 token #s, so this} 1270 ! or ASSEMBLERS move them through here {{line repeats, so either works.} 1280 ! whichever, we check the move here and error if it didn't happen OK 1290 ! but if it did, let the bells ring out..... 1300 ! save USER status, define STARTUP to run next line, shut down 1310 ! reawake here, clear STARTUP, restore USER status, display "rechecking" 1320 ! recheck that Ports 3 and 4 still match and error if not 1330 ! error if Port 4 has changed size, otherwise remove scaffolding 1340 ! say "AOK, well done, have a cuppa" (users appreciate friendliness) 1350 ! here: any key DEFs etc required before keyboard contol is restored 1360 ! end