主题:CMOD 命令行板(cmoscmd)发布
DIM cmd AS STRING * 101
DIM PARAS(10) AS STRING
DIM temp AS STRING * 1
cmd = COMMAND$
offset% = VARPTR(cmd)
segment% = VARSEG(cmd)
DEF SEG = segment%
n = 0
FOR x% = 0 TO 100
temp = CHR$(PEEK(offset% + x%))
IF temp <> " " THEN
PARAS(n) = PARAS(n) + temp
ELSE
IF CHR$(PEEK(offset% + x% + 1)) <> " " THEN
n = n + 1
END IF
END IF
NEXT x%
IF PARAS(0) = "" THEN GOTO HELPMSG
IF PARAS(0) = "-R" THEN GOTO READCMOS
IF PARAS(0) = "-W" THEN GOTO WRITECMOS
IF PARAS(0) = "-D" THEN GOTO DISPLAYCMOS
GOTO HELPMSG
READCMOS:
IF PARAS(1) = "" THEN GOTO HELPMSG
OPEN PARAS(1) FOR RANDOM AS #1 LEN = 1
FIELD 1, 1 AS A$
FOR I = 1 TO 128
OUT 112, I - 1
B = INP(113)
LSET A$ = CHR$(B)
PUT 1, I
NEXT
CLOSE #1
PRINT "READ CMOS TO "; PARAS(1); " OK!"
END
WRITECMOS:
IF PARAS(1) = "" THEN GOTO HELPMSG
OPEN PARAS(1) FOR RANDOM AS #1 LEN = 1
IF LOF(1) < 128 THEN GOTO ERRORS
FIELD 1, 1 AS A$
FOR I = 17 TO 128
GET 1, I
OUT 112, I - 1
B = ASC(A$)
OUT 113, B
NEXT
CLOSE #1
PRINT "WRITE CMOS FROM "; PARAS(1); " OK!"
END
ERRORS:
PRINT PARAS(1); " ERROR!"
BEEP
CLOSE #1
END
DISPLAYCMOS:
FOR I = 1 TO 128
OUT 112, I - 1
B = INP(113)
C$ = HEX$(B)
IF B < 16 THEN C$ = "0" + C$
PRINT C$; "";
IF INT(I / 16) = I / 16 THEN PRINT
NEXT
PRINT "DISPLAY CMOS OK!"
PRINT
END
HELPMSG:
PRINT "USAGE:CMOSCMD -R FILENAME.EXT"
PRINT " OR:CMOSCMD -W FILENAME.EXT"
PRINT " OR:CMOSCMD -D"
END
DIM PARAS(10) AS STRING
DIM temp AS STRING * 1
cmd = COMMAND$
offset% = VARPTR(cmd)
segment% = VARSEG(cmd)
DEF SEG = segment%
n = 0
FOR x% = 0 TO 100
temp = CHR$(PEEK(offset% + x%))
IF temp <> " " THEN
PARAS(n) = PARAS(n) + temp
ELSE
IF CHR$(PEEK(offset% + x% + 1)) <> " " THEN
n = n + 1
END IF
END IF
NEXT x%
IF PARAS(0) = "" THEN GOTO HELPMSG
IF PARAS(0) = "-R" THEN GOTO READCMOS
IF PARAS(0) = "-W" THEN GOTO WRITECMOS
IF PARAS(0) = "-D" THEN GOTO DISPLAYCMOS
GOTO HELPMSG
READCMOS:
IF PARAS(1) = "" THEN GOTO HELPMSG
OPEN PARAS(1) FOR RANDOM AS #1 LEN = 1
FIELD 1, 1 AS A$
FOR I = 1 TO 128
OUT 112, I - 1
B = INP(113)
LSET A$ = CHR$(B)
PUT 1, I
NEXT
CLOSE #1
PRINT "READ CMOS TO "; PARAS(1); " OK!"
END
WRITECMOS:
IF PARAS(1) = "" THEN GOTO HELPMSG
OPEN PARAS(1) FOR RANDOM AS #1 LEN = 1
IF LOF(1) < 128 THEN GOTO ERRORS
FIELD 1, 1 AS A$
FOR I = 17 TO 128
GET 1, I
OUT 112, I - 1
B = ASC(A$)
OUT 113, B
NEXT
CLOSE #1
PRINT "WRITE CMOS FROM "; PARAS(1); " OK!"
END
ERRORS:
PRINT PARAS(1); " ERROR!"
BEEP
CLOSE #1
END
DISPLAYCMOS:
FOR I = 1 TO 128
OUT 112, I - 1
B = INP(113)
C$ = HEX$(B)
IF B < 16 THEN C$ = "0" + C$
PRINT C$; "";
IF INT(I / 16) = I / 16 THEN PRINT
NEXT
PRINT "DISPLAY CMOS OK!"
END
HELPMSG:
PRINT "USAGE:CMOSCMD -R FILENAME.EXT"
PRINT " OR:CMOSCMD -W FILENAME.EXT"
PRINT " OR:CMOSCMD -D"
END