1 REM CONSTRUCT DOWNLOAD CHARACTERS FOR DIABLO 630 ECS 2 REM use list or type after control P to sent resultant file to printer 3 REM 3 July 1984 Wm. L. Parish 5 OPEN "I",#1,"ITALICS.IN" 6 OPEN "O",#2,"ITALICS.OUT" 7 M = 31 8 ADDRES0=0 9 ADDRESS=32 12 REM -----------------------------signal start of download 13 PRINT #2, CHR$(27);CHR$(14);CHR$(18) 14 REM **************************************** RECORD LOOP 15 FOR I = 2 TO 15 16 SUM = 0 22 ADDRESS=ADDRESS+32 23 IF ADDRESS<256 GOTO 26 24 ADDRESS=ADDRESS-256 25 ADDRES0=1 26 PRINT #2, "S1230"; HEX$(ADDRES0); 28 IF ADDRESS<16 THEN PRINT #2, "0"; 30 PRINT #2, HEX$(ADDRESS); 37 REM CHECKSUM--INITIAL CALCULATION 38 SUM=SUM+35+ADDRES0+ADDRESS 39 REM ************************************ BYTE LOOP 40 FOR J = 1 TO 16 44 M = M + 1 50 INPUT#1, CHAR$, SPOKE, HAMMER 51 REM -------------------------------1ST BYTE 52 SPACE=6 54 IF HAMMER<>0 THEN HAMMER = HAMMER+8 58 FSTBYTE =(HAMMER*16)+SPACE 60 FSTBYTE$ =HEX$(FSTBYTE) 64 IF FSTBYTE<16 THEN PRINT #2, "0"; 68 PRINT #2, FSTBYTE$; 76 REM --------------------------------2ND BYTE 77 SNDBYTE=SPOKE 78 IF I<9 THEN SNDBYTE = SPOKE+128 82 SNDBYTE$ =HEX$(SNDBYTE) 84 IF SNDBYTE<16 THEN PRINT #2, "0"; 86 PRINT #2, SNDBYTE$; 98 PRINT HEX$(M),M, HX$, FSTBYTE$; SNDBYTE$ 100 REM ********* CHECKSUM CALCULATIONS ************ 122 SUM = SUM + FSTBYTE+SNDBYTE 138 U$ = HEX$(SUM) 139 PRINT SUM, U$ 140 NEXT J 160 X$=RIGHT$(U$,2) 164 X =ASC(X$) 168 Y$=RIGHT$(U$,1) 172 Y =ASC(Y$) 180 IF X < 65 THEN X=X-48 ELSE X=X-55 190 IF Y < 65 THEN Y=Y-48 ELSE Y=Y-55 194 Z = 255 - ((16*X)+Y) 196 Z$=HEX$(Z) 210 IF Z<16 THEN PRINT #2, "0"; 212 PRINT #2, Z$;"#";I 300 NEXT I 305 REM ------------signal end of download 306 PRINT #2, CHR$(20) 308 CLOSE #1 310 END