ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

122 lines
4.0 KiB

  1. 1 rem This is the Federal W2 Printer
  2. %INCLUDE ALL.BAS
  3. 500 dim n(2,20),k$(3,20),h(9),s(9),t(4,9)
  4. print clear$:print
  5. RESTORE
  6. 1055 T$="#,###.##"
  7. 1060 U$="##,###.##"
  8. 1065 V$="###,###.##"
  9. 1075 N(1,3)=24:N(1,4)=24:N(1,5)=24:N(1,6)=17:N(1,7)=2:N(1,8)=5
  10. 1080 N(1,9)=14:N(1,10)=11:N(1,11)=8:N(1,12)=8:N(1,13)=1:N(1,14)=1:N(1,15)=1
  11. 1120 Z9=1
  12. 1145 Z9=0
  13. 1200 REM READ TAB VALUES ROUTINE
  14. 1400 REM THIS PART GETS CUTOFFS FOR FICA,SDI,FUTA AND SUTA
  15. open "epc" as 1
  16. read #1;c1,c2,c3,c4,c5,c6,c7,c8
  17. close 1
  18. 1500 PRINT clear$:PRINT
  19. 1510 PRINT "IS PENSION PLAN COVERAGE PROVIDED YOUR EMPLOYEES?":PRINT
  20. 1520 INPUT K$(0,20)
  21. 1530 PRINT clear$:PRINT
  22. 1540 PRINT "DID YOU FAIL TO COLLECT FICA TAX ON EMPLOYEES TIPS, PROVIDE"
  23. 1550 PRINT "MORE THAN $50,000 GROUP-TERM LIFE INSURANCE, OR HAVE ANY"
  24. 1560 PRINT "STATUTORY EMPLOYEES WHOSE EARNINGS ARE SUBJECT TO FICA BUT"
  25. 1570 PRINT "NOT SUBJECT TO FEDERAL INCOME TAX (YES OR NO TO ANY ONE,"
  26. 1580 PRINT "TWO, OR ALL THREE)?"
  27. 1590 PRINT:INPUT line temp$
  28. if left$(temp$,1)="y" or left$(temp$,1)="Y" then Y8=1
  29. 1600 PRINT clear$:PRINT
  30. 1610 PRINT "DID ANY EMPLOYEES HAVE TIPS THAT MUST BE INCLUDED IN BOX 18"
  31. 1620 PRINT:INPUT line temp$
  32. if left$(temp$,1)="y" or left$(temp$,1)="Y" then Y9=1
  33. 1630 PRINT clear$:PRINT
  34. 1640 PRINT "ENTER STATE NAME FOR BOX 22.":PRINT
  35. 1650 INPUT K$(0,19)
  36. 3000 REM READ NAME FILE SUBROUTINE
  37. 3005 a5=T%(12)
  38. 3080 N(1,10)=20:N(1,11)=20
  39. 3085 Z9=1:FOR Z=3 TO 11:K$(0,Z)=MID$(N$,Z9,N(1,Z)):Z9=Z9+N(1,Z):NEXT Z
  40. 3090 N(1,10)=11:N(1,11)=8
  41. 3125 REM ROUTINE TO ELIMINATE TRAILING BLANKS
  42. l8=1
  43. 3130 FOR I=3 TO 11
  44. l9=len(k$(0,i))
  45. 3140 for z=l9 to l8 step -1
  46. 3150 IF MID$(K$(0,I),Z,1)<>" " THEN 3170
  47. 3160 NEXT Z
  48. 3170 Z$=""
  49. 3180 FOR Z0=1 TO Z
  50. 3190 Z$=Z$+MID$(K$(0,I),Z0,1)
  51. 3200 NEXT Z0
  52. 3210 K$(0,I)="":K$(0,I)=Z$
  53. 3220 NEXT I
  54. 6000 REM PRINT W2 FORMS
  55. 6005 PRINT clear$:PRINT:PRINT "PRINTING W2 FORMS":P0=1
  56. 6010 lprinter
  57. 6015 open "ep" recl 512 as 1
  58. 6020 z3=(size("ep")*block.size)/512
  59. 6025 FOR Z2=1 TO Z3
  60. 6030 read #1,z2;N(2,1),N(2,2),N$,N,R,H1,H2,H3
  61. 6035 IF N(2,2)=0 THEN 6045
  62. 6040 NEXT Z2
  63. 6045 close 1
  64. 6050 Z2=Z2-1
  65. 6090 P1=1:P2=41
  66. 6095 open "ep" recl 512 as 1
  67. 6200 FOR Z1=P1 TO P2
  68. 9000 REM GET RECORD AND PRINT
  69. 9010 read #1,z1;N(2,1),N(2,2),N$,N,R,H1,H2,H3, E0,E1,E2,F1,F2,F3,E3,E4,E5,E6,E7,E8,S1,S2,S3,M1,M2,M3
  70. 9020 IF N(2,2)=0 THEN 9500
  71. 9095 Z9=1:FOR Z=3 TO 15:K$(3,Z)=MID$(N$,Z9,N(1,Z)):Z9=Z9+N(1,Z):NEXT Z
  72. 9100 N$=""
  73. 9102 IF E2>C1 THEN Z5=C1:GOTO 9110
  74. 9104 Z5=E2
  75. 9110 T1=T1+E5:T2=T2+E2:T3=T3+F3:T4=T4+Z5:T5=T5+Z6
  76. 9120 PRINT clear$:PRINT
  77. 9130 IF Y8=1 THEN INPUT "ENTER BOX 17 INFORMATION ";Y6:PRINT
  78. 9140 IF Y9=1 THEN INPUT "ENTER BOX 18 INFORMATION ";Z6:PRINT
  79. 9200 FOR Z=1 TO 3:print:NEXT Z
  80. 9210 print TAB(10);N(2,1);TAB(34);K$(0,11)
  81. 9220 print:print
  82. 9230 print TAB(11);K$(0,4):print TAB(11);K$(0,5)
  83. 9240 print TAB(11);K$(0,6);", ";K$(0,7);" ";K$(0,8);TAB(44);K$(0,10)
  84. 9250 print:print
  85. 9260 print TAB(11);K$(3,10);TAB(27);:print using u$;e5;TAB(40);
  86. print using v$;e2;tab(55);:print using t$;f3;tab(68);:print using u$;z5
  87. 9275 print
  88. 9280 print TAB(10);K$(3,3);TAB(48);K$(0,20);TAB(55);
  89. print using t$;y6;tab(68);:print using u$;z6
  90. 9300 print:print TAB(11);K$(3,5);TAB(41);
  91. print using u$;e8;tab(53);:print using v$;e2
  92. 9310 print TAB(67);K$(0,19)
  93. 9320 print TAB(11);K$(3,6);", ";K$(3,7);" ";K$(3,8)
  94. 9325 print:print
  95. 9330 print TAB(68);:print using t$;s3
  96. 9350 P0=P0+1
  97. 9355 IF P0=4 THEN P0=1:INPUT "TYPE RETURN TO CONTINUE ";line temp$
  98. 9400 NEXT Z1
  99. 9410 GOSUB 10000
  100. 9500 IF Z1>41 THEN GOSUB 10000
  101. 9910 close 1
  102. 9915 console
  103. 9920 CHAIN "master5"
  104. 10000 IF Z1+1/3=INT(Z1+1/3) THEN 10500
  105. 10010 A=Z1
  106. 10020 FOR Z=1 TO Z2
  107. 10030 A=A-3
  108. 10040 IF A<1 THEN A=A+3:GOTO 10060
  109. 10050 NEXT Z
  110. 10060 FOR Z=1 TO 8:print:NEXT Z
  111. 10070 print TAB(54);"X"
  112. 10080 IF A>1 THEN FOR Z=1 TO 21:print:NEXT Z:print TAB(54);"X"
  113. 10090 IF A>1 THEN FOR Z=1 TO 12:print:NEXT Z
  114. 10500 FOR Z=1 TO 6:print:NEXT Z
  115. 10510 print TAB(45);"X"
  116. 10520 FOR Z=1 TO 6:print:NEXT Z
  117. 10530 print using v$;tab(25);t1;tab(38);t2;tab(53);t3;tab(65);t4
  118. print:print using v$;tab(65);t5
  119. 10560 T1=0:T2=0:T3=0:T4=0:T5=0
  120. 10570 RETURN