Home » Personal collection » Acorn DFS disks » dfs_box01_disk04_dumpmaster.scp » DEMO1
DEMO1
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Personal collection » Acorn DFS disks » dfs_box01_disk04_dumpmaster.scp |
| Filename: | DEMO1 |
| Read OK: | ✔ |
| File size: | 3100 bytes |
| Load address: | 1900 |
| Exec address: | 1900 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Personal collection » Acorn DFS disks » dfs_box01_disk04_dumpmaster.scp » DEMO1
- Personal collection » Acorn DFS disks » dfs_box01_disk04b_dumpmaster.scp » DEMO1
File contents
10REM *** BEEBUGSOFT DUMPMASTER ***
20REM *** DEMONSTRATION PROGRAM ***
30REM By T.Powys-Lybbe & J.Wallace
40REM (C) Beebugsoft 1984
50REM Version 1.0
60:
70MODE 7:HIMEM=&3000:DIM Q% 256
80*FX4,1
90VDU3:CLS
100ON ERROR IF ERR=17 GOTO 90 ELSE E%=0:PROCerror
110PROCenter_printer
120PROCmove_down
130VDU3:REPEAT
140ON ERROR IF ERR=17 GOTO 90 ELSE E%=1:PROCerror
150PROCmenu
160IF C%=49 PROCdemo
170IF C%=50 PROCcopy
180IF C%=52 PROCoscommand
190IF C%=53 MODE 7:END
200UNTIL C%=51
210GOTO 90
220END
230:
240DATA "Epsons, Datac, Shinwa, Star, Gemini MicroP, Ensign, Taxan, PW-1080"
250DATA "FX80, Taxan, PW1080: linear"
260DATA "Datac 109v, linear special"
270DATA "Shinwa CP80, larger special"
280DATA "Seikosha GP80 & GP100"
290DATA "Seikosha GP250"
300DATA "Seikosha GP700A, linear & colour"
310DATA "NEC 8023"
320DATA "Facit 4510, linear"
330DATA "Anadex 9500 or 9501"
340DATA "Integrex Colourjet or CANON 1210"
350DATA "Mannesmann Tally MT80"
360DATA "Mannesmann Tally MT160"
370:
380DATA EPSONSM,EPFX80M,DATACM,SHINWAM,SEK80M,SEK250M,SEK700M,NECM
390DATA FACITM,ANADEXM,INTEGXM,MT80M,MT160M
400:
410DEF PROCenter_printer
420VDU 22,7,10
430RESTORE 240
440FOR Y%=0 TO 3:VDU 154,148:PRINT STRING$(35,CHR$255):NEXT
450PRINTTAB(8,2);CHR$131;"DUMPMASTER";CHR$148''
460PRINTTAB(16,3);CHR$131;"from BEEBUGSOFT";CHR$148''
470FOR I%=1 TO 13
480PRINT CHR$130;CHR$(I%+64);CHR$135;
490READ P$:PRINT P$
500NEXT
510PRINTTAB(0,21);
520FOR Y%=0 TO 2:VDU 154,148:PRINT STRING$(35,CHR$255):NEXT
530PRINTTAB(6,22);CHR$131;"Enter printer type (A-M)";:VDU 148,8
540*FX15,1
550REPEAT K%=GET:UNTIL K%>64 AND K%<78:P%=K%-65
560RESTORE 240
570FOR I%=0 TO P%:READ A$:NEXT
580ENDPROC
590:
600DEF PROCmove_down
610J%=&3000+P%*&200:O%=&900
620FOR I%=0 TO &1FF STEP 4
630O%!I%=J%!I%
640NEXT
650ENDPROC
660:
670DEF PROCmenu
680VDU 22,7,10
690FOR Y%=0 TO 2:VDU 154,148:PRINT STRING$(35,CHR$255):NEXT
700PRINT TAB(15,2);CHR$131;"M E N U";CHR$148''''
710PRINT'" 1. Demonstrate screen dump"
720PRINT'" 2. Save screen dump"
730PRINT'" 3. Re-select printer type"
740PRINT'" 4. O.S. command"
750PRINTTAB(0,21);
760FOR Y%=0 TO 2:VDU 154,148:PRINT STRING$(35,CHR$255):NEXT
770PRINTTAB(10,22);CHR$131;"Enter choice (1-4)";:VDU 148,8
780*FX15,1
790REPEAT K%=GET:UNTIL K%>48 AND K%<53:C%=K%
800ENDPROC
810:
820DEF PROCdemo
830ON ERROR IF ERR=17 THEN 130 ELSE E%=1:PROCerror
840VDU 22,7,10
850FOR Y%=0 TO 2:VDU 154,148:PRINT STRING$(35,CHR$255):NEXT
860PRINTTAB(6,2);CHR$131;"D E M O N S T R A T I O N";CHR$148'''
870PRINT " Enter mode (4 or 5) :";
880*FX15,1
890REPEAT K%=GET:UNTIL K%=52 OR K%=53:PRINT CHR$(K%):M%=K%-48
900PRINT'" Normal or Inverted (N or I) :";
910*FX15,1
920REPEAT K%=GET:UNTIL K%=78 OR K%=110 OR K%=73 OR K%=105
930IF K%=78 OR K%=110 IN%=0 ELSE IN%=1
940IF M%=5 PROCdemo5 ELSE PROCdemo4
950CALL&900,IN%
960ENDPROC
970:
980DEF PROCdemo5
990VDU22,5,23;8202;0;0;0;
1000FORY%=7 TO 1023 STEP 8:MOVE0,Y%:DRAW 1279,Y%:NEXT
1010GCOL0,1:MOVE0,0:DRAW0,1023:DRAW1279,1023:DRAW1279,0:DRAW0,0
1020COLOUR1:PRINTTAB(2,3)"DUMPMASTER from"
1030PRINTTAB(5,5)"Beebugsoft"
1040COLOUR2:PROCdouble("MODE 5",6,7)
1050COLOUR2:PROCdouble("DEMONSTRATION",2,10)
1060PROCdouble("SCREEN",6,13)
1070PROCcircle(290,280,170,1,1)
1080PROCcircle(530,220,170,0,1)
1090PROCcircle(780,220,170,3,1)
1100PROCcircle(999,280,170,2,1)
1110ENDPROC
1120:
1130DEF PROCdemo4
1140VDU22,4,23;8202;0;0;0;19,0,4,0,0,0
1150MOVE0,0:DRAW0,1023:DRAW1279,1023:DRAW1279,0:DRAW0,0
1160PRINTTAB(7,3);"D U M P M A S T E R from"
1170PRINTTAB(10,5);"B E E B U G S O F T"
1180PROCdouble("M O D E 4",14,8)
1190PROCdouble("D E M O N S T R A T I O N S C R E E N",0,11)
1200MOVE120,220:DRAW120,450:DRAW390,450:DRAW390,220:DRAW120,220
1210MOVE490,220:DRAW640,450:DRAW790,220:DRAW490,220
1220PROCcircle(980,335,115,1,0)
1230MOVE170,190:MOVE170,420:PLOT85,440,190:PLOT85,440,420
1240MOVE540,190:MOVE690,420:PLOT85,840,190
1250PROCcircle(1030,305,115,1,1)
1260ENDPROC
1270:
1280DEF PROCdouble(A$,K%,L%)
1290A%=&A:X%=Q% MOD 256:Y%=Q% DIV 256
1300FOR N%=1 TO LEN(A$)
1310?Q%=ASC(MID$(A$,N%,1))
1320CALL &FFF1
1330VDU23,224,Q%?1,Q%?1,Q%?2,Q%?2,Q%?3,Q%?3,Q%?4,Q%?4
1340VDU23,225,Q%?5,Q%?5,Q%?6,Q%?6,Q%?7,Q%?7,Q%?8,Q%?8
1350VDU31,K%+N%,L%,224,8,10,225
1360NEXT
1370ENDPROC
1380:
1390DEF PROCcircle(X0,Y0,R,C%,F%)
1400N%=100:T=2*PI/N%:S=SIN(T):C=COS(T):X1=R:Y1=0:MOVE X0+X1,Y0+Y1
1410GCOL0,C%:FOR M%=1 TO N%
1420X=X1*C-Y1*S:Y=X1*S+Y1*C
1430IF F%=1 MOVEX0,Y0:PLOT85,X0+X,Y0+Y ELSE DRAW X0+X,Y0+Y
1440X1=X:Y1=Y
1450NEXT
1460ENDPROC
1470:
1480DEF PROCcopy
1490ON ERROR IF ERR=17 THEN 130 ELSE E%=1:PROCerror
1500VDU 22,7,10
1510FOR Y%=0 TO 2:VDU 154,148:PRINT STRING$(35,CHR$255):NEXT
1520PRINTTAB(4,2);CHR$131;"S A V E S C R E E N D U M P";CHR$148'''
1530RESTORE 380
1540FOR I%=0 TO P%:READ F$:NEXT
1550PRINT'TAB(7);"Dump will be called";CHR$131;F$'
1560PRINT"Insert cassette or disc then press SPACE"
1570PRINT
1580*FX15,1
1590REPEAT UNTIL GET=32
1600$Q%="SAVE "+F$+" 900 B00 AEF"
1610X%=Q% MOD 256:Y%=Q% DIV 256:CALL&FFF7
1620ENDPROC
1630:
1640DEF PROCoscommand
1650ON ERROR IF ERR=17 THEN 130 ELSE E%=1:PROCerror
1660VDU 22,7,10
1670FOR Y%=0 TO 2:VDU 154,148:PRINT STRING$(35,CHR$255):NEXT
1680PRINT TAB(10,2);CHR$131;"O.S. C O M M A N D";CHR$148
1690PRINTTAB(0,21);
1700FOR Y%=0 TO 2:VDU 154,148:PRINT STRING$(35,CHR$255):NEXT
1710PRINT TAB(8,22);CHR$131;"Press ESCAPE for menu";CHR$148
1720VDU28,0,20,39,5,12,14
1730REPEAT
1740PRINT:INPUT "*" $Q%
1750X%=Q% MOD 256:Y%=Q% DIV 256:CALL&FFF7
1760UNTIL FALSE
1770ENDPROC
1780:
1790DEF PROCerror
1800VDU3:PRINT
1810REPORT:PRINT
1820PRINT"Press SPACE to continue"
1830REPEAT UNTIL GET=32
1840IF E%=0 GOTO 90 ELSE GOTO 130
1850ENDPROC
#� *** BEEBUGSOFT DUMPMASTER ***
#� *** DEMONSTRATION PROGRAM ***
"� By T.Powys-Lybbe & J.Wallace
(� (C) Beebugsoft 1984
2� Version 1.0
<:
F� 7:�=&3000:� Q% 256
P
*FX4,1
Z�3:�
d$� � � �=17 � �DZ@ � E%=0:�error
n�enter_printer
x�move_down
��3:�
�$� � � �=17 � �DZ@ � E%=1:�error
� �menu
�� C%=49 �demo
�� C%=50 �copy
�� C%=52 �oscommand
�� C%=53 � 7:�
�� C%=51
�
� �DZ@
��
�:
�N� "Epsons, Datac, Shinwa, Star, Gemini MicroP, Ensign, Taxan, PW-1080"
�#� "FX80, Taxan, PW1080: linear"
"� "Datac 109v, linear special"
#� "Shinwa CP80, larger special"
� "Seikosha GP80 & GP100"
"� "Seikosha GP250"
,(� "Seikosha GP700A, linear & colour"
6� "NEC 8023"
@� "Facit 4510, linear"
J� "Anadex 9500 or 9501"
T(� "Integrex Colourjet or CANON 1210"
^� "Mannesmann Tally MT80"
h� "Mannesmann Tally MT160"
r:
|@� EPSONSM,EPFX80M,DATACM,SHINWAM,SEK80M,SEK250M,SEK700M,NECM
�)� FACITM,ANADEXM,INTEGXM,MT80M,MT160M
�:
�� �enter_printer
�
� 22,7,10
�
� �dp@
�&� Y%=0 � 3:� 154,148:� �35,�255):�
�#�8,2);�131;"DUMPMASTER";�148''
�)�16,3);�131;"from BEEBUGSOFT";�148''
�� I%=1 � 13
�� �130;�(I%+64);�135;
�
� P$:� P$
��
��0,21);
&� Y%=0 � 2:� 154,148:� �35,�255):�
5�6,22);�131;"Enter printer type (A-M)";:� 148,8
*FX15,1
&#� K%=�:� K%>64 � K%<78:P%=K%-65
0
� �dp@
:� I%=0 � P%:� A$:�
D�
N:
X� �move_down
bJ%=&3000+P%*&200:O%=&900
l� I%=0 � &1FF � 4
vO%!I%=J%!I%
��
��
�:
�� �menu
�
� 22,7,10
�&� Y%=0 � 2:� 154,148:� �35,�255):�
�$� �15,2);�131;"M E N U";�148''''
�(�'" 1. Demonstrate screen dump"
�!�'" 2. Save screen dump"
�'�'" 3. Re-select printer type"
��'" 4. O.S. command"
��0,21);
�&� Y%=0 � 2:� 154,148:� �35,�255):�
/�10,22);�131;"Enter choice (1-4)";:� 148,8
*FX15,1
� K%=�:� K%>48 � K%<53:C%=K%
�
*:
4� �demo
>#� � � �=17 � �tB@ � E%=1:�error
H
� 22,7,10
R&� Y%=0 � 2:� 154,148:� �35,�255):�
\3�6,2);�131;"D E M O N S T R A T I O N";�148'''
f)� " Enter mode (4 or 5) :";
p*FX15,1
z+� K%=�:� K%=52 � K%=53:� �(K%):M%=K%-48
�)�'" Normal or Inverted (N or I) :";
�*FX15,1
�,� K%=�:� K%=78 � K%=110 � K%=73 � K%=105
�"� K%=78 � K%=110 IN%=0 � IN%=1
�� M%=5 �demo5 � �demo4
�
�&900,IN%
��
�:
�� �demo5
��22,5,23;8202;0;0;0;
�&�Y%=7 � 1023 � 8:�0,Y%:� 1279,Y%:�
�-�0,1:�0,0:�0,1023:�1279,1023:�1279,0:�0,0
��1:�2,3)"DUMPMASTER from"
�5,5)"Beebugsoft"
�2:�double("MODE 5",6,7)
$�2:�double("DEMONSTRATION",2,10)
$�double("SCREEN",6,13)
.�circle(290,280,170,1,1)
8�circle(530,220,170,0,1)
B�circle(780,220,170,3,1)
L�circle(999,280,170,2,1)
V�
`:
j� �demo4
t$�22,4,23;8202;0;0;0;19,0,4,0,0,0
~(�0,0:�0,1023:�1279,1023:�1279,0:�0,0
�&�7,3);"D U M P M A S T E R from"
�!�10,5);"B E E B U G S O F T"
��double("M O D E 4",14,8)
�:�double("D E M O N S T R A T I O N S C R E E N",0,11)
�0�120,220:�120,450:�390,450:�390,220:�120,220
�'�490,220:�640,450:�790,220:�490,220
��circle(980,335,115,1,0)
�-�170,190:�170,420:�85,440,190:�85,440,420
�!�540,190:�690,420:�85,840,190
��circle(1030,305,115,1,1)
��
�:
� �double(A$,K%,L%)
!A%=&A:X%=Q% � 256:Y%=Q% � 256
� N%=1 � �(A$)
?Q%=�(�A$,N%,1))
(� &FFF1
23�23,224,Q%?1,Q%?1,Q%?2,Q%?2,Q%?3,Q%?3,Q%?4,Q%?4
<3�23,225,Q%?5,Q%?5,Q%?6,Q%?6,Q%?7,Q%?7,Q%?8,Q%?8
F�31,K%+N%,L%,224,8,10,225
P�
Z�
d:
n� �circle(X0,Y0,R,C%,F%)
x9N%=100:T=2*�/N%:S=�(T):C=�(T):X1=R:Y1=0:� X0+X1,Y0+Y1
��0,C%:� M%=1 � N%
�X=X1*C-Y1*S:Y=X1*S+Y1*C
�-� F%=1 �X0,Y0:�85,X0+X,Y0+Y � � X0+X,Y0+Y
�
X1=X:Y1=Y
��
��
�:
�� �copy
�#� � � �=17 � �tB@ � E%=1:�error
�
� 22,7,10
�&� Y%=0 � 2:� 154,148:� �35,�255):�
�7�4,2);�131;"S A V E S C R E E N D U M P";�148'''
�
� �D|A
� I%=0 � P%:� F$:�
(�'�7);"Dump will be called";�131;F$'
/�"Insert cassette or disc then press SPACE"
"�
,*FX15,1
6� � �=32
@!$Q%="SAVE "+F$+" 900 B00 AEF"
J"X%=Q% � 256:Y%=Q% � 256:�&FFF7
T�
^:
h� �oscommand
r#� � � �=17 � �tB@ � E%=1:�error
|
� 22,7,10
�&� Y%=0 � 2:� 154,148:� �35,�255):�
�+� �10,2);�131;"O.S. C O M M A N D";�148
��0,21);
�&� Y%=0 � 2:� 154,148:� �35,�255):�
�.� �8,22);�131;"Press ESCAPE for menu";�148
��28,0,20,39,5,12,14
��
��:� "*" $Q%
�"X%=Q% � 256:Y%=Q% � 256:�&FFF7
�� �
��
�:
�� �error
�3:�
�:�
�"Press SPACE to continue"
&� � �=32
0� E%=0 � �DZ@ � � �tB@
:�
�
O*Select �s+ScreenInitialise M,os(
�P �` �P �` � �@ � � � �@ �` � � � �( �*b$ �*�+f$ +�,$
+���$ $ +�f s$ "+��.+b$ -+�8+f$ 7+��+$ @+���$ s$ L+�$ k$ V+� $ _+� $ h+��+Title �+d �) % �+$ �+ �+$ 7,"G or T or T DUMP�+ �+$ ��� % �+c y),cl Q)+,choose P'�+etter$ �,�+aps% GTl % r h% a r$ ,Hit�,delay '% % r % �,rinter% % Printer z!Y or N or N), DATAC, SHINWA, STARRE $ a,)Mannesmann Tally MT160CANON 1210ialann TaYNCDEFGHIJKLMN 1210ial rinter$ �,)!EPSONS (all), DATAC, SHINWA, STARal(all),�,MoveCode �� rigin% SaveCode �#�#Y or N or N, PW1080: linear specialAVE EPSONSM 900 B00 AEF
J-Demonstrate 3l-Draw b; opCol �` ixel � Square ]&$&��+� �+ �+, j+�, �+ �+� �"�ӝD���t�+�ߒI�"�ӝD���t�+�X�1�"�ӝD���t�+�K� �
�b b�01245- �"�ӝD���t�+�K� � �� �� �{�
��p���p�{��p��p� �q�p���p��p��q�� �a
�z��g
�y�j
�}�m
�|� � ��Y
O
�����r��s��]
O
���|�x�p� � �t���ȥz��
�)��� )��{��E}��z���j6u��07�yJ�uvw���z)�t�rJJ)t
��p
�~�q
���~u�u�i���p8�y�p��q�x��+� !�+� !Hit��A,B,C,D( &