OK, the problem is kinda obvious, the SSD images have to be copied as SSD images and not opened and the contents copied. Doing a *EX now, I get;I modified the program "PIFAXB" to overcome the cursor jump at the bottom and to use a BBC Micro as well as a BBC Master with TIME$
Use this program first call it "TIME"Create this program as "PIFAXB1";
Note: this will only work on BBC and Master machines with or without a second processor due to the use of direct screen memory access via OSWORD 6.
Code:
>*EXTeletext (022) OwnerPIBRIDGE-00 Option 00 (Off)Dir. TELETEXT Lib. Library BFAX82I FFFFFD5B 0000DAA3 000582 WR/ 02/07/24 2641897BFAX82s 00006000 00006000 032000 WR/ 20/04/16 264188DBFAX83I FFFFFD5B 00011D62 0006B8 WR/ 02/07/24 2641895BFAX83s 00006000 00006000 032000 WR/ 20/04/16 2641889BFAX84I FFFFFD5B 00013C83 0007C6 WR/ 02/07/24 2641893BFAX84s 00006000 00006000 032000 WR/ 20/04/16 264188EBFAX85I FFFFFD5B 00015B57 000960 WR/ 02/07/24 264188BPIFAXB 00000800 00008023 000974 WR/ 04/07/24 264189DREADME FFFFFFFF FFFFFFFF 000389 WR/ 02/07/24 264189BTIME 00000800 00008023 000102 WR/ 04/07/24 264188F>
Use this program first call it "TIME"
Code:
10MODE7:VDU23;8202;0;0;0; 20ONERROR GOTO130 30T$=RIGHT$(TIME$,8) 40H%=VAL(MID$(T$,1,2)) 50M%=VAL(MID$(T$,4,2)) 60S%=VAL(MID$(T$,7,2)) 70GOTO110 80INPUT"Time Hours (0-23):"H% 90INPUT"Time Minutes (0-59):"M% 100INPUT"Time Seconds (0-59):"S% 110TIME=(H%*3600+M%*60+S%)*100 120CHAIN"PIFAXB1" 130IFERR=6 GOTO80 ELSE REPORT:END
Code:
10 REM piFAXb 20 REM Read BeebFAX ssd disc 30 REM Translated for BBC Master 40 REM J Dale 2024 50 : 60DIM X% 20 70Y%=X% DIV 256 80CLOSE#0 90 C%=FNMenu 100 ONERROR IF ERR=17 THEN RUN ELSE CLS:REPORT:PRINT" at line ";ERL:END 110 IF C%=5THENCLS:END 120 PROCInitialise 130 Q%=0 140 PROCDisplayPage(CurrentPage%) 150 REPEAT 160 NewPage%=FNInputPageNumber 170 PROCDisplayPage(NewPage%) 180 UNTIL FALSE 190 CLOSE#F% 200 CLOSE#O% 210 A%=GET 220 END 230 : 240 DEFPROCInitialise 250 LOCALN%,P%,F$,I$ 260 CLOSE#0 270 F$="BFAX8"+STR$(C%+1)+"s" 280 I$=LEFT$(F$,6)+"i" 290 F%=OPENUP(F$) 300 O%=OPENUP(I$) 310 REPEAT 320 INPUT#O%,N%,P% 330 UNTILEOF#O% 340 LastPage%=N%:LastPointer%=P% 350 PTR#O%=0:INPUT#O%,N%,CurrentPointer%:PTR#O%=0 360 CurrentPage%=100 370 ENDPROC 380 : 390 DEFPROCOut(N%) 400 LOCALI%,B% 410 B%=BGET#F%:IFB%<&80THENB%=B%OR&80 430FORI%=1TON%:A%=6:X%?4=B%:CALL&FFF1:!X%=!X%+1:NEXT 440 ENDPROC 450 : 460 DEFPROCDisplayPage(PageNumber%) 470 LOCALP%,Q% 480 P%=FNGetPagePointer(PageNumber%) 490 PTR#F%=P% 500 CurrentPointer%=P% 510 Q%=0 520 CLS 521!X%=&7C00 530 REPEAT 540 B%=BGET#F% 550 IFB%=&FF THEN Q%=1:GOTO570 560 IF B%>&7F THEN PROCOut(B%-&7E) ELSE B%=B%OR&80:A%=6:X%?4=B%:CALL&FFF1:!X%=!X%+1 570 UNTILQ%=1 580 ENDPROC 590 : 600 DEFPROCDH(X%,Y%,M$) 610 LOCALI% 620 FORI%=0TO1 630 PRINTTAB(X%,Y%+I%)CHR$141M$ 640 NEXT 650 ENDPROC 660 : 670 DEFPROCHeader(M$) 680 LOCALI% 690 FORI%=0TO1 700 PRINTTAB(0,I%)CHR$132CHR$157CHR$131 710 NEXT 720 I%=20-(2+LENM$DIV2) 730 PROCDH(I%,0,M$) 740 ENDPROC 750 : 760 DEFPROCFooter(M$) 770 PRINTTAB(0,23)CHR$132CHR$157CHR$135SPC(20-(3+LENM$/2))M$ 780 ENDPROC 790 : 800 DEFFNGetPagePointer(PageNumber%) 810 LOCALI%,P%,N% 820 PTR#O%=0 830 REPEAT 840 INPUT#O%,N%,P% 850 UNTIL N%>=PageNumber% OR EOF#O% 860 IFN%<>PageNumber%THEN=LastPointer%ELSE=P% 870 : 880 DEFFNInputPageNumber 890 LOCALP$,K%,I%,N%,T$ 900 *fx15,1 910 P$="" 920 N%=CurrentPage% 930 REPEAT 940 REPEAT 950 K%=INKEY(20) 960 N%=N%+1:IFN%>LastPage%N%=100 970 REM T$=RIGHT$(TIME$,8):T$=LEFT$(T$,5)+"/"+RIGHT$(T$,2) 980S%=TIME DIV 100:H%=S%DIV3600:S%=S%-H%*3600:M%=S%DIV60:S%=S%-M%*60 990T$="" 1000IFH%<10 T$=T$+"0" 1010T$=T$+STR$(H%)+":" 1020IFM%<10 T$=T$+"0" 1030T$=T$+STR$(M%)+"/" 1040IFS%<10 T$=T$+"0" 1050T$=T$+STR$(S%) 1060 PRINTTAB(17,0);N%TAB(32,0)T$; 1070 UNTIL (K%>47ANDK%<58)ORK%=13 1080 P$=P$+CHR$K% 1090 IFK%<>13THEN1140 1100 CurrentPage%=CurrentPage%+1 1110 IF CurrentPage%>LastPage% THEN CurrentPage%=100 1120 P$=STR$(CurrentPage%) 1140 UNTIL LEN(P$)=3 1150 CurrentPage%=VAL(P$) 1160 =CurrentPage% 1170 : 1180 DEFFNMenu 1190 LOCALA$,H% 1200 CLS:H%=14 1210 PROCHeader("piFAX") 1220 PROCFooter("Flax Cottage Educational Archive") 1230 RESTORE 1240 FORI%=1TO5 1250 READ A$ 1260 A$=CHR$134+CHR$(64+I%)+CHR$131+A$ 1270 PROCDH(H%,2+I%*2,A$) 1280 NEXT 1290 PROCDH(H%-4,2+I%*2,CHR$135+"Choice A to "+CHR$(I%-1+64)+"?"+CHR$134) 1300 REPEAT 1310 H%=223ANDGET 1320 UNTIL H%>64ANDH%<64+I% 1330 =H%-64 1340 : 1350 REM BeebFAX discs available 1360 DATA 1982,1983,1984,1985,Quit
Statistics: Posted by maniacminer — Thu Jul 04, 2024 2:27 am