⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hayes.fs

📁 open source bios with linux platform, very good and can be reused.
💻 FS
📖 第 1 页 / 共 2 页
字号:
\ From: John Hayes S1I\ Subject: tester.fr\ Date: Mon, 27 Nov 95 13:10:09 PST  \ (C) 1995 JOHNS HOPKINS UNIVERSITY / APPLIED PHYSICS LABORATORY\ MAY BE DISTRIBUTED FREELY AS LONG AS THIS COPYRIGHT NOTICE REMAINS.\ VERSION 1.1HEX\ switch output of hex values to capital letterstrue to capital-hex?\ SET THE FOLLOWING FLAG TO TRUE FOR MORE VERBOSE OUTPUT; THIS MAY\ ALLOW YOU TO TELL WHICH TEST CAUSED YOUR SYSTEM TO HANG.VARIABLE VERBOSE   FALSE VERBOSE !: EMPTY-STACK	\ ( ... -- ) EMPTY STACK: HANDLES UNDERFLOWED STACK TOO.   DEPTH ?DUP IF DUP 0< IF NEGATE 0 DO 0 LOOP ELSE 0 DO DROP LOOP THEN THEN ;: ERROR		\ ( C-ADDR U -- ) DISPLAY AN ERROR MESSAGE FOLLOWED BY		\ THE LINE THAT HAD THE ERROR.   \ TYPE SOURCE TYPE CR			\ DISPLAY LINE CORRESPONDING TO ERROR   \ FIXME beginagain wants the following for output:   TYPE SOURCE drop span @ TYPE CR	\ DISPLAY LINE CORRESPONDING TO ERROR   EMPTY-STACK				\ THROW AWAY EVERY THING ELSE   -99 SYS-DEBUG                        \ MAKE BEGINAGAIN BOOTSTRAP FAIL.;VARIABLE ACTUAL-DEPTH			\ STACK RECORDCREATE ACTUAL-RESULTS 20 CELLS ALLOT: {		\ ( -- ) SYNTACTIC SUGAR.   ;: ->		\ ( ... -- ) RECORD DEPTH AND CONTENT OF STACK.   DEPTH DUP ACTUAL-DEPTH !		\ RECORD DEPTH   ?DUP IF				\ IF THERE IS SOMETHING ON STACK      0 DO ACTUAL-RESULTS I CELLS + ! LOOP \ SAVE THEM   THEN ;: }		\ ( ... -- ) COMPARE STACK (EXPECTED) CONTENTS WITH SAVED		\ (ACTUAL) CONTENTS.   DEPTH ACTUAL-DEPTH @ = IF		\ IF DEPTHS MATCH      DEPTH ?DUP IF			\ IF THERE IS SOMETHING ON THE STACK         0 DO				\ FOR EACH STACK ITEM	    ACTUAL-RESULTS I CELLS + @	\ COMPARE ACTUAL WITH EXPECTED	    <> IF S" INCORRECT RESULT: " ERROR LEAVE THEN	 LOOP      THEN   ELSE					\ DEPTH MISMATCH      S" WRONG NUMBER OF RESULTS: " ERROR   THEN ;: TESTING	\ ( -- ) TALKING COMMENT.   SOURCE VERBOSE @   IF DUP >R TYPE CR R> >IN !   ELSE >IN ! DROP   THEN    ;\ From: John Hayes S1I\ Subject: core.fr\ Date: Mon, 27 Nov 95 13:10\ (C) 1995 JOHNS HOPKINS UNIVERSITY / APPLIED PHYSICS LABORATORY\ MAY BE DISTRIBUTED FREELY AS LONG AS THIS COPYRIGHT NOTICE REMAINS.\ VERSION 1.2\ THIS PROGRAM TESTS THE CORE WORDS OF AN ANS FORTH SYSTEM.\ THE PROGRAM ASSUMES A TWO'S COMPLEMENT IMPLEMENTATION WHERE\ THE RANGE OF SIGNED NUMBERS IS -2^(N-1) ... 2^(N-1)-1 AND\ THE RANGE OF UNSIGNED NUMBERS IS 0 ... 2^(N)-1.\ I HAVEN'T FIGURED OUT HOW TO TEST KEY, QUIT, ABORT, OR ABORT"...\ I ALSO HAVEN'T THOUGHT OF A WAY TO TEST ENVIRONMENT?...TESTING CORE WORDSHEX\ ------------------------------------------------------------------------TESTING BASIC ASSUMPTIONS{ -> }					\ START WITH CLEAN SLATE( TEST IF ANY BITS ARE SET; ANSWER IN BASE 1 ){ : BITSSET? IF 0 0 ELSE 0 THEN ; -> }{  0 BITSSET? -> 0 }		( ZERO IS ALL BITS CLEAR ){  1 BITSSET? -> 0 0 }		( OTHER NUMBER HAVE AT LEAST ONE BIT ){ -1 BITSSET? -> 0 0 }\ ------------------------------------------------------------------------TESTING BOOLEANS: INVERT AND OR XOR{ 0 0 AND -> 0 }{ 0 1 AND -> 0 }{ 1 0 AND -> 0 }{ 1 1 AND -> 1 }{ 0 INVERT 1 AND -> 1 }{ 1 INVERT 1 AND -> 0 }0	 CONSTANT 0S0 INVERT CONSTANT 1S{ 0S INVERT -> 1S }{ 1S INVERT -> 0S }{ 0S 0S AND -> 0S }{ 0S 1S AND -> 0S }{ 1S 0S AND -> 0S }{ 1S 1S AND -> 1S }{ 0S 0S OR -> 0S }{ 0S 1S OR -> 1S }{ 1S 0S OR -> 1S }{ 1S 1S OR -> 1S }{ 0S 0S XOR -> 0S }{ 0S 1S XOR -> 1S }{ 1S 0S XOR -> 1S }{ 1S 1S XOR -> 0S }\ ------------------------------------------------------------------------TESTING 2* 2/ LSHIFT RSHIFT( WE TRUST 1S, INVERT, AND BITSSET?; WE WILL CONFIRM RSHIFT LATER )1S 1 RSHIFT INVERT CONSTANT MSB{ MSB BITSSET? -> 0 0 }{ 0S 2* -> 0S }{ 1 2* -> 2 }{ 4000 2* -> 8000 }{ 1S 2* 1 XOR -> 1S }{ MSB 2* -> 0S }{ 0S 2/ -> 0S }{ 1 2/ -> 0 }{ 4000 2/ -> 2000 }{ 1S 2/ -> 1S }				\ MSB PROPOGATED{ 1S 1 XOR 2/ -> 1S }{ MSB 2/ MSB AND -> MSB }{ 1 0 LSHIFT -> 1 }{ 1 1 LSHIFT -> 2 }{ 1 2 LSHIFT -> 4 }{ 1 F LSHIFT -> 8000 }			\ BIGGEST GUARANTEED SHIFT{ 1S 1 LSHIFT 1 XOR -> 1S }{ MSB 1 LSHIFT -> 0 }{ 1 0 RSHIFT -> 1 }{ 1 1 RSHIFT -> 0 }{ 2 1 RSHIFT -> 1 }{ 4 2 RSHIFT -> 1 }{ 8000 F RSHIFT -> 1 }			\ BIGGEST{ MSB 1 RSHIFT MSB AND -> 0 }		\ RSHIFT ZERO FILLS MSBS{ MSB 1 RSHIFT 2* -> MSB }\ ------------------------------------------------------------------------TESTING COMPARISONS: 0= = 0< < > U< MIN MAX0 INVERT			CONSTANT MAX-UINT0 INVERT 1 RSHIFT		CONSTANT MAX-INT0 INVERT 1 RSHIFT INVERT	CONSTANT MIN-INT0 INVERT 1 RSHIFT		CONSTANT MID-UINT0 INVERT 1 RSHIFT INVERT	CONSTANT MID-UINT+10S CONSTANT <FALSE>1S CONSTANT <TRUE>{ 0 0= -> <TRUE> }{ 1 0= -> <FALSE> }{ 2 0= -> <FALSE> }{ -1 0= -> <FALSE> }{ MAX-UINT 0= -> <FALSE> }{ MIN-INT 0= -> <FALSE> }{ MAX-INT 0= -> <FALSE> }{ 0 0 = -> <TRUE> }{ 1 1 = -> <TRUE> }{ -1 -1 = -> <TRUE> }{ 1 0 = -> <FALSE> }{ -1 0 = -> <FALSE> }{ 0 1 = -> <FALSE> }{ 0 -1 = -> <FALSE> }{ 0 0< -> <FALSE> }{ -1 0< -> <TRUE> }{ MIN-INT 0< -> <TRUE> }{ 1 0< -> <FALSE> }{ MAX-INT 0< -> <FALSE> }{ 0 1 < -> <TRUE> }{ 1 2 < -> <TRUE> }{ -1 0 < -> <TRUE> }{ -1 1 < -> <TRUE> }{ MIN-INT 0 < -> <TRUE> }{ MIN-INT MAX-INT < -> <TRUE> }{ 0 MAX-INT < -> <TRUE> }{ 0 0 < -> <FALSE> }{ 1 1 < -> <FALSE> }{ 1 0 < -> <FALSE> }{ 2 1 < -> <FALSE> }{ 0 -1 < -> <FALSE> }{ 1 -1 < -> <FALSE> }{ 0 MIN-INT < -> <FALSE> }{ MAX-INT MIN-INT < -> <FALSE> }{ MAX-INT 0 < -> <FALSE> }{ 0 1 > -> <FALSE> }{ 1 2 > -> <FALSE> }{ -1 0 > -> <FALSE> }{ -1 1 > -> <FALSE> }{ MIN-INT 0 > -> <FALSE> }{ MIN-INT MAX-INT > -> <FALSE> }{ 0 MAX-INT > -> <FALSE> }{ 0 0 > -> <FALSE> }{ 1 1 > -> <FALSE> }{ 1 0 > -> <TRUE> }{ 2 1 > -> <TRUE> }{ 0 -1 > -> <TRUE> }{ 1 -1 > -> <TRUE> }{ 0 MIN-INT > -> <TRUE> }{ MAX-INT MIN-INT > -> <TRUE> }{ MAX-INT 0 > -> <TRUE> }{ 0 1 U< -> <TRUE> }{ 1 2 U< -> <TRUE> }{ 0 MID-UINT U< -> <TRUE> }{ 0 MAX-UINT U< -> <TRUE> }{ MID-UINT MAX-UINT U< -> <TRUE> }{ 0 0 U< -> <FALSE> }{ 1 1 U< -> <FALSE> }{ 1 0 U< -> <FALSE> }{ 2 1 U< -> <FALSE> }{ MID-UINT 0 U< -> <FALSE> }{ MAX-UINT 0 U< -> <FALSE> }{ MAX-UINT MID-UINT U< -> <FALSE> }{ 0 1 MIN -> 0 }{ 1 2 MIN -> 1 }{ -1 0 MIN -> -1 }{ -1 1 MIN -> -1 }{ MIN-INT 0 MIN -> MIN-INT }{ MIN-INT MAX-INT MIN -> MIN-INT }{ 0 MAX-INT MIN -> 0 }{ 0 0 MIN -> 0 }{ 1 1 MIN -> 1 }{ 1 0 MIN -> 0 }{ 2 1 MIN -> 1 }{ 0 -1 MIN -> -1 }{ 1 -1 MIN -> -1 }{ 0 MIN-INT MIN -> MIN-INT }{ MAX-INT MIN-INT MIN -> MIN-INT }{ MAX-INT 0 MIN -> 0 }{ 0 1 MAX -> 1 }{ 1 2 MAX -> 2 }{ -1 0 MAX -> 0 }{ -1 1 MAX -> 1 }{ MIN-INT 0 MAX -> 0 }{ MIN-INT MAX-INT MAX -> MAX-INT }{ 0 MAX-INT MAX -> MAX-INT }{ 0 0 MAX -> 0 }{ 1 1 MAX -> 1 }{ 1 0 MAX -> 1 }{ 2 1 MAX -> 2 }{ 0 -1 MAX -> 0 }{ 1 -1 MAX -> 1 }{ 0 MIN-INT MAX -> 0 }{ MAX-INT MIN-INT MAX -> MAX-INT }{ MAX-INT 0 MAX -> MAX-INT }\ ------------------------------------------------------------------------TESTING STACK OPS: 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP{ 1 2 2DROP -> }{ 1 2 2DUP -> 1 2 1 2 }{ 1 2 3 4 2OVER -> 1 2 3 4 1 2 }{ 1 2 3 4 2SWAP -> 3 4 1 2 }{ 0 ?DUP -> 0 }{ 1 ?DUP -> 1 1 }{ -1 ?DUP -> -1 -1 }{ DEPTH -> 0 }{ 0 DEPTH -> 0 1 }{ 0 1 DEPTH -> 0 1 2 }{ 0 DROP -> }{ 1 2 DROP -> 1 }{ 1 DUP -> 1 1 }{ 1 2 OVER -> 1 2 1 }{ 1 2 3 ROT -> 2 3 1 }{ 1 2 SWAP -> 2 1 }\ ------------------------------------------------------------------------TESTING >R R> R@{ : GR1 >R R> ; -> }{ : GR2 >R R@ R> DROP ; -> }{ 123 GR1 -> 123 }{ 123 GR2 -> 123 }{ 1S GR1 -> 1S }   ( RETURN STACK HOLDS CELLS )\ ------------------------------------------------------------------------TESTING ADD/SUBTRACT: + - 1+ 1- ABS NEGATE{ 0 5 + -> 5 }{ 5 0 + -> 5 }{ 0 -5 + -> -5 }{ -5 0 + -> -5 }{ 1 2 + -> 3 }{ 1 -2 + -> -1 }{ -1 2 + -> 1 }{ -1 -2 + -> -3 }{ -1 1 + -> 0 }{ MID-UINT 1 + -> MID-UINT+1 }{ 0 5 - -> -5 }{ 5 0 - -> 5 }{ 0 -5 - -> 5 }{ -5 0 - -> -5 }{ 1 2 - -> -1 }{ 1 -2 - -> 3 }{ -1 2 - -> -3 }{ -1 -2 - -> 1 }{ 0 1 - -> -1 }{ MID-UINT+1 1 - -> MID-UINT }{ 0 1+ -> 1 }{ -1 1+ -> 0 }{ 1 1+ -> 2 }{ MID-UINT 1+ -> MID-UINT+1 }{ 2 1- -> 1 }{ 1 1- -> 0 }{ 0 1- -> -1 }{ MID-UINT+1 1- -> MID-UINT }{ 0 NEGATE -> 0 }{ 1 NEGATE -> -1 }{ -1 NEGATE -> 1 }{ 2 NEGATE -> -2 }{ -2 NEGATE -> 2 }{ 0 ABS -> 0 }{ 1 ABS -> 1 }{ -1 ABS -> 1 }{ MIN-INT ABS -> MID-UINT+1 }\ ------------------------------------------------------------------------TESTING MULTIPLY: S>D * M* UM*{ 0 S>D -> 0 0 }{ 1 S>D -> 1 0 }{ 2 S>D -> 2 0 }{ -1 S>D -> -1 -1 }{ -2 S>D -> -2 -1 }{ MIN-INT S>D -> MIN-INT -1 }{ MAX-INT S>D -> MAX-INT 0 }{ 0 0 M* -> 0 S>D }{ 0 1 M* -> 0 S>D }{ 1 0 M* -> 0 S>D }{ 1 2 M* -> 2 S>D }{ 2 1 M* -> 2 S>D }{ 3 3 M* -> 9 S>D }{ -3 3 M* -> -9 S>D }{ 3 -3 M* -> -9 S>D }{ -3 -3 M* -> 9 S>D }{ 0 MIN-INT M* -> 0 S>D }{ 1 MIN-INT M* -> MIN-INT S>D }{ 2 MIN-INT M* -> 0 1S }{ 0 MAX-INT M* -> 0 S>D }{ 1 MAX-INT M* -> MAX-INT S>D }{ 2 MAX-INT M* -> MAX-INT 1 LSHIFT 0 }{ MIN-INT MIN-INT M* -> 0 MSB 1 RSHIFT }{ MAX-INT MIN-INT M* -> MSB MSB 2/ }{ MAX-INT MAX-INT M* -> 1 MSB 2/ INVERT }{ 0 0 * -> 0 }				\ TEST IDENTITIES{ 0 1 * -> 0 }{ 1 0 * -> 0 }{ 1 2 * -> 2 }{ 2 1 * -> 2 }{ 3 3 * -> 9 }{ -3 3 * -> -9 }{ 3 -3 * -> -9 }{ -3 -3 * -> 9 }{ MID-UINT+1 1 RSHIFT 2 * -> MID-UINT+1 }{ MID-UINT+1 2 RSHIFT 4 * -> MID-UINT+1 }{ MID-UINT+1 1 RSHIFT MID-UINT+1 OR 2 * -> MID-UINT+1 }{ 0 0 UM* -> 0 0 }{ 0 1 UM* -> 0 0 }{ 1 0 UM* -> 0 0 }{ 1 2 UM* -> 2 0 }{ 2 1 UM* -> 2 0 }{ 3 3 UM* -> 9 0 }{ MID-UINT+1 1 RSHIFT 2 UM* -> MID-UINT+1 0 }{ MID-UINT+1 2 UM* -> 0 1 }{ MID-UINT+1 4 UM* -> 0 2 }{ 1S 2 UM* -> 1S 1 LSHIFT 1 }{ MAX-UINT MAX-UINT UM* -> 1 1 INVERT }\ ------------------------------------------------------------------------TESTING DIVIDE: FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD{ 0 S>D 1 FM/MOD -> 0 0 }{ 1 S>D 1 FM/MOD -> 0 1 }{ 2 S>D 1 FM/MOD -> 0 2 }{ -1 S>D 1 FM/MOD -> 0 -1 }{ -2 S>D 1 FM/MOD -> 0 -2 }{ 0 S>D -1 FM/MOD -> 0 0 }{ 1 S>D -1 FM/MOD -> 0 -1 }{ 2 S>D -1 FM/MOD -> 0 -2 }{ -1 S>D -1 FM/MOD -> 0 1 }{ -2 S>D -1 FM/MOD -> 0 2 }{ 2 S>D 2 FM/MOD -> 0 1 }{ -1 S>D -1 FM/MOD -> 0 1 }{ -2 S>D -2 FM/MOD -> 0 1 }{  7 S>D  3 FM/MOD -> 1 2 }{  7 S>D -3 FM/MOD -> -2 -3 }{ -7 S>D  3 FM/MOD -> 2 -3 }{ -7 S>D -3 FM/MOD -> -1 2 }{ MAX-INT S>D 1 FM/MOD -> 0 MAX-INT }{ MIN-INT S>D 1 FM/MOD -> 0 MIN-INT }{ MAX-INT S>D MAX-INT FM/MOD -> 0 1 }{ MIN-INT S>D MIN-INT FM/MOD -> 0 1 }{ 1S 1 4 FM/MOD -> 3 MAX-INT }{ 1 MIN-INT M* 1 FM/MOD -> 0 MIN-INT }{ 1 MIN-INT M* MIN-INT FM/MOD -> 0 1 }{ 2 MIN-INT M* 2 FM/MOD -> 0 MIN-INT }{ 2 MIN-INT M* MIN-INT FM/MOD -> 0 2 }{ 1 MAX-INT M* 1 FM/MOD -> 0 MAX-INT }{ 1 MAX-INT M* MAX-INT FM/MOD -> 0 1 }{ 2 MAX-INT M* 2 FM/MOD -> 0 MAX-INT }{ 2 MAX-INT M* MAX-INT FM/MOD -> 0 2 }{ MIN-INT MIN-INT M* MIN-INT FM/MOD -> 0 MIN-INT }{ MIN-INT MAX-INT M* MIN-INT FM/MOD -> 0 MAX-INT }{ MIN-INT MAX-INT M* MAX-INT FM/MOD -> 0 MIN-INT }{ MAX-INT MAX-INT M* MAX-INT FM/MOD -> 0 MAX-INT }{ 0 S>D 1 SM/REM -> 0 0 }{ 1 S>D 1 SM/REM -> 0 1 }{ 2 S>D 1 SM/REM -> 0 2 }{ -1 S>D 1 SM/REM -> 0 -1 }{ -2 S>D 1 SM/REM -> 0 -2 }{ 0 S>D -1 SM/REM -> 0 0 }{ 1 S>D -1 SM/REM -> 0 -1 }{ 2 S>D -1 SM/REM -> 0 -2 }{ -1 S>D -1 SM/REM -> 0 1 }{ -2 S>D -1 SM/REM -> 0 2 }{ 2 S>D 2 SM/REM -> 0 1 }{ -1 S>D -1 SM/REM -> 0 1 }{ -2 S>D -2 SM/REM -> 0 1 }{  7 S>D  3 SM/REM -> 1 2 }{  7 S>D -3 SM/REM -> 1 -2 }{ -7 S>D  3 SM/REM -> -1 -2 }{ -7 S>D -3 SM/REM -> -1 2 }{ MAX-INT S>D 1 SM/REM -> 0 MAX-INT }{ MIN-INT S>D 1 SM/REM -> 0 MIN-INT }{ MAX-INT S>D MAX-INT SM/REM -> 0 1 }{ MIN-INT S>D MIN-INT SM/REM -> 0 1 }{ 1S 1 4 SM/REM -> 3 MAX-INT }{ 2 MIN-INT M* 2 SM/REM -> 0 MIN-INT }{ 2 MIN-INT M* MIN-INT SM/REM -> 0 2 }{ 2 MAX-INT M* 2 SM/REM -> 0 MAX-INT }{ 2 MAX-INT M* MAX-INT SM/REM -> 0 2 }{ MIN-INT MIN-INT M* MIN-INT SM/REM -> 0 MIN-INT }{ MIN-INT MAX-INT M* MIN-INT SM/REM -> 0 MAX-INT }{ MIN-INT MAX-INT M* MAX-INT SM/REM -> 0 MIN-INT }{ MAX-INT MAX-INT M* MAX-INT SM/REM -> 0 MAX-INT }{ 0 0 1 UM/MOD -> 0 0 }{ 1 0 1 UM/MOD -> 0 1 }{ 1 0 2 UM/MOD -> 1 0 }{ 3 0 2 UM/MOD -> 1 1 }{ MAX-UINT 2 UM* 2 UM/MOD -> 0 MAX-UINT }{ MAX-UINT 2 UM* MAX-UINT UM/MOD -> 0 2 }{ MAX-UINT MAX-UINT UM* MAX-UINT UM/MOD -> 0 MAX-UINT }: IFFLOORED   [ -3 2 / -2 = INVERT ] LITERAL IF POSTPONE \ THEN ;: IFSYM   [ -3 2 / -1 = INVERT ] LITERAL IF POSTPONE \ THEN ;\ THE SYSTEM MIGHT DO EITHER FLOORED OR SYMMETRIC DIVISION.\ SINCE WE HAVE ALREADY TESTED M*, FM/MOD, AND SM/REM WE CAN USE THEM IN TEST.IFFLOORED : T/MOD  >R S>D R> FM/MOD ;IFFLOORED : T/     T/MOD SWAP DROP ;IFFLOORED : TMOD   T/MOD DROP ;IFFLOORED : T*/MOD >R M* R> FM/MOD ;IFFLOORED : T*/    T*/MOD SWAP DROP ;IFSYM     : T/MOD  >R S>D R> SM/REM ;IFSYM     : T/     T/MOD SWAP DROP ;IFSYM     : TMOD   T/MOD DROP ;IFSYM     : T*/MOD >R M* R> SM/REM ;IFSYM     : T*/    T*/MOD SWAP DROP ;{ 0 1 /MOD -> 0 1 T/MOD }{ 1 1 /MOD -> 1 1 T/MOD }{ 2 1 /MOD -> 2 1 T/MOD }{ -1 1 /MOD -> -1 1 T/MOD }{ -2 1 /MOD -> -2 1 T/MOD }{ 0 -1 /MOD -> 0 -1 T/MOD }{ 1 -1 /MOD -> 1 -1 T/MOD }{ 2 -1 /MOD -> 2 -1 T/MOD }{ -1 -1 /MOD -> -1 -1 T/MOD }{ -2 -1 /MOD -> -2 -1 T/MOD }{ 2 2 /MOD -> 2 2 T/MOD }{ -1 -1 /MOD -> -1 -1 T/MOD }{ -2 -2 /MOD -> -2 -2 T/MOD }{ 7 3 /MOD -> 7 3 T/MOD }{ 7 -3 /MOD -> 7 -3 T/MOD }{ -7 3 /MOD -> -7 3 T/MOD }{ -7 -3 /MOD -> -7 -3 T/MOD }{ MAX-INT 1 /MOD -> MAX-INT 1 T/MOD }{ MIN-INT 1 /MOD -> MIN-INT 1 T/MOD }{ MAX-INT MAX-INT /MOD -> MAX-INT MAX-INT T/MOD }{ MIN-INT MIN-INT /MOD -> MIN-INT MIN-INT T/MOD }{ 0 1 / -> 0 1 T/ }{ 1 1 / -> 1 1 T/ }{ 2 1 / -> 2 1 T/ }{ -1 1 / -> -1 1 T/ }{ -2 1 / -> -2 1 T/ }{ 0 -1 / -> 0 -1 T/ }{ 1 -1 / -> 1 -1 T/ }{ 2 -1 / -> 2 -1 T/ }{ -1 -1 / -> -1 -1 T/ }{ -2 -1 / -> -2 -1 T/ }{ 2 2 / -> 2 2 T/ }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -