📄 enc-dos.lisp
字号:
(#xF6 #x00F7) ; DIVISION SIGN (#xF7 #x00B8) ; CEDILLA (#xF8 #x00B0) ; DEGREE SIGN (#xF9 #x00A8) ; DIAERESIS (#xFA #x00B7) ; MIDDLE DOT (#xFB #x00B9) ; SUPERSCRIPT ONE (#xFC #x00B3) ; SUPERSCRIPT THREE (#xFD #x00B2) ; SUPERSCRIPT TWO (#xFE #x25A0) ; BLACK SQUARE (#xFF #x00A0) ; NO-BREAK SPACE)(declaim (inline get-cp850-bytes))(defun get-cp850-bytes (string pos) (declare (optimize speed (safety 0)) (type simple-string string) (type array-range pos)) (get-latin-bytes #'code->cp850-mapper :cp850 string pos))(defun string->cp850 (string sstart send null-padding) (declare (optimize speed (safety 0)) (type simple-string string) (type array-range sstart send)) (values (string->latin% string sstart send #'get-cp850-bytes null-padding)))(defmacro define-cp850->string* (accessor type) (declare (ignore type)) (let ((name (make-od-name 'cp850->string* accessor))) `(progn (defun ,name (string sstart send array astart aend) (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'cp850->code-mapper)))))(instantiate-octets-definition define-cp850->string*)(defmacro define-cp850->string (accessor type) (declare (ignore type)) `(defun ,(make-od-name 'cp850->string accessor) (array astart aend) (,(make-od-name 'latin->string accessor) array astart aend #'cp850->code-mapper)))(instantiate-octets-definition define-cp850->string)(add-external-format-funs '(:cp850 :|cp850|) '(cp850->string-aref string->cp850))(define-external-format (:cp850 :|cp850|) 1 t (let ((cp850-byte (code->cp850-mapper bits))) (if cp850-byte (setf (sap-ref-8 sap tail) cp850-byte) (external-format-encoding-error stream bits))) (let ((code (cp850->code-mapper byte))) (if code (code-char code) (external-format-decoding-error stream byte)))) ;; TODO -- error check(define-unibyte-mapper cp852->code-mapper code->cp852-mapper (#x80 #x00C7) ; LATIN CAPITAL LETTER C WITH CEDILLA (#x81 #x00FC) ; LATIN SMALL LETTER U WITH DIAERESIS (#x82 #x00E9) ; LATIN SMALL LETTER E WITH ACUTE (#x83 #x00E2) ; LATIN SMALL LETTER A WITH CIRCUMFLEX (#x84 #x00E4) ; LATIN SMALL LETTER A WITH DIAERESIS (#x85 #x016F) ; LATIN SMALL LETTER U WITH RING ABOVE (#x86 #x0107) ; LATIN SMALL LETTER C WITH ACUTE (#x87 #x00E7) ; LATIN SMALL LETTER C WITH CEDILLA (#x88 #x0142) ; LATIN SMALL LETTER L WITH STROKE (#x89 #x00EB) ; LATIN SMALL LETTER E WITH DIAERESIS (#x8A #x0150) ; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE (#x8B #x0151) ; LATIN SMALL LETTER O WITH DOUBLE ACUTE (#x8C #x00EE) ; LATIN SMALL LETTER I WITH CIRCUMFLEX (#x8D #x0179) ; LATIN CAPITAL LETTER Z WITH ACUTE (#x8E #x00C4) ; LATIN CAPITAL LETTER A WITH DIAERESIS (#x8F #x0106) ; LATIN CAPITAL LETTER C WITH ACUTE (#x90 #x00C9) ; LATIN CAPITAL LETTER E WITH ACUTE (#x91 #x0139) ; LATIN CAPITAL LETTER L WITH ACUTE (#x92 #x013A) ; LATIN SMALL LETTER L WITH ACUTE (#x93 #x00F4) ; LATIN SMALL LETTER O WITH CIRCUMFLEX (#x94 #x00F6) ; LATIN SMALL LETTER O WITH DIAERESIS (#x95 #x013D) ; LATIN CAPITAL LETTER L WITH CARON (#x96 #x013E) ; LATIN SMALL LETTER L WITH CARON (#x97 #x015A) ; LATIN CAPITAL LETTER S WITH ACUTE (#x98 #x015B) ; LATIN SMALL LETTER S WITH ACUTE (#x99 #x00D6) ; LATIN CAPITAL LETTER O WITH DIAERESIS (#x9A #x00DC) ; LATIN CAPITAL LETTER U WITH DIAERESIS (#x9B #x0164) ; LATIN CAPITAL LETTER T WITH CARON (#x9C #x0165) ; LATIN SMALL LETTER T WITH CARON (#x9D #x0141) ; LATIN CAPITAL LETTER L WITH STROKE (#x9E #x00D7) ; MULTIPLICATION SIGN (#x9F #x010D) ; LATIN SMALL LETTER C WITH CARON (#xA0 #x00E1) ; LATIN SMALL LETTER A WITH ACUTE (#xA1 #x00ED) ; LATIN SMALL LETTER I WITH ACUTE (#xA2 #x00F3) ; LATIN SMALL LETTER O WITH ACUTE (#xA3 #x00FA) ; LATIN SMALL LETTER U WITH ACUTE (#xA4 #x0104) ; LATIN CAPITAL LETTER A WITH OGONEK (#xA5 #x0105) ; LATIN SMALL LETTER A WITH OGONEK (#xA6 #x017D) ; LATIN CAPITAL LETTER Z WITH CARON (#xA7 #x017E) ; LATIN SMALL LETTER Z WITH CARON (#xA8 #x0118) ; LATIN CAPITAL LETTER E WITH OGONEK (#xA9 #x0119) ; LATIN SMALL LETTER E WITH OGONEK (#xAA #x00AC) ; NOT SIGN (#xAB #x017A) ; LATIN SMALL LETTER Z WITH ACUTE (#xAC #x010C) ; LATIN CAPITAL LETTER C WITH CARON (#xAD #x015F) ; LATIN SMALL LETTER S WITH CEDILLA (#xAE #x00AB) ; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (#xAF #x00BB) ; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (#xB0 #x2591) ; LIGHT SHADE (#xB1 #x2592) ; MEDIUM SHADE (#xB2 #x2593) ; DARK SHADE (#xB3 #x2502) ; BOX DRAWINGS LIGHT VERTICAL (#xB4 #x2524) ; BOX DRAWINGS LIGHT VERTICAL AND LEFT (#xB5 #x00C1) ; LATIN CAPITAL LETTER A WITH ACUTE (#xB6 #x00C2) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX (#xB7 #x011A) ; LATIN CAPITAL LETTER E WITH CARON (#xB8 #x015E) ; LATIN CAPITAL LETTER S WITH CEDILLA (#xB9 #x2563) ; BOX DRAWINGS DOUBLE VERTICAL AND LEFT (#xBA #x2551) ; BOX DRAWINGS DOUBLE VERTICAL (#xBB #x2557) ; BOX DRAWINGS DOUBLE DOWN AND LEFT (#xBC #x255D) ; BOX DRAWINGS DOUBLE UP AND LEFT (#xBD #x017B) ; LATIN CAPITAL LETTER Z WITH DOT ABOVE (#xBE #x017C) ; LATIN SMALL LETTER Z WITH DOT ABOVE (#xBF #x2510) ; BOX DRAWINGS LIGHT DOWN AND LEFT (#xC0 #x2514) ; BOX DRAWINGS LIGHT UP AND RIGHT (#xC1 #x2534) ; BOX DRAWINGS LIGHT UP AND HORIZONTAL (#xC2 #x252C) ; BOX DRAWINGS LIGHT DOWN AND HORIZONTAL (#xC3 #x251C) ; BOX DRAWINGS LIGHT VERTICAL AND RIGHT (#xC4 #x2500) ; BOX DRAWINGS LIGHT HORIZONTAL (#xC5 #x253C) ; BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL (#xC6 #x0102) ; LATIN CAPITAL LETTER A WITH BREVE (#xC7 #x0103) ; LATIN SMALL LETTER A WITH BREVE (#xC8 #x255A) ; BOX DRAWINGS DOUBLE UP AND RIGHT (#xC9 #x2554) ; BOX DRAWINGS DOUBLE DOWN AND RIGHT (#xCA #x2569) ; BOX DRAWINGS DOUBLE UP AND HORIZONTAL (#xCB #x2566) ; BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL (#xCC #x2560) ; BOX DRAWINGS DOUBLE VERTICAL AND RIGHT (#xCD #x2550) ; BOX DRAWINGS DOUBLE HORIZONTAL (#xCE #x256C) ; BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL (#xCF #x00A4) ; CURRENCY SIGN (#xD0 #x0111) ; LATIN SMALL LETTER D WITH STROKE (#xD1 #x0110) ; LATIN CAPITAL LETTER D WITH STROKE (#xD2 #x010E) ; LATIN CAPITAL LETTER D WITH CARON (#xD3 #x00CB) ; LATIN CAPITAL LETTER E WITH DIAERESIS (#xD4 #x010F) ; LATIN SMALL LETTER D WITH CARON (#xD5 #x0147) ; LATIN CAPITAL LETTER N WITH CARON (#xD6 #x00CD) ; LATIN CAPITAL LETTER I WITH ACUTE (#xD7 #x00CE) ; LATIN CAPITAL LETTER I WITH CIRCUMFLEX (#xD8 #x011B) ; LATIN SMALL LETTER E WITH CARON (#xD9 #x2518) ; BOX DRAWINGS LIGHT UP AND LEFT (#xDA #x250C) ; BOX DRAWINGS LIGHT DOWN AND RIGHT (#xDB #x2588) ; FULL BLOCK (#xDC #x2584) ; LOWER HALF BLOCK (#xDD #x0162) ; LATIN CAPITAL LETTER T WITH CEDILLA (#xDE #x016E) ; LATIN CAPITAL LETTER U WITH RING ABOVE (#xDF #x2580) ; UPPER HALF BLOCK (#xE0 #x00D3) ; LATIN CAPITAL LETTER O WITH ACUTE (#xE1 #x00DF) ; LATIN SMALL LETTER SHARP S (#xE2 #x00D4) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX (#xE3 #x0143) ; LATIN CAPITAL LETTER N WITH ACUTE (#xE4 #x0144) ; LATIN SMALL LETTER N WITH ACUTE (#xE5 #x0148) ; LATIN SMALL LETTER N WITH CARON (#xE6 #x0160) ; LATIN CAPITAL LETTER S WITH CARON (#xE7 #x0161) ; LATIN SMALL LETTER S WITH CARON (#xE8 #x0154) ; LATIN CAPITAL LETTER R WITH ACUTE (#xE9 #x00DA) ; LATIN CAPITAL LETTER U WITH ACUTE (#xEA #x0155) ; LATIN SMALL LETTER R WITH ACUTE (#xEB #x0170) ; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE (#xEC #x00FD) ; LATIN SMALL LETTER Y WITH ACUTE (#xED #x00DD) ; LATIN CAPITAL LETTER Y WITH ACUTE (#xEE #x0163) ; LATIN SMALL LETTER T WITH CEDILLA (#xEF #x00B4) ; ACUTE ACCENT (#xF0 #x00AD) ; SOFT HYPHEN (#xF1 #x02DD) ; DOUBLE ACUTE ACCENT (#xF2 #x02DB) ; OGONEK (#xF3 #x02C7) ; CARON (#xF4 #x02D8) ; BREVE (#xF5 #x00A7) ; SECTION SIGN (#xF6 #x00F7) ; DIVISION SIGN (#xF7 #x00B8) ; CEDILLA (#xF8 #x00B0) ; DEGREE SIGN (#xF9 #x00A8) ; DIAERESIS (#xFA #x02D9) ; DOT ABOVE (#xFB #x0171) ; LATIN SMALL LETTER U WITH DOUBLE ACUTE (#xFC #x0158) ; LATIN CAPITAL LETTER R WITH CARON (#xFD #x0159) ; LATIN SMALL LETTER R WITH CARON (#xFE #x25A0) ; BLACK SQUARE (#xFF #x00A0) ; NO-BREAK SPACE)(declaim (inline get-cp852-bytes))(defun get-cp852-bytes (string pos) (declare (optimize speed (safety 0)) (type simple-string string) (type array-range pos)) (get-latin-bytes #'code->cp852-mapper :cp852 string pos))(defun string->cp852 (string sstart send null-padding) (declare (optimize speed (safety 0)) (type simple-string string) (type array-range sstart send)) (values (string->latin% string sstart send #'get-cp852-bytes null-padding)))(defmacro define-cp852->string* (accessor type) (declare (ignore type)) (let ((name (make-od-name 'cp852->string* accessor))) `(progn (defun ,name (string sstart send array astart aend) (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'cp852->code-mapper)))))(instantiate-octets-definition define-cp852->string*)(defmacro define-cp852->string (accessor type) (declare (ignore type)) `(defun ,(make-od-name 'cp852->string accessor) (array astart aend) (,(make-od-name 'latin->string accessor) array astart aend #'cp852->code-mapper)))(instantiate-octets-definition define-cp852->string)(add-external-format-funs '(:cp852 :|cp852|) '(cp852->string-aref string->cp852))(define-external-format (:cp852 :|cp852|) 1 t (let ((cp852-byte (code->cp852-mapper bits))) (if cp852-byte (setf (sap-ref-8 sap tail) cp852-byte) (external-format-encoding-error stream bits))) (let ((code (cp852->code-mapper byte))) (if code (code-char code) (external-format-decoding-error stream byte)))) ;; TODO -- error check(define-unibyte-mapper cp855->code-mapper code->cp855-mapper (#x80 #x0452) ; CYRILLIC SMALL LETTER DJE (#x81 #x0402) ; CYRILLIC CAPITAL LETTER DJE (#x82 #x0453) ; CYRILLIC SMALL LETTER GJE (#x83 #x0403) ; CYRILLIC CAPITAL LETTER GJE (#x84 #x0451) ; CYRILLIC SMALL LETTER IO (#x85 #x0401) ; CYRILLIC CAPITAL LETTER IO (#x86 #x0454) ; CYRILLIC SMALL LETTER UKRAINIAN IE (#x87 #x0404) ; CYRILLIC CAPITAL LETTER UKRAINIAN IE (#x88 #x0455) ; CYRILLIC SMALL LETTER DZE (#x89 #x0405) ; CYRILLIC CAPITAL LETTER DZE (#x8A #x0456) ; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I (#x8B #x0406) ; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I (#x8C #x0457) ; CYRILLIC SMALL LETTER YI (#x8D #x0407) ; CYRILLIC CAPITAL LETTER YI (#x8E #x0458) ; CYRILLIC SMALL LETTER JE (#x8F #x0408) ; CYRILLIC CAPITAL LETTER JE (#x90 #x0459) ; CYRILLIC SMALL LETTER LJE (#x91 #x0409) ; CYRILLIC CAPITAL LETTER LJE (#x92 #x045A) ; CYRILLIC SMALL LETTER NJE (#x93 #x040A) ; CYRILLIC CAPITAL LETTER NJE (#x94 #x045B) ; CYRILLIC SMALL LETTER TSHE (#x95 #x040B) ; CYRILLIC CAPITAL LETTER TSHE (#x96 #x045C) ; CYRILLIC SMALL LETTER KJE (#x97 #x040C) ; CYRILLIC CAPITAL LETTER KJE (#x98 #x045E) ; CYRILLIC SMALL LETTER SHORT U (#x99 #x040E) ; CYRILLIC CAPITAL LETTER SHORT U (#x9A #x045F) ; CYRILLIC SMALL LETTER DZHE (#x9B #x040F) ; CYRILLIC CAPITAL LETTER DZHE (#x9C #x044E) ; CYRILLIC SMALL LETTER YU (#x9D #x042E) ; CYRILLIC CAPITAL LETTER YU (#x9E #x044A) ; CYRILLIC SMALL LETTER HARD SIGN (#x9F #x042A) ; CYRILLIC CAPITAL LETTER HARD SIGN (#xA0 #x0430) ; CYRILLIC SMALL LETTER A (#xA1 #x0410) ; CYRILLIC CAPITAL LETTER A (#xA2 #x0431) ; CYRILLIC SMALL LETTER BE (#xA3 #x0411) ; CYRILLIC CAPITAL LETTER BE (#xA4 #x0446) ; CYRILLIC SMALL LETTER TSE (#xA5 #x0426) ; CYRILLIC CAPITAL LETTER TSE (#xA6 #x0434) ; CYRILLIC SMALL LETTER DE (#xA7 #x0414) ; CYRILLIC CAPITAL LETTER DE (#xA8 #x0435) ; CYRILLIC SMALL LETTER IE (#xA9 #x0415) ; CYRILLIC CAPITAL LETTER IE (#xAA #x0444) ; CYRILLIC SMALL LETTER EF (#xAB #x0424) ; CYRILLIC CAPITAL LETTER EF (#xAC #x0433) ; CYRILLIC SMALL LETTER GHE (#xAD #x0413) ; CYRILLIC CAPITAL LETTER GHE (#xAE #x00AB) ; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (#xAF #x00BB) ; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (#xB0 #x2591) ; LIGHT SHADE (#xB1 #x2592) ; MEDIUM SHADE (#xB2 #x2593) ; DARK SHADE (#xB3 #x2502) ; BOX DRAWINGS LIGHT VERTICAL (#xB4 #x2524) ; BOX DRAWINGS LIGHT VERTICAL AND LEFT (#xB5 #x0445) ; CYRILLIC SMALL LETTER HA (#xB6 #x0425) ; CYRILLIC CAPITAL LETTER HA (#xB7 #x0438) ; CYRILLIC SMALL LETTER I (#xB8 #x0418) ; CYRILLIC CAPITAL LETTER I (#xB9 #x2563) ; BOX DRAWINGS DOUBLE VERTICAL AND LEFT (#xBA #x2551) ; BOX DRAWINGS DOUBLE VERTICAL (#xBB #x2557) ; BOX DRAWINGS DOUBLE DOWN AND LEFT (#xBC #x255D) ; BOX DRAWINGS DOUBLE UP AND LEFT (#xBD #x0439) ; CYRILLIC SMALL LETTER SHORT I (#xBE #x0419) ; CYRILLIC CAPITAL LETTER SHORT I (#xBF #x2510) ; BOX DRAWINGS LIGHT DOWN AND LEFT (#xC0 #x2514) ; BOX DRAWINGS LIGHT UP AND RIGHT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -