10 SCREEN ,0 : CLS 20 SCREEN ,1 : CLS 30 KEY 255 : WINDOW 2,9 40 WIDTH ,21 50 ' 60 OPEN "I",#1,"BRCD:(2)" 70 OPEN "BCODE.DAT" FOR OUTPUT AS #2 80 OPEN "BCODE.HST" FOR APPEND AS #3 'set max files to 3 with config 90 ' 100 ON BRCD GOSUB 500 130 ON KEY(4) GOSUB 920 'KEYPD 140 ON KEY(5) GOSUB 1810 'LIST 150 ON KEY(7) GOSUB 2130 'END 160 ON ERROR GOTO 2240 170 ' 180 'The following data is read to define backspace, return and numeric keys. 190 ' 200 DATA &h1b,&he0,&he3,&h00,&h00,&h00,&h08,&h10,&h3f,&h10,&h08,&H00,&H00,&H00 210 DATA &h1b,&he0,&he4,&h00,&h00,&h01,&h01,&h09,&h11,&h3f,&h10,&h08,&H00,&h00 220 ' 230 FOR I=1 TO 28 240 READ A : PRINT CHR$(A); 'Uses data to create symbols. 250 NEXT 260 ' 270 LCN$="999" : FL=0 280 ' 290 ' 300 KEY (4,1)-(5,1),CHR$(&HE1),0,"" 'ITEM 310 KEY (1,1)-(2,1),CHR$(&HE2),0,"" 'LOCN 320 KEY (1,14)-(3,14),CHR$(&HE3),7,"KEYPD" 330 KEY (1,13)-(3,13),CHR$(&HE4),5,"LIST" 340 KEY (4,13)-(5,14),CHR$(&HE6),7,"END" 350 ' 360 PRINT " LOCN ITEM" 370 LINE (0,0)-(80,0) 380 LINE (80,0)-(80,10) 390 LINE (80,10)-(0,10) 400 LINE (0,10)-(0,0) 410 LINE (40,0)-(40,10) 420 SCREEN ,0 430 ' 440 IF FL=O THEN BRCD ON:KEY(2) ON:KEY (3) ON:KEY (4) ON:KEY (5) ON:KEY (7) ON 450 IF FL=1 THEN GOSUB 2000 460 ' 470 DUMMY=0 480 GOTO 470 490 ' 500 ' (1) SUBROUTINE BARCODE : Read and process barcodes 510 ' 520 BRCD OFF:KEY (2) OFF:KEY(3) OFF:KEY(4) OFF:KEY (5) OFF:KEY (7) OFF 530 ' 540 INPUT#1, BCD$ 550 ' 560 IF LEN(BCD$)<>4 THEN PRINT "INVALID" : GOTO 640 570 ' 580 IF LEFT$(BCD$,1)="A" THEN LCN$=RIGHT$(BCD$,3): PRINT " ";: COLOR 16 : PRINT LCN$ : COLOR 0 : GOTO 620 590 ' 600 PRINT " ";LCN$;" ";: COLOR 16 : PRINT BCD$ : COLOR 0 : BCD$="C"+BCD$ 610 ' 620 PRINT #2,BCD$ 630 PRINT #3,BCD$,TIME$,DATE$ 640 IF NOT(EOF(1)) GOTO 540 650 BRCD ON:KEY(2) ON:KEY (3) ON:KEY (4) ON:KEY (5) ON:KEY (7) ON 660 RETURN 910 ' 920 ' (4) SUBROUTINE MANUAL_ENTRY_KEYPAD : Sets up keypad and reads data. 930 ' 940 BRCD OFF:KEY (2) OFF:KEY(3) OFF:KEY(4) OFF:KEY (5) OFF:KEY (7) OFF 950 ' 960 XPOS=CSRLIN : YPOS=POS(0) 970 SCREEN ,1 'Clear EHT and set in portrait mode. 980 FL=0 'set barcode flag = 0 990 ' 1000 GOSUB 1400 'Subroutine KEYPAD_SETUP @ 1000 1010 ' 1020 IPTYPE$="I" 1030 LOCATE 1,10 1040 IF IPTYPE$="I" THEN PRINT "Enter Item: " 1050 IF IPTYPE$="L" THEN PRINT "Enter Locn: " 1060 LOCATE 1,11 1070 ' 1080 A$=INPUT$(1) 1090 ' 1100 GOSUB 1690 'Subroutine KEYPAD_KEY_CHECK @ 2000 1110 ' 1120 IF A$=CHR$(&H8) THEN IF POS(0)<>1 THEN PRINT CHR$(&H8);" ";CHR$(&H8); : TEXT$=LEFT$(TEXT$,LEN(TEXT$)-1) 1130 IF A$=CHR$(&H49) THEN LOCATE 1,10:PRINT "Enter Item: ":LOCATE 1,11:IPTYPE$="I":TEXT$="":GOTO 1080 1140 IF A$=CHR$(&H4C) THEN LOCATE 1,10:PRINT "Enter Locn: ":LOCATE 1,11:IPTYPE$="L":TEXT$="":GOTO 1080 1150 IF A$=CHR$(&H43) GOTO 1280 1160 IF A$<>CHR$(&HD) GOTO 1080 1170 IF IPTYPE$="I" AND LEN(TEXT$)=4 THEN BCD$="C"+TEXT$ :FL=1: GOTO 1350 1180 IF IPTYPE$="L" AND LEN(TEXT$)=3 THEN BCD$="A"+TEXT$ :FL=1: GOTO 1350 1190 ' 1200 'Incorrectly entered barcode 1210 ' 1220 LOCATE 1,10:PRINT "INVALID,REDO "; 1230 BEEP 50 1240 TEXT$="" 1250 GOTO 1030 1260 ' 1270 'Cancel Operation 1280 LOCATE 1,10:PRINT "CANCEL"; 1290 LOCATE 1,10:PRINT "C - Continue";"Any - Abort"; 1300 ' 1310 A$=INPUT$(1) 1320 GOSUB 1690 'Subroutine KEYPAD_KEY_CHECK @ 2000 1330 IF A$<>"C" GOTO 1020 1340 ' 1350 LOCATE YPOS,XPOS 1360 SCREEN ,1:CLS 1370 POKE &HF094,&H1 'Set key entry beep off (&H0) or on (&H1) 1380 RETURN 300 1390 ' 1400 ' (4A) SUBROUTINE KEYPAD_SETUP : Set up keypad keys. 1410 ' 1420 POKE &HF094,&H0 'Set key entry beep off (&H0) or on (&H1) 1430 ' 1440 F=58 1450 FOR Y=12 TO 14 1460 FOR X=4 TO 2 STEP -1 1470 F=F-1 'Read and set all keys for 1 to 9. 1480 KEY(X,Y),CHR$(F),5,CHR$(F) 1490 NEXT X,Y 1500 ' 1510 KEY (5,14),CHR$(&H30),7,"0" '" 0 " key 1520 ' 1530 KEY (1,12),CHR$(&H4C),&H17,"L" '"Location" key 1540 KEY (1,13),CHR$(&H49),&H17,"I" '"Item" key 1550 KEY (1,14),CHR$(&H43),&H17,"C" '"Cancel" key 1560 KEY (5,12),CHR$(&HD),&H17,CHR$(&HE4) '"Return" key 1570 KEY (5,13),CHR$(&H8),&H17,CHR$(&HE3) '"Back space" key 1580 LINE (11,153)-(80,153) 1590 LINE (80,153)-(80,121) 1600 LINE (80,121)-(11,121) 1610 LINE (11,121)-(11,153) 1620 LINE (24,153)-(24,121) 1630 LINE (66,153)-(66,121) 1640 ' 1650 PRINT CHR$(&H1B);CHR$(&HF0);CHR$(1); 'turn off key repeat 1660 ' 1670 RETURN 1680 ' 1690 ' (4B) SUBROUTINE KEYPAD_TONE : Read in character and beep tone. 1700 'Checks which key is pressed and takes appropriate action 1710 ' 1720 IF ASC(A$)<48 OR ASC(A$)>57 GOTO 1780 1730 SOUND (ASC(A$)-47)*50+400,8 'input of a number 1740 PRINT A$; 1750 TEXT$=TEXT$+A$ 1760 RETURN 1770 ' 1780 SOUND 250,8 'input of other characters 1790 RETURN 1800 ' 1810 ' (5) SUBROUTINE LIST DATA : List bcode.dat file on EHT 1820 ' 1830 BRCD OFF:KEY (2) OFF:KEY(3) OFF:KEY(4) OFF:KEY (5) OFF:KEY (7) OFF 1840 CLOSE #2 : OPEN "BCODE.DAT" FOR INPUT AS #2 1850 ' 1860 PRINT "LIST DATA" 1870 LI=0 1880 WHILE NOT(EOF(2)) 1890 LI=LI+1 1900 INPUT#2, BCD$ 1910 PRINT LI;BCD$ 1920 WEND 1930 ' 1940 CLOSE #2 : OPEN "BCODE.DAT" FOR APPEND AS #2 1950 ' 1960 BRCD ON:KEY(2) ON:KEY (3) ON:KEY (4) ON:KEY (5) ON:KEY (7) ON 1970 PRINT "Continue" 1980 RETURN 1990 ' 2000 ' (6) SUBROUTINE MANUAL_READ_UPDATE : Update display and bcode.dat file. 2010 ' 2020 PRINT#2,BCD$ 2030 PRINT#3,BCD$,TIME$,DATE$ 2040 ' 2050 IF LEFT$(BCD$,1)="A" THEN LCN$=RIGHT$(BCD$,3) : PRINT " ";: COLOR 16 : PRINT LCN$ : COLOR 0 2060 IF LEFT$(BCD$,1)="C" THEN ITM$=RIGHT$(BCD$,4) : PRINT " ";LCN$;" ";: COLOR 16 : PRINT ITM$ : COLOR 0 2070 ' 2080 FL=0 2090 ' 2100 BRCD ON:KEY(2) ON:KEY (3) ON:KEY (4) ON:KEY (5) ON:KEY (7) ON 2110 RETURN 470 2120 ' 2130 ' (7) SUBROUTINE END : 2140 ' 2150 BRCD OFF:KEY (2) OFF:KEY(3) OFF:KEY(4) OFF:KEY (5) OFF:KEY (7) OFF 2170 CLOSE 2180 CLS 2190 SCREEN,1 2200 KEY 255 2210 CLS 2220 END 2230 ' 2240 ' (8) SUBROUTINE ERROR_TRAPPING 2250 ' 2260 BEEP : BEEP 2270 IF ERR = 73 THEN RESUME 500 2280 PRINT "Error No :";ERR 2290 ' 2300 CLOSE 2310 STOP 2320 END 0 ' 2260 BEEP : BEEP 2270 IF ERR = 73 THEN RESUME 500 2280 PRINT "Error No :";ERR 2290 ' 2300 CLOSE 2