DECLARE SUB writechar (char$) DECLARE SUB InitLCDChar () DECLARE SUB lcdcommand (commandc%, datac%) DECLARE SUB waitifbusy () DECLARE SUB InitLCD () DIM SHARED port AS INTEGER DIM SHARED dport AS INTEGER CLS PRINT "LCD Info System" PRINT PRINT "Initialisiere Port/LCD" port = &H378 dport = port + 2 PRINT "-> Port Initialisert" InitLCDChar PRINT "-> LCD Initialisert" PRINT PRINT PRINT "Zu schreibender Text eingeben:" DO DO ikey$ = INKEY$ LOOP UNTIL LEN(ikey$) SELECT CASE ASC(RIGHT$(ikey$, 1)) CASE 27 EXIT DO CASE ELSE writechar STR$(ASC(RIGHT$(ikey$, 1))) END SELECT LOOP SUB InitLCDChar lcdcommand &H0, &H34 lcdcommand &H1, &H75 lcdcommand &H2, &H27 lcdcommand &H3, &H7F lcdcommand &H4, &H7 lcdcommand &H8, &H0 lcdcommand &H9, &H0 lcdcommand &HA, &H0 lcdcommand &HB, &H0 END SUB SUB lcdcommand (commandc%, datac%) 'waitifbusy OUT dport, &H7 OUT port, commandc% OUT dport, &H6 'waitifbusy OUT dport, &H3 OUT port, datac% OUT dport, &H2 END SUB SUB waitifbusy OUT port, &H0 OUT dport, &H5 DO OUT dport, &H7 'OUT dport, &H5 IF INP(port) = &H80 THEN LOCATE 20, 1 PRINT " " LOCATE 21, 1 PRINT " " LOCATE 19, 1 PRINT "Busy Check OK" EXIT DO ELSE LOCATE 20, 1 PRINT "Busy" LOCATE 21, 1 PRINT INP(port) IF LEN(INKEY$) THEN EXIT DO END IF END IF OUT dport, &H5 LOOP END SUB SUB writechar (char$) OUT dport, &H7 OUT port, &HC OUT dport, &H6 'waitifbusy OUT dport, &H3 char$ = char$ OUT port, VAL(char$) OUT dport, &H2 OUT dport, &H3 END SUB