回 帖 发 新 帖 刷新版面

主题: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

回复列表 (共4个回复)

沙发

再发布个没GOTO的
DECLARE SUB HELPMSG ()
DECLARE SUB READCMOS ()
DECLARE SUB WRITECMOS ()
DECLARE SUB DISPLAYCMOS ()
DECLARE SUB ERRORS ()
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%
FILE$ = PARAS(1)
IF PARAS(0) = "" THEN CALL HELPMSG
IF PARAS(0) = "-R" THEN CALL READCMOS
IF PARAS(0) = "-W" THEN CALL WRITECMOS
IF PARAS(0) = "-D" THEN CALL DISPLAYCMOS
CALL HELPMSG

SUB 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
END SUB

SUB ERRORS
PRINT FILE$; " ERROR!"
BEEP
CLOSE #1
END
END SUB

SUB HELPMSG
PRINT "USAGE:CMOSCMD -R FILENAME.EXT"
PRINT "   OR:CMOSCMD -W FILENAME.EXT"
PRINT "   OR:CMOSCMD -D"
END
END SUB

SUB READCMOS
IF FILE$ = "" THEN CALL HELPMSG
OPEN FILE$ 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 "; FILE$; " OK!"
END
END SUB

SUB WRITECMOS
IF FILE$ = "" THEN CALL HELPMSG
OPEN FILE$ FOR RANDOM AS #1 LEN = 1
IF LOF(1) < 128 THEN CALL 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 "; FILE$; " OK!"
END
END SUB

板凳

[em10]虽然很晕,但是还是要顶一下的。[em8]

3 楼

DECLARE SUB HELPMSG ()
DECLARE SUB READCMOS ()
DECLARE SUB WRITECMOS ()
DECLARE SUB DISPLAYCMOS ()
DECLARE SUB ERRORS ()
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%
FILE$ = PARAS(1)
IF PARAS(0) = "" THEN CALL HELPMSG
IF PARAS(0) = "-R" THEN CALL READCMOS
IF PARAS(0) = "-W" THEN CALL WRITECMOS
IF PARAS(0) = "-D" THEN CALL DISPLAYCMOS
CALL HELPMSG

SUB 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
END SUB

SUB ERRORS
PRINT FILE$; " ERROR!"
BEEP
CLOSE #1
END
END SUB

SUB HELPMSG
PRINT "USAGE:CMOSCMD -R FILENAME.EXT"
PRINT "   OR:CMOSCMD -W FILENAME.EXT"
PRINT "   OR:CMOSCMD -D"
END
END SUB

SUB READCMOS
IF FILE$ = "" THEN CALL HELPMSG
OPEN FILE$ 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 "; FILE$; " OK!"
END
END SUB

SUB WRITECMOS
IF FILE$ = "" THEN CALL HELPMSG
OPEN FILE$ FOR RANDOM AS #1 LEN = 1
IF LOF(1) < 128 THEN CALL 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 "; FILE$; " OK!"
END
END SUB
[em1][em1][em1][em1]

4 楼

uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
sssssssssssssssssssssssssssssssss
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
                                 
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
                                 
ppppppppppppppppppppppppppppppppp
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
ttttttttttttttttttttttttttttttttt

我来回复

您尚未登录,请登录后再回复。点此登录或注册