home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / prt / sidwy3.ba < prev    next >
Text File  |  2006-10-19  |  5KB  |  109 lines

  1. 1 'SIDWY3.BA by David Lapinski 1/17/88
  2. 10 DEFINT A-Z
  3. 11 DIM B(15),BI(15),LC(70),UL(70),LY(70)
  4. 12 GOTO27
  5. 14 Q=0:Q$=INKEY$: IF Q$<>"" THEN Q=ASC(Q$)
  6. 15 IF Q=3 THEN MENU
  7. 16 RETURN
  8. 24 XZ=PEEK(IZ):Q=PEEK(IZ+1):IF (Q AND 128) =0 THEN XZ=XZ OR (256*Q):RETURN
  9. 25 XZ=(((Q AND 127)*256) + XZ)-32768:RETURN
  10. 27 FOR J=0 TO 5:B(J)=32:NEXTJ:B(6)=68:B(7)=79:GOSUB6000:PRINT" "
  11. 28 BI(0)=1:FOR I=1 TO 7:BI(I)=BI(I-1)*2:NEXT I
  12. 30 FOR I=-1683 TO -1420 STEP 11:IF (PEEK(I) AND 240)<>192 THEN 70
  13. 50 FOR J=0 TO 7:IF PEEK(I+J+3)<>B(J) THEN70
  14. 60 NEXT J:GOTO80
  15. 70 NEXT I:PRINT"ERROR, CANNOT FIND ";:FOR J=0 TO 7:PRINTCHR$(B(J));:NEXT J:PRINT" ":GOTO27
  16. 80 XZ=0:ID=I+1:IZ=ID:GOSUB24:IS=XZ:GOSUB2000
  17. 100 I=IS:LN=0:LC(0)=IS:LY(0)=0:UL(0)=0
  18. 101 GOSUB14
  19. 110 C=PEEK(I) 'PRINTC;:IF C>31 THEN PRINTCHR$(C);" "; ELSE PRINT"   ";
  20. 115 IF (C=13) OR (C=26) THEN 130
  21. 120 I=I+1:GOTO110
  22. 130 IF C=26 THEN EN=-1:GOTO400
  23. 140 IF LN=(LP-1) THEN IS=I+1:EN=0:GOTO400
  24. 150 LN=LN+1:LC(LN)=I+1:LY(LN)=0:UL(LN)=0:GOTO120
  25. 400 YT=0
  26. 401 CLS
  27. 405 XM=999:GOSUB3000
  28. 410 YB=YT+ST-1:PRINT@0,"TOP=";YT;"    ";:XP=LP*SX+SX-1
  29. 411 GOSUB14
  30. 420 CF=-1:FOR L1=0 TO LN:XP=XP-SX
  31. 425 L2=LC(L1):C=PEEK(L2):IF C>31 THEN 510
  32. 430 IF (C=13) OR (C=26) THEN 590
  33. 435 CF=0
  34. 440 IF P1 THEN 490
  35. 450 D=PEEK(L2+1):E=PEEK(L2+2):IF (C<>27) OR (D<>45) THEN 480
  36. 460 IF E=49 THEN UL(L1)=-1:LC(L1)=LC(L1)+3:GOTO425
  37. 470 IF E=48 THEN UL(L1)=0:LC(L1)=LC(L1)+3:GOTO425
  38. 480 LC(L1)=LC(L1)+1:GOTO425
  39. 490 IF C=15 THEN UL(L1)=-1:GOTO480
  40. 500 IF C=14 THEN UL(L1)=0:GOTO480
  41. 505 GOTO480
  42. 510 CF=0:Z=C:IF Z>127 THEN Z=30193+Z*6:Z1=Z+5:GOTO530
  43. 520 Z=30321+Z*5:Z1=Z+4
  44. 530 Y1=LY(L1):Z2=Z 
  45. 535 E=PEEK(Z2):XZ=XP:IF C<33 THEN E=0
  46. 540 YZ=Y1:Z3=0
  47. 545 IF (E AND BI(Z3))<>0 THEN GOSUB1000
  48. 550 XZ=XZ-1:Z3=Z3+1:IF Z3<8 THEN 545
  49. 560 IF UL(L1) THEN GOSUB 1000
  50. 570 Y1=Y1+1:Z2=Z2+1:IF Z2<=Z1 THEN 535
  51. 575 IF UL(L1) AND (C<128) THEN YZ=Y1:GOSUB 1000
  52. 580 IF (LY(L1)+5)>YB THEN 590
  53. 585 LY(L1)=LY(L1)+6:GOTO480
  54. 590 NEXT L1
  55. 600 GOSUB 4000
  56. 610 IF CF THEN GOSUB 5000
  57. 620 IF EN AND CF THEN STOP
  58. 630 IF NOT CF THEN YT=YT+ST:GOTO410
  59. 640 GOTO100
  60. 1000 GOSUB14:IF (XZ>=1000) OR (XZ<0) THEN RETURN
  61. 1010 KY=YZ-YT:IF (KY>(ST-1)) OR (KY<0) THEN RETURN
  62. 1015 Q=YZ\6:M=63-XZ\SX:IF (Q>=0) AND (M>=0) AND (Q<240) AND (M<64) THEN PSET(Q,M)
  63. 1020 LZ=-3585+XZ:POKELZ,(PEEK(LZ)OR B(KY)):IF XZ>XM THEN XM=XZ
  64. 1050 RETURN
  65. 2000 GOSUB2090:GOSUB2006
  66. 2001 IF P2=84 THEN P=-1:NL=128:ST=7:DL=480 :GOTO2015
  67. 2002 IF P2=69 THEN P=0:NL=0:ST=8:DL=480:GOTO2015
  68. 2003 IF P2=88 THEN P=0:NL=0:ST=8:DL=560:GOTO2015
  69. 2005 PRINT@0,"ERROR PRINTER NOT T,E OR X":GOSUB2006:GOTO2000
  70. 2006 PRINT"ENTER TARGET PRINTER TYPE T,E OR X":GOSUB2008:Q=Q AND 223:IF (Q=84) OR (Q=69) OR (Q=88) THEN P2=Q:RETURN 
  71. 2007 GOTO2006
  72. 2008 Q=0:Q$=INKEY$: IF Q$<>"" THEN Q=ASC(Q$)
  73. 2009 IF Q=0 THEN 2008
  74. 2010 IF Q=3 THEN MENU
  75. 2011 RETURN
  76. 2015 CLS:IF ((INP(187) AND 6)-2)<>0 THEN PRINT@120,"PRINTER NOT READY,HIT ANY KEY":GOSUB2008:GOTO2015
  77. 2020 IF P THEN FOR S=0 TO 6:B(S)=2^S:NEXTS: CALL 5232,27:CALL5232,23:CALL5232,18:GOTO2040
  78. 2030 FOR S=0 TO 7:B(S)=2^(7-S):NEXT S:CALL 5232,27:CALL5232,112:CALL5232,0:CALL5232,27:CALL5232,65:CALL5232,8
  79. 2032 PRINT"DMP106 - IBM MODE, SEND ESC 2 (Y/N)?"
  80. 2033 GOSUB 2008:Q=Q AND 223:IF Q=89 THEN CALL 5232,27:CALL 5232, 50:GOTO 2040
  81. 2034 IF Q<>78 THEN GOTO2032
  82. 2040 CLS:PRINT"CHOOSE LINE SPACING - ";
  83. 2045 IF (P2=84) OR (P2=69) THEN PRINT"TANDY/EPSON"
  84. 2050 IF (P2=88) THEN PRINT"TTXPRESS"
  85. 2055 FOR I= 8 TO 12:L=DL/I:J=I-7:PRINT J;". " ;I;" DOTS/LINE,  ";L;" LINES/PAGE"
  86. 2060 NEXT I
  87. 2070 PRINT@240,"ENTER NUMBER";:GOSUB 2008: PRINT@ 254,CHR$(Q);:IF (Q>53) OR (Q<49) THEN 2070
  88. 2080 Q=Q-41:LP=DL\Q:SX=Q:RETURN
  89. 2090 PRINT"ENTER PRINT FILE PRINTER TYPE T, E OR X":GOSUB2008:Q=Q AND 223:IF (Q=84) OR (Q=69) OR (Q=88) THEN 2100
  90. 2095 GOTO2090
  91. 2100 IF Q=84 THEN P1=-1:RETURN
  92. 2110 IF (Q=69) OR (Q=88) THEN P1=0:RETURN
  93. 2120 GOTO2090
  94. 3000 FOR I=-3585 TO -2584:POKEI,NL:NEXT I:XM=-1:RETURN
  95. 4000 GOSUB14:IF XM<0 THEN CALL 5232,13:RETURN
  96. 4020 IF NOT P THEN CALL 5232,27:CALL 5232,75:CALL 5232,(XM+1) MOD 256:CALL 5232,(XM+1)\256
  97. 4040 LZ=-3585+XM:FOR S=-3585 TO LZ:GOSUB14:CALL5232,PEEK(S):NEXT S:CALL5232,13:GOSUB3000:RETURN
  98. 5000 IF YB>785 THEN RETURN
  99. 5005 S=(791-YB)\ST:IF S<=0 THEN RETURN
  100. 5010 FOR I=0 TO S:CALL 5232,13:NEXT I
  101. 5020 RETURN
  102. 6000 CALL7994:PRINT"Enter Filename";
  103. 6010 FOR J=0 TO 5
  104. 6020 GOSUB2008:IF (Q=8) AND (J>0) THEN J=J-1:PRINTCHR$(8);:GOTO6020
  105. 6025 IF (Q=8) AND (J<=0) THEN 6020
  106. 6030 IF Q=13 THEN RETURN
  107. 6040 IF (Q>96) AND (Q<123) THEN Q=Q AND 223
  108. 6045 B(J)=Q:PRINTCHR$(Q);:NEXT J:RETURN
  109.