2.2. В н у т р е н н и е к о д ы с л у ж е б н ы х с л о в 1) о д н о б а й т н ы е слова XWWWWWRWWWWWWWWWRWWWWWRWWWWWWWWWRWWWWWRWWWWWWWWWRWWWWWRWWWWWWWWWY V Код VС л о в оV Код VС л о в оV Код VС л о в оV Код VС л о в оV TWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWS V &h11V 0 V &h12V 1 V &h13V 2 V &h14V 3 V V &h15V 4 V &h16V 5 V &h17V 6 V &h18V 7 V V &h19V 8 V &h1AV 9 V V V V V TWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWS V &h81V END V &h82V FOR V &h83V NEXT V &h84V DATA V V &h85V INPUT V &h86V DIM V &h87V READ V &h88V LEFT V V &h89V GOTO V &h8AV RUN V &h8BV IF V &h8CV RESTOREV V &h8DV GOSUB V &h8EV RETURN V &h8FV REM V &h90V STOP V V &h91V PRINT V &h92V CLEAR V &h93V LIST V &h94V NEW V V &h95V ON V &h96V WAIT V &h97V DEF V &h98V POKE V V &h99V CONT V &h9AV CSAVE V &h9BV CLOAD V &h9CV OUT V V &h9DV LPRINT V &h9EV LLIST V &h9FV CLS V &hA0V WIDTH V V &hA1V ELSE V &hA2V TRON V &hA3V TROFF V &hA4V SWAP V V &hA5V ERASE V &hA6V ERROR V &hA7V RESUME V &hA8V DELETE V V &hA9V AUTO V &hAAV RENUM V &hABV DEFSTR V &hACV DEFINT V V &hADV DEFSNG V &hAEV DEFDBL V &hAFV LINE V &hB0V OPEN V V &hB1V FIELD V &hB2V GET V &hB3V PUT V &hB4V CLOSE V V &hB5V LOAD V &hB6V MERGE V &hB7V FILES V &hB8V LSET V V &hB9V RSET V &hBAV SAVE V &hBBV LFILES V &hBCV CIRCLE V V &hBDV COLOR V &hBEV DRAW V &hBFV PAINT V &hC0V BEEP V V &hC1V PLAY V &hC2V PSET V &hC3V PRESET V &hC4V SOUND V V &hC5V SCREEN V &hC6V VPOKE V &hC7V SPRITE V &hC8V VDP V V &hC9V BASE V &hCAV CALL V &hCBV TIME V &hCCV KEY V V &hCDV MAX V &hCEV MOTOR V &hCFV BLOAD V &hD0V BSAVE V V &hD1V DSKO$ V &hD2V SET V &hD3V NAME V &hD4V KILL V V &hD5V IPL V &hD6V COPY V &hD7V CMD V &hD8V LOCATE V V &hD9V TO V &hDAV THEN V &hDBV TAB( V &hDCV STEP V V &hDDV USR V &hDEV FN V &hDFV SPC( V &hE0V NOT V V &hE1V ERL V &hE2V ERR V &hE3V STRING$V &hE4V USING V V &hE5V INSTR V &hE6V ' V &hE7V VARPTR V &hE8V CSRLIN V V &hE9V ATTR$ V &hEAV DSKI$ V &hEBV OFF V &hECV INKEY$ V V &hEDV POINT V &hEEV > V &hEFV = V &hF0V < V V &hF1V + V &hF2V - V &hF3V * V &hF4V / V V &hF5V ^ V &hF6V AND V &hF7V OR V &hF8V XOR V V &hF9V EQV V &hFAV IMP V &hFBV MOD V &hFCV \ V V &hFDVLine FeedTWWWWWQWWWWWWWWWQWWWWWQWWWWWWWWWQWWWWWQWWWWWWWWW[ ZWWWWWQWWWWWWWWW[ 2) д в у х б а й т н ы е слова (младший байт всегда равен 255=&hFF) XWWWWWRWWWWWWWWWRWWWWWRWWWWWWWWWRWWWWWRWWWWWWWWWRWWWWWRWWWWWWWWWY V Код VС л о в оV Код VС л о в оV Код VС л о в оV Код VС л о в оV TWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWUWWWWWUWWWWWWWWWS V &h81V LEFT$ V &h82V RIGHT$ V &h83V MID$ V &h84V SGN V V &h85V INT V &h86V ABS V &h87V SQR V &h88V RND V V &h89V SIN V &h8AV LOG V &h8BV EXP V &h8CV COS V V &h8DV TAN V &h8EV ATN V &h8FV FRE V &h90V INP V V &h91V POS V &h92V LEN V &h93V STR$ V &h94V VAL V V &h95V ASC V &h96V CHR$ V &h97V PEEK V &h98V VPEEK V V &h99V SPACE$ V &h9AV OCT$ V &h9BV HEX$ V &h9CV LPOS V V &h9DV BIN$ V &h9EV CINT V &h9FV CSNG V &hA0V CDBL V V &hA1V FIX V &hA2V STICK V &hA3V STRING V &hA4V PDL V V &hA5V PAD V &hA6V DSKF V &hA7V FPOS V &hA8V CVI V V &hA9V CVS V &hAAV CVD V &hABV EOF V &hACV LOC V V &hADV LOF V &hAEV MKI$ V &hAFV MKS$ V &hB0V MKD$ V ZWWWWWQWWWWWWWWWQWWWWWQWWWWWWWWWQWWWWWQWWWWWWWWWQWWWWWQWWWWWWWWW[ П р и м е р. Используем коды внутреннего представления для моделирова- WWWWWWWWWWW ния графических операторов MSX BASIC (в примере - LINE). 5 'Автор программы Козлов Вячеслав (XI-й класс), 31.12.1989 г. 10 SCREEN 2 20 DATA F3,3E,FF,D3,A8,3E,AA,32,FF,FF,FF,7B,C8,F6,C9,"z": 'Исходные данные для подпрограммы GINIT 30 RESTORE 20:I=&HA000 40 READ A$ 50 IF A$="z" THEN GOTO 80 60 POKE I,VAL("&h"+A$):I=I+1:GOTO 40 70 DATA 21,F7,8B,22,F8,FE,22,FD,FE,22,E9,FE,21,00,A0,22,FA,FE,22,FF, FE,22,EB,FE,C9,"z" :'Текст подпрограммы GINIT (автор Терещенко В.В.) 80 RESTORE 70:I=&HB000 90 READ A$ 100 IF A$="z" THEN GOTO 130 110 POKE I,VAL("&h"+A$):I=I+1:GOTO 90 120 DATA 11,1E,F4,D5,01,FF,0,ED,B0,E1,DD,21,48,6D,3E,F0,ED,73,C8,F6, C3,8C,F3,C9,"z" :'Текст подпрограммы S (автор Терещенко В.В.) 130 RESTORE 120:I=&HC000 140 READ A$ 150 IF A$="z" THEN GOTO 420 160 POKE I,VAL("&h"+A$):I=I+1:GOTO 140 170 DATA 3A :'Код ASCII символа ":" 180 DATA AF :' OOO Внутренний код оператора LINE OOO 190 DATA 28 :'Код ASCII символа "(" 200 DATA 0F :'Управляющий код. Здесь и всюду ниже: если аргумент двухбайтный, то управляющий код равен &h1C 210 DATA 0 :'Координата X1 в операторе LINE 220 DATA 2C :'Код ASCII символа "," 230 DATA 0F :'Управляющий код 240 DATA 0 :'Координата Y1 в операторе LINE 250 DATA 29 :'Код ASCII символа ")" 260 DATA F2 :'Внутренний код символа "-" 270 DATA 28 :'Код ASCII символа "(" 280 DATA 0F :'Управляющий код 290 DATA 64 :'Координата X2 в операторе LINE 300 DATA 2C :'Код ASCII символа "," 310 DATA 0F :'Управляющий код 320 DATA 64 :'Координата Y2 в операторе LINE 330 DATA 29 :'Код ASCII символа ")" 350 DATA 2C :'Код ASCII символа "," 360 DATA 0F :'Управляющий код 370 DATA 0F :'Код цвета в операторе LINE 380 DATA 2C :'Код ASCII символа "," 390 DATA 42,46:'Последовательно записанные коды символов "B" и "F" 400 DATA 0,0,0,"z" :'Коды 0,0,0 показывают конец текстового представления 410 DATA 42,46,0,0,0,"z" :'Последовательно записанные коды символов "B" и "F" 420 RESTORE 170:I=&HC100 430 READ A$ 440 IF A$="z" THEN GOTO 560 450 POKE I,VAL("&h"+A$):I=I+1:GOTO 430 460 DATA 21,C9,C9,22,F8,FE,22,FD,FE,22,E9,FE,22,FA,FE,22,FF,FE,22,EB, FE,C9,"z" :'Текст подпрограммы GEND (автор Терещенко В.В.) 470 RESTORE 460:I=&HC050 480 READ A$ 490 IF A$="z" THEN GOTO 560 500 POKE I,VAL("&h"+A$):I=I+1:GOTO 480 510 DATA CD,00,B0 :'CALL B000 ; Вызов подпрограммы GINIT 520 DATA 21,00,C1 :'LD HL,C100 ; 530 DATA CD,00,C0 :'CALL C000 ; Вызов подпрограммы S 540 DATA CD,50,C0 :'CALL C050 ; Вызов подпрограммы GEND 550 DATA C9,"z" :'RET 560 RESTORE 510:I=&HD000:DEFUSR=&HD000 570 READ A$ 580 IF A$="z" THEN GOTO 600 590 POKE I,VAL("&h"+A$):I=I+1:GOTO 570 600 A=USR(0)