0d87a2c6bc8af315bfe174f2b2a210aae26e647a
[qbasicapps.git] / system / CMOS string / savecmos.bas
1 DECLARE SUB displayit ()\r
2 DECLARE SUB newstring ()\r
3 DECLARE SUB start ()\r
4 DIM SHARED adr\r
5 DIM SHARED maxlen\r
6 \r
7 start\r
8 \r
9 2\r
10 PRINT "  "\r
11 displayit\r
12 PRINT "  "\r
13 PRINT "1 - to enter new string"\r
14 PRINT "2 - to quit"\r
15 a$ = INPUT$(1)\r
16 SELECT CASE a$\r
17 CASE "1"\r
18 newstring\r
19 CASE "2"\r
20 SYSTEM\r
21 CASE ELSE\r
22 PRINT "unrecognized command"\r
23 END SELECT\r
24 \r
25 GOTO 2\r
26 \r
27 SUB displayit\r
28 PRINT "Current CMOS contains: ";\r
29 OUT &H70, adr\r
30 l = INP(&H71)\r
31 \r
32 IF l > maxlen THEN PRINT "<empty>": GOTO 1\r
33 COLOR 0, 15\r
34 FOR a = 1 TO l\r
35 OUT &H70, adr + a\r
36 PRINT CHR$(INP(&H71));\r
37 NEXT a\r
38 COLOR 7, 0\r
39 PRINT " "\r
40 1\r
41 \r
42 END SUB\r
43 \r
44 SUB newstring\r
45 PRINT "   max length   |" + SPACE$(maxlen) + "|"\r
46 INPUT "Enter new string:", a$\r
47 IF LEN(a$) > maxlen THEN PRINT "too long, max"; maxlen: GOTO 3\r
48 \r
49 OUT &H70, adr\r
50 OUT &H71, LEN(a$)\r
51 \r
52 FOR b = 1 TO LEN(a$)\r
53 c = ASC(RIGHT$(LEFT$(a$, b), 1))\r
54 OUT &H70, adr + b\r
55 OUT &H71, c\r
56 NEXT b\r
57 \r
58 3\r
59 END SUB\r
60 \r
61 SUB start\r
62 adr = 83\r
63 maxlen = 8\r
64 \r
65 CLS\r
66 PRINT "Svjatoslav Agejenko"\r
67 PRINT "s@ttk17.edu.ee"\r
68 PRINT "2002.10.07"\r
69 PRINT " "\r
70 PRINT "Utility to store max"; maxlen; "character long string in CMOS memory."\r
71 PRINT "beginning CMOS address: 0x"; HEX$(adr)\r
72 \r
73 END SUB\r
74 \r