Home of the original IBM PC emulator for browsers.
[PCjs Machine "ibm5160"]
Waiting for machine "ibm5160" to load....
This disk contains Turbo Pascal programs and other programs suited both
to the novice and the advanced user alike. Most of the files on this
disk pertain more to visual routines. For example, the file SHOWMOVI
which is a text animation program. There is an array of printer
utilities, and a program that generates mazes.
System Requirements: Two disk drives, Turbo Pascal
How to Start: To read DOC files simply enter TYPE filename.ext and
press <ENTER>. For instructions on PAS listings, refer to your Pascal
language manual.
File Descriptions:
AMAZING COM Produces a maze-like pattern (great with color)
DECIHEX COM Enter a decimal integer, receive a hexadecimal number
AMAZING PAS TURBO PASCAL source code
FONTEDIT BAS Create new fonts for OKIDATA 93, 92, and maybe 82
DECIHEX ASM Source code from Waite Group book -- <Ctrl>C to exit
NEWCHARS BAS Program created by FONTEDIT.BAS (Okidata fonts)
FONTEDIT DOC Documentation guide
MAKAMOVI COM Create animation in text mode (needs 96K minimum)
KEYDEMO PAS TURBO PASCAL source code
KEYDEMO COM A demo program that reads all keystrokes
NEWCHARS DOC Documentation guide
FILES TXT Disk documentation
TURBO DOC Random comments about Borland's Turbo Pascal
PIANO TXT Short text on PIANO.COM
PIANO PAS TURBO PASCAL source code
PIANO COM PC piano (version 1.00) with record and playback
MAKAMOVI DOC Documentation (user guide) version 1.0
NOISE ASM Source code from Waite Group book on IBM Assembler
MAKAMOVI PAS TURBO PASCAL source code
SHOWMOVI PAS TURBO PASCAL source code
SHOWMOVI DOC Documentation (user guide)
SHOWMOVI COM Used to "show" the "movies" created by MAKAMOVI.COM
INTRO SCN Used by MAKAMOVI.COM (must be on same disk)
NOISE COM Makes a "machine-gun" noise
DICT OKI File created by OKIGRAFX.COM
ANAGRAM OKI File created by OKIGRAFX.COM
OKIGRAFX PAS TURBO PASCAL source code
OKIGRAFX DOC Documentation guide
OKIGRAFX COM Create all-points-addressable graphics up to 10" square
SQUARE SCN File created by MAKAMOVI.COM (used by SHOWMOVI.COM)
BOUNCY SCN File created by MAKAMOVI.COM (used by SHOWMOVI.COM)
; from ASSEMBLY LANGUAGE PRIMER FOR THE IBM PC & XT
; by Robert LaFore
; modified to be compilable by CHASM (disk # 37)
;MAIN PART OF PROGRAM
;Connects procedures together
repeat call decibin ;keyboard to binary
call crlf ;print cr and lf
call binihex ;binary to screen
call crlf ;print cr and lf
jmps repeat ;do it again
;+++++++++++++++++++++++++++++++++++++++++++
;PROCEDURE TO CONVERT DEC ON KEYBD TO BINARY
;result is left in bx register
decibin proc near
mov bx,0 ;clear bx for number
; get digit from keyboard, convert to binary
newchar mov ah,1 ;keyboard input
int 21h ;call DOs
sub al,30h ;ASCII to binary
jl exit ;jump if <0
cmp al,9 ;> 9d?
jg exit ;if so, not a dec. digit
cbw ;byte in al to word in ax
;(digit is now in ax)
;Multiply number in bx by 10 decimal
xchg ax,bx ;trade digit and number
mov cx,10 ;put 10d in cx
mul ax,cx ;number times 10 (ChAsm wants "ax")
xchg ax,bx ;trade number and digit
;add digit in ax to number in bx
add bx,ax ;add digit to number
jmps newchar ;get next digit
exit
ret ;return from decibin
endp
;+++++++++++++++++++++++++++++++++++++++++++
;PROCEDURE TO CONVERT BINARY NUMBER IN BX TO HEX ONSCREEN
binihex proc near ;
mov ch,4 ;number of digits
rotate mov cl,4 ;set count to 4 bits
rol bx,cl ;left digit to right
mov al,bl ;move to al
and al,0fh ;mask off left digit
add al,30h ;convert to ascii
cmp al,3ah ;is it > 9?
jl printit ;if not, printit
add al,7h ;digit is A to F
printit
mov dl,al ;put ascii chr in dl
mov ah,2 ;display output function
int 21h ;DOS call
dec ch ;done 4 yet?
jnz rotate ;if not, go back
ret ; return from binihex
endp
;+++++++++++++++++++++++++++++++++++++++++++
;PROCEDURE TO PRINT CR AND LF ONSCREEN
crlf proc near
mov dl,0dh ;carriage return
mov ah,2 ;display function
int 21h ;DosCall
mov dl,0ah ;linefeed
mov ah,2 ;display function
int 21h ;DosCall
ret ;return from crlf
endp
;+++++++++++++++++++++++++++++++++++++++++++
;decihex ends
;+++++++++++++++++++++++++++++++++++++++++++
TURBO PASCAL miscellany + Make A Movie animation (+)
This is a DOUBLE-SIDED diskette (DOS 2.00) -- programs run in DOS
Name Description
AMAZING .COM Produces a maze-like pattern (great with color)
AMAZING .PAS ^TURBO PASCAL source code
DECIHEX .COM Enter a decimal integer, receive a hexadecimal number
DECIHEX .ASM ^Source code from Waite Group book -- <Ctrl>C to exit
FONTEDIT.BAS Create new fonts for OKIDATA 93, 92, and maybe 82
FONTEDIT.DOC ^Documentation guide
NEWCHARS.BAS ^Program created by FONTEDIT.BAS (Okidata fonts)
NEWCHARS.DOC ^Documentation guide
KEYDEMO .COM A demo program that reads all keystrokes
KEYDEMO .PAS ^TURBO PASCAL source code
MAKAMOVI.COM Create animation in text mode (needs 96K minimum)
MAKAMOVI.DOC ^Documentation (user guide) version 1.0
MAKAMOVI.PAS ^TURBO PASCAL source code
INTRO .SCN ^Used by MAKAMOVI.COM (must be on same disk)
SHOWMOVI.COM ^Used to "show" the "movies" created by MAKAMOVI.COM
SHOWMOVI.DOC ^Documentation (user guide)
SHOWMOVI.PAS ^TURBO PASCAL source code
BOUNCY .SCN ^File created by MAKAMOVI.COM (used by SHOWMOVI.COM)
SQUARE .SCN ^File created by MAKAMOVI.COM (used by SHOWMOVI.COM)
OKIGRAFX.COM Create all-points-addressable graphics up to 10" square
OKIGRAFX.DOC ^Documentation guide
OKIGRAFX.PAS ^TURBO PASCAL source code
ANAGRAM .OKI ^File created by OKIGRAFX.COM
DICT .OKI ^File created by OKIGRAFX.COM
NOISE .COM Makes a "machine-gun" noise
NOISE .ASM ^Source code from Waite Group book on IBM Assembler
PIANO .COM PC piano (version 1.00) with record and playback
PIANO .PAS ^TURBO PASCAL source code
PIANO .TXT ^Short text on PIANO.COM
TURBO .DOC Random comments about Borland's Turbo Pascal
------------------------------------------------------------------------
Disk No 353 Turbo Programs v1 DS
-----------------------------------------------------------------------
This disk contains TURBO PASCAL programs and other programs.
AMAZING COM Produces a maze-like pattern (great with color)
AMAZING PAS ^TURBO PASCAL source code
DECIHEX COM Enter a decimal integer, receive a hexadecimal number
DECIHEX ASM ^Source code from Waite Group book -- <Ctrl>C to exit
FONTEDIT BAS Create new fonts for OKIDATA 93, 92, and maybe 82
FONTEDIT DOC ^Documentation guide
NEWCHARS BAS ^Program created by FONTEDIT.BAS (Okidata fonts)
NEWCHARS DOC ^Documentation guide
KEYDEMO COM A demo program that reads all keystrokes
KEYDEMO PAS ^TURBO PASCAL source code
MAKAMOVI COM Create animation in text mode (needs 96K minimum)
MAKAMOVI DOC ^Documentation (user guide) version 1.0
MAKAMOVI PAS ^TURBO PASCAL source code
INTRO SCN ^Used by MAKAMOVI.COM (must be on same disk)
SHOWMOVI COM ^Used to "show" the "movies" created by MAKAMOVI.COM
SHOWMOVI DOC ^Documentation (user guide)
SHOWMOVI PAS ^TURBO PASCAL source code
BOUNCY SCN ^File created by MAKAMOVI.COM (used by SHOWMOVI.COM)
SQUARE SCN ^File created by MAKAMOVI.COM (used by SHOWMOVI.COM)
OKIGRAFX COM Create all-points-addressable graphics up to 10" square
OKIGRAFX DOC ^Documentation guide
OKIGRAFX PAS ^TURBO PASCAL source code
ANAGRAM OKI ^File created by OKIGRAFX.COM
DICT OKI ^File created by OKIGRAFX.COM
NOISE COM Makes a "machine-gun" noise
NOISE ASM ^Source code from Waite Group book on IBM Assembler
PIANO COM PC piano (version 1.00) with record and playback
PIANO PAS ^TURBO PASCAL source code
PIANO TXT ^Short text on PIANO.COM
TURBO DOC Random comments about Borland's Turbo Pascal
FILES TXT Disk documentation
PC Software Interest Group (PC-SIG)
1030 E Duane, Suite J
Sunnyvale, CA 94086
(408) 730-9291
10 DIM M%(7)
20 'Fontedit.bas A character editor for downloading character sets
30 ' for the Okidata Microline 93
40 ' modified by Neil J. Rubenking, April 1984
50 GOSUB 890 'Initialize and set up function keys
60 GOSUB 530 'Clear screen and label character matrix
70 LINE INPUT ED$ 'This statement is the character editor!
80 GOSUB 100 'When <return> is hit, get new menu
90 GOTO 70 'Return to editing
100 '--------------------------------------------------------------------------
110 'Subroutine to generate the options menu
120 '--------------------------------------------------------------------------
130 LOCATE 22,1: COLOR 0,7
140 PRINT"F1: SAVE redefinition to file F2: CLEAR the matrix "
150 PRINT"F3: EXIT fontedit F4: TEST character on printer"
160 PRINT"F5: CONTINUE editing matrix F6: LOOK UP matrix in ROM ";
170 COLOR 7,0
180 LOCATE 1,1: INPUT"Press a function key: ",F$
190 IF F$="SAVE" THEN GOSUB 260 : GOTO 250
200 IF F$="CLEAR" THEN GOSUB 530 : RETURN
210 IF F$="EXIT" THEN GOTO 1680
220 IF F$="TEST" THEN GOSUB 740 : GOTO 250
230 IF F$="CONTINUE" THEN GOSUB 650 : RETURN
240 IF F$="LOOKUP" THEN GOSUB 1410: RETURN
250 FOR R=1 TO 2: LOCATE R,1: PRINT SPACE$(70);:NEXT: GOTO 180
260 '--------------------------------------------------------------------------
270 'Subrouting to read the screen and write to file. (SAVE option)
280 '--------------------------------------------------------------------------
290 LOCATE 1,1: PRINT SPACE$(70);:LOCATE 1,1
300 INPUT "Save redefinition for what character?: ",C$
310 INPUT "Descender (Y/N)? ",DES$
320 DESC$ = "chr$(65)"
330 IF (DES$ = "Y") OR (DES$ = "y") THEN DESC$ = "chr$(68)"
340 OPEN FIL$ FOR APPEND AS #1
350 PRINT #1, LINENUM;" Rem--Redefines ";C$: LINENUM = LINENUM + 10
360 PRINT #1, LINENUM;
370 PRINT #1, "Lprint chr$(27);chr$(37);";DESC$;";chr$(";ASC(C$);");"
380 LINENUM = LINENUM + 10: PRINT #1, LINENUM;" Lprint ";
390 'Alternate entry point to read screen--used for TEST option.
400 FOR SCRNLOC=1668 TO 1668+((MATCOLS-1)*2) STEP 2
410 CODE = 0
420 N = -1
430 FOR OFFSET = 0 TO (MATROWS*160) STEP 160
440 N = N + 1
450 IF PEEK(SCRNLOC+OFFSET)=220 THEN CODE = CODE+(2^N)
460 NEXT OFFSET
470 IF TEST=TRUE THEN LPRINT CHR$(CODE);: GOTO 490
480 PRINT #1, "chr$(";RIGHT$(STR$(CODE),LEN(STR$(CODE))-1);");";
490 NEXT SCRNLOC
500 IF TEST = FALSE THEN PRINT #1,: LINENUM = LINENUM + 10
510 CLOSE #1
520 RETURN
530 '--------------------------------------------------------------------------
540 'Subroutine to clear screen and label rows and columns (CLEAR option)
550 '--------------------------------------------------------------------------
560 CLS: LOCATE 9,35: PRINT LEFT$("12345678901",MATCOLS)
570 LOCATE 10,34
580 PRINT CHR$(201);:FOR I=1 TO MATCOLS:PRINT CHR$(205);:NEXT:PRINT CHR$(187)
590 FOR I = 11 TO 11+MATROWS-1
600 LOCATE I,31
610 PRINT I-10;CHR$(186);SPACE$(MATCOLS);CHR$(186)
620 NEXT I
630 LOCATE I,34
640 PRINT CHR$(200);:FOR I=1 TO MATCOLS:PRINT CHR$(205);:NEXT:PRINT CHR$(188)
650 'Alternate entry point--used for CONTINUE option.
660 LOCATE 22,1:COLOR 0,7
670 PRINT"Use arrow keys to move to desired dot location "
680 PRINT"Press F10 to set a dot...Space Bar to remove a dot "
690 PRINT"Press <return> for options menu ";
700 COLOR 7,0
710 LOCATE 1,1:PRINT SPACE$(70);
720 LOCATE 11,35
730 RETURN
740 '-------------------------------------------------------------------------
750 'Subroutine to test character on printer (TEST option).
760 '-------------------------------------------------------------------------
770 LOCATE 1,1:PRINT SPACE$(70);:LOCATE 1,1
775 INPUT "Replace what character for test? :",C$
780 LPRINT CHR$(27);CHR$(37);"A";C$;
790 TEST = TRUE
800 GOSUB 390
810 LPRINT CHR$(27);"0"
820 LPRINT"Here is a test of the new character."
830 LPRINT CHR$(27);"2";
840 FOR I = 1 TO 20: LPRINT C$;:NEXT I
850 LPRINT CHR$(27);"0";
860 LPRINT"That was a test of the new character."
870 TEST = FALSE
880 RETURN
890 '-------------------------------------------------------------------------
900 'Subroutine to initialize and set up function keys
910 '-------------------------------------------------------------------------
920 TRUE=1:FALSE=0
930 WIDTH "SCRN: ",80:CLS:KEY OFF:CR$ = CHR$(13)
940 FOR I = 1 TO 10: KEY I, "": NEXT I
950 KEY 1, "SAVE" + CR$ : KEY 2, "CLEAR" + CR$ : KEY 3, "EXIT" + CR$
960 KEY 4, "TEST" + CR$ : KEY 5, "CONTINUE" + CR$: KEY 6, "LOOKUP" + CR$
970 KEY 10, CHR$(220)
980 'Determine display adapter (B800 for color/graphics, B000 for Mono).
990 DEF SEG=0
1000 IF (PEEK(&H410) AND &H30) <> &H30 THEN DEF SEG=&HB800 ELSE DEF SEG=&HB000
1010 MATCOLS = 11 'Number of dot matrix columns
1020 MATROWS=7 'Number of dot matrix rows.
1030 LOCATE 3,35: PRINT "FONTEDIT.BAS"
1040 LOCATE 10,10
1050 PRINT" Be sure that the filename you select for output is not in use."
1060 LOCATE 11,10
1070 PRINT"If you are going to add more character definitions to an existing"
1080 LOCATE 12,10
1090 PRINT"file, you must know its last line number."
1100 LOCATE 13,10
1110 PRINT" When creating a character, remember that no two dots can be"
1120 LOCATE 14,10
1130 PRINT"directly adjacent horizontally. The LOOKUP option gets the dot"
1140 LOCATE 15,10
1150 PRINT"patterns from the display screen ROM, which requires adjacent dots,"
1160 LOCATE 16,10
1170 PRINT"so you will have to edit any characters you LOOKUP. Also, the ROM"
1180 LOCATE 17,10
1190 PRINT"character patterns are only 7 columns wide."
1200 LOCATE 18,10:COLOR 31,0:PRINT" IMPORTANT: ";:COLOR 7,0
1210 PRINT"If you look at the character files created by fontedit"
1220 LOCATE 19,10
1230 PRINT"by LOADing and LISTing them, be sure not to SAVE them--if you do,"
1240 LOCATE 20,10
1250 PRINT"you will not be able to append to them. If you make changes"
1260 LOCATE 21,10
1270 PRINT"and must save them, use the `A` option (SAVE`<filename>.BAS`,A)."
1280 LOCATE 22,1: INPUT "File for output? (1-8 characters) "; FIL$
1290 IF FIL$ = "" THEN BEEP: GOTO 1130
1300 FIL$ = FIL$ + ".BAS"
1310 INPUT "New file or append (N/A)? ",TYPE$
1320 IF TYPE$ = "a" OR TYPE$ = "A" THEN INPUT "Line for 1st new statement?", LINENUM: GOTO 1370
1330 LINENUM = 10
1340 OPEN FIL$ FOR OUTPUT AS #1
1350 PRINT #1, LINENUM;" Rem--Select Download Character Set":LINENUM=LINENUM+10
1360 PRINT #1, LINENUM;" LPrint chr$(27);chr$(50);":LINENUM=LINENUM+10:CLOSE #1
1370 RETURN
1380 '-------------------------------------------------------------------------
1390 'Subroutine to access display screen dot pattern of a character from ROM
1400 '-------------------------------------------------------------------------
1410 CHAR$ = CHR$(220)
1420 LOCATE 1,1: PRINT SPACE$(70):
1430 LOCATE 1,1
1440 INPUT "Look up what character? ", C$
1450 J% = 0
1460 N% = ASC(C$)
1470 IF (N%=95) OR (N%=103) OR (N%=112) OR (N%=113) OR (N%=121) THEN J%=2
1480 'DRAW BLOCK LETTERS by Robert Metzger 4/83 (part of it, anyway)
1490 DEF SEG=&HFFA6: O%=14
1500 FOR I% = 0 TO 7: M%(I%)=2^(7-I%): NEXT
1510 A% = O% + 8*N%
1520 FOR K% = 0 TO 7: B% = PEEK(A%+K%)
1530 FOR L% = 0 TO 7
1540 IF B% AND M%(L%) THEN 1550 ELSE 1560
1550 LOCATE 11+K%-J%,37+L%: PRINT CHAR$
1560 NEXT L%
1570 NEXT K%
1580 LOCATE 1,1: PRINT "Now hit <return>. "
1590 ' Glossary of Internal Variables
1600 'A% = Addresss B% = Byte
1610 'C$ = Character I% = Counter
1620 'J% = Descender? K% = Counter
1630 'L% = Counter M% = Mask
1640 'O% = Offset
1650 DEF SEG = 0
1660 IF (PEEK(&H410) AND &H30) <> &H30 THEN DEF SEG=&HB800 ELSE DEF SEG=&HB000
1670 RETURN
1680 '-------------------------------------------------------------------------
1690 ' ROUTINE TO PUT THE KEYS BACK TO NORMAL AND EXIT
1700 '-------------------------------------------------------------------------
1710 CLOSE #1 : CLS
1720 KEY 1, "LIST " : KEY 2, "RUN" + CHR$(13) : KEY 3 , "LOAD" + CHR$(34)
1730 KEY 4, "SAVE" + CHR$(34) : KEY 5, "CONT" + CHR$(13) :
1740 KEY 6, CHR$(44) + CHR$(34) + "LPT1" : KEY 7 , "TRON" + CHR$(13)
1750 KEY 8, "TROFF" + CHR$(13) : KEY 9 , "KEY" : KEY 10 , "SCREEN"
1760 KEY ON
1770 END
10 REM--Select Download Character Set
20 LPRINT CHR$(27);CHR$(50);
30 REM--Redefines a
40 LPRINT CHR$(27);CHR$(37);CHR$(68);CHR$( 97 );
50 LPRINT CHR$(1);CHR$(2);CHR$(4);CHR$(8);CHR$(16);CHR$(32);CHR$(64);CHR$(0);CHR$(64);CHR$(32);CHR$(16);
60 REM--Redefines b
70 LPRINT CHR$(27);CHR$(37);CHR$(68);CHR$( 98 );
80 LPRINT CHR$(16);CHR$(32);CHR$(64);CHR$(0);CHR$(64);CHR$(32);CHR$(16);CHR$(8);CHR$(4);CHR$(2);CHR$(1);
90 REM--Redefines c
100 LPRINT CHR$(27);CHR$(37);CHR$(65);CHR$( 99 );
110 LPRINT CHR$(8);CHR$(0);CHR$(8);CHR$(0);CHR$(8);CHR$(0);CHR$(8);CHR$(0);CHR$(8);CHR$(0);CHR$(8);
130 Rem--Redefines d
140 Lprint chr$(27);chr$(37);chr$(65);chr$( 100 );
150 Lprint chr$(0);chr$(0);chr$(0);chr$(0);chr$(0);chr$(127);chr$(0);chr$(0);chr$(0);chr$(0);chr$(0);
160 Rem--Redefines e
170 Lprint chr$(27);chr$(37);chr$(65);chr$( 101 );
180 Lprint chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);chr$(119);chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);
190 Rem--Redefines f
200 Lprint chr$(27);chr$(37);chr$(65);chr$( 102 );
210 Lprint chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);chr$(112);chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);
220 Rem--Redefines g
230 Lprint chr$(27);chr$(37);chr$(65);chr$( 103 );
240 Lprint chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);chr$(7);chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);
250 Rem--Redefines h
260 Lprint chr$(27);chr$(37);chr$(65);chr$( 104 );
270 Lprint chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);chr$(119);chr$(0);chr$(0);chr$(0);chr$(0);chr$(0);
280 Rem--Redefines i
290 Lprint chr$(27);chr$(37);chr$(65);chr$( 105 );
300 Lprint chr$(0);chr$(0);chr$(0);chr$(0);chr$(0);chr$(119);chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);
310 Rem--Redefines j
320 Lprint chr$(27);chr$(37);chr$(65);chr$( 106 );
330 Lprint chr$(0);chr$(0);chr$(0);chr$(0);chr$(0);chr$(7);chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);
340 Rem--Redefines k
350 Lprint chr$(27);chr$(37);chr$(65);chr$( 107 );
360 Lprint chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);chr$(7);chr$(0);chr$(0);chr$(0);chr$(0);chr$(0);
370 Rem--Redefines l
380 Lprint chr$(27);chr$(37);chr$(65);chr$( 108 );
390 Lprint chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);chr$(112);chr$(0);chr$(0);chr$(0);chr$(0);chr$(0);
400 Rem--Redefines m
410 Lprint chr$(27);chr$(37);chr$(65);chr$( 109 );
420 Lprint chr$(0);chr$(0);chr$(0);chr$(0);chr$(0);chr$(112);chr$(8);chr$(0);chr$(8);chr$(0);chr$(8);
430 Rem--Redefines o
440 Lprint chr$(27);chr$(37);chr$(65);chr$( 111 );
450 Lprint chr$(127);chr$(0);chr$(127);chr$(0);chr$(127);chr$(0);chr$(127);chr$(0);chr$(127);chr$(0);chr$(127);
460 Rem--Redefines p
470 Lprint chr$(27);chr$(37);chr$(65);chr$( 112 );
480 Lprint chr$(95);chr$(0);chr$(123);chr$(0);chr$(95);chr$(0);chr$(123);chr$(0);chr$(95);chr$(0);chr$(123);
490 Rem--Redefines q
500 Lprint chr$(27);chr$(37);chr$(65);chr$( 113 );
510 Lprint chr$(64);chr$(32);chr$(80);chr$(40);chr$(84);chr$(43);chr$(84);chr$(40);chr$(80);chr$(32);chr$(64);
520 Rem--Redefines r
530 Lprint chr$(27);chr$(37);chr$(68);chr$( 114 );
540 Lprint chr$(1);chr$(2);chr$(5);chr$(10);chr$(21);chr$(106);chr$(21);chr$(10);chr$(5);chr$(2);chr$(1);
550 Rem--Redefines s
560 Lprint chr$(27);chr$(37);chr$(65);chr$( 115 );
570 Lprint chr$(65);chr$(34);chr$(0);chr$(20);chr$(0);chr$(127);chr$(0);chr$(20);chr$(0);chr$(34);chr$(65);
580 Rem--Redefines t
590 Lprint chr$(27);chr$(37);chr$(65);chr$( 116 );
600 Lprint chr$(63);chr$(0);chr$(31);chr$(0);chr$(15);chr$(0);chr$(7);chr$(0);chr$(3);chr$(0);chr$(1);
610 Rem--Redefines u
620 Lprint chr$(27);chr$(37);chr$(65);chr$( 117 );
630 Lprint chr$(64);chr$(0);chr$(96);chr$(0);chr$(112);chr$(0);chr$(120);chr$(0);chr$(124);chr$(0);chr$(126);
640 Rem--Redefines v
650 Lprint chr$(27);chr$(37);chr$(65);chr$( 118 );
660 Lprint chr$(1);chr$(0);chr$(3);chr$(0);chr$(7);chr$(0);chr$(15);chr$(0);chr$(31);chr$(0);chr$(63);
670 Rem--Redefines w
680 Lprint chr$(27);chr$(37);chr$(65);chr$( 119 );
690 Lprint chr$(126);chr$(0);chr$(124);chr$(0);chr$(120);chr$(0);chr$(112);chr$(0);chr$(96);chr$(0);chr$(64);
700 Rem--Redefines x
710 Lprint chr$(27);chr$(37);chr$(65);chr$( 120 );
720 Lprint chr$(9);chr$(0);chr$(121);chr$(0);chr$(65);chr$(0);chr$(79);chr$(0);chr$(72);chr$(0);chr$(72);
730 Rem--Redefines y
740 Lprint chr$(27);chr$(37);chr$(65);chr$( 121 );
750 Lprint chr$(125);chr$(0);chr$(125);chr$(0);chr$(1);chr$(0);chr$(127);chr$(0);chr$(85);chr$(42);chr$(0);
760 Rem--Redefines z
770 Lprint chr$(27);chr$(37);chr$(68);chr$( 122 );
780 Lprint chr$(0);chr$(1);chr$(2);chr$(8);chr$(1);chr$(56);chr$(66);chr$(36);chr$(0);chr$(16);chr$(0);
790 Rem--Redefines n
800 Lprint chr$(27);chr$(37);chr$(65);chr$( 110 );
810 Lprint chr$(65);chr$(62);chr$(65);chr$(32);chr$(16);chr$(12);chr$(2);chr$(65);chr$(62);chr$(65);chr$(0);
; from ASSEMBLY LANGUAGE PRIMER FOR THE IBM PC & XT
; by Robert LaFore
; modified to be compilable by CHASM (disk # 37)
;GUN--makes a machine gun sound
; fires fixed number of shots
;------------------------------------------
main proc far ;main part of program
mov cx,20 ;set # of shots
new_shot
push cx ;save count
call shoot ;sound of shot
mov cx,4000h ;set up silent delay
silent loop silent ;silent delay
pop cx ;get back shots count
loop new_shot ;loop til done
int 20h ;back to DOS
endp
;------------------------------------------
;subroutine to make brief noise
;------------------------------------------
shoot proc near ;
mov dx,140h ;initial value of wait
mov bx,20h ;set count
in al,61h ;get port 61
and al,0FCh ;"and off" bits 0 and 1
sound xor al,2 ;toggle bit #1 in al
out 61h,al ;output to port 61
add dx,9248h ;add random pattern
mov cl,3 ;get set to rotate 3 bits
ror dx,cl ;rotate it
mov cx,dx ;put it in cx
and cx,1FFh ;mask off upper 7 bits
or cx,10 ;ensure not too short
wait loop wait ;time delay
dec bx ;done enough?
jnz sound ;if not, back to sound
and al,0FCh ;and off bits 0 and 1
out 61h,al ;turn off bits o and 1
ret ;return from subroutine
endp
;------------------------------------------
PIANO--yet another PC PIANO program
(c) 1984 by Neil J. Rubenking
version 1.00
Just run it and play away. I'm working on some way to make the notes
just hold while you hold down the key and stop when you release it. At
present, if you hold down the key you get a rather unpleasant repetition
of a note.
SHOW A MOVIE version 1.0
(c) 1984 by Neil J. Rubenking
SHOWMOVI.COM is a stripped-down version of MAKAMOVI. You call it from
DOS with a parameter string as described below, and it SHOWs a MOVIe file that
you created with MAKAMOVI.
SYNTAX:
SHOWMOVI MOVINAME/[o,c, or r]/[wait]/[repetitions]/
MOVINAME is the name of the screen file selected. It may include a drive
letter, but must not include the extension, which is automatically set
to ".SCN". This item is REQUIRED -- there is no default.
[o,c, or r] Set the mode of display, where ...
O : One time display -- last screen remains until a key is pressed.
C : Continuous display until a key is pressed.
R : Repetitive display -- repeats the cycle a set number of times,
then holds the last screen 'till a key is pressed.
Default is r.
[wait] This is the time between screens. It is an integer value. The range
10 to 100 is probably what you'll want. Default is 50.
[repetitions] An integer value that tells an R display how many times to
repeat. Default is 5.
The parameters MUST be passed in this order, with slashes between AND a slash
after the last parameter. Only MOVINAME is required.
EXAMPLES:
SHOWMOVI bouncy/o/20/ Shows "bouncy" once, with 20 units between screens
SHOWMOVI square/r/100/10 Shows "square" ten times, with 100 units between
SHOWMOVI bouncy/c/ Shows "bouncy" continuously, with the default value
of 50 units between
SHOWMOVI square/o CRASHES, because of missing final slash
SHOWMOVI bouncy/50/ CRASHES -- you don't have to give all the parameters,
but you must give a complete list up to the point
you stop (SHOWMOVI bouncy/o/50/ would be right)
SHOWMOVI bouncy/ Uses all default values, so it shows "bouncy" 5
times with 50 between
TURBO PASCAL is a product of Borland International. The programs on this disk
use many of its extended features, so they are probably not compilable by some
other PASCALs. However, TURBO only costs $50, so if you are just dying to
improve some of these programs, the cost is within reach.
The main differences between TURBO and other PASCALs is one of efficiency.
Programs compile very fast, in just one pass. Execution time for compiled
programs is also good. The editor comes as a WORDSTAR clone, but you can
completely change it at will. If a program being compiled to memory fails,
you are dumped back into the editor at the exact spot the error occurred.
Also, the magazines report that TURBO-compiled programs generally take up
less disk space.
The main disadvantage of TURBO, if it is one, is that it generates ".COM"
files only. Thus the code cannot exceed 64K. However, unless you are doing
some kind of big project, it's HARD to come up with 64K. If you do, CHAINing
and OVERLAYS are built in.
Volume in drive A has no label
Directory of A:\
AMAZING COM 16076 9-14-84 8:39p
AMAZING PAS 9335 9-14-84 8:39p
ANAGRAM OKI 1269 7-15-84 4:50p
BOUNCY SCN 2972 9-13-84 8:48p
DECIHEX ASM 3111 9-14-84 8:44p
DECIHEX COM 84 8-19-84 5:46p
DICT OKI 2218 7-17-84 8:06p
FILES TXT 1800 4-29-85 10:51a
FILES353 TXT 2048 5-23-85 2:15p
FONTEDIT BAS 7616 9-17-84 6:07a
FONTEDIT DOC 2942 10-15-84 8:47a
INTRO SCN 2900 9-15-84 11:12a
KEYDEMO COM 12899 9-14-84 7:58p
KEYDEMO PAS 5769 9-14-84 7:57p
MAKAMOVI COM 23259 9-15-84 12:21p
MAKAMOVI DOC 5381 10-15-84 8:47a
MAKAMOVI PAS 26495 9-15-84 12:20p
NEWCHARS BAS 4858 9-13-84 4:46p
NEWCHARS DOC 1039 10-15-84 8:48a
NOISE ASM 1912 9-14-84 8:43p
NOISE COM 59 9-14-84 8:11p
OKIGRAFX COM 15767 9-17-84 6:39p
OKIGRAFX DOC 3583 10-15-84 8:38a
OKIGRAFX PAS 17080 9-17-84 6:33p
PIANO COM 16836 9-15-84 9:17a
PIANO PAS 14134 9-15-84 9:17a
PIANO TXT 401 10-15-84 8:55a
SHOWMOVI COM 11981 9-14-84 3:17p
SHOWMOVI DOC 2031 10-15-84 8:46a
SHOWMOVI PAS 6228 9-14-84 3:17p
SQUARE SCN 17216 9-13-84 8:20p
TURBO DOC 1038 10-15-84 8:50a
32 file(s) 240337 bytes
66560 bytes free