DUMP
DUMP (дамп) — стандартное слово Каллисто.
DUMP ( a c −− ) Дамп. Вывести c байт от адреса a.
Отображает c адресных единиц памяти, начиная с адреса a
Ввод слова DUMP
В режиме ЛАТ последовательно нажмите четыре клавиши K 3 ÷ 6
DUMP в стандарте ANS Forth
15.6.1.1280 DUMP TOOLS ( addr u -- ) Отображает содержание u последовательных адресов, начинающихся с addr. Формат отображения зависящий от реализации. DUMP может быть реализовано, с использованием слов вывода отображаемых чисел. Следовательно, его использование может разрушать временную область, идентифицированную #>. См.: 3.3.3.6 Другие Временные Области.
История
В 1968 году Чак Мур работал в Mohasco Industries, Inc (Amsterdam NY, англ.). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово DUMP
DUMP был необходим для просмотра памяти.
В Каллисто работают классические фразы Форта HEX DUMP и DECIMAL DUMP
DUMP в предыдущем стандарте Forth-83 (англ.)
DUMP addr u -- M,79 List the contents of u addresses starting at addr. Each line of values may be preceded by the address of the first value.
DUMP в стандарте Forth-79 (англ.)
DUMP addr n -- 123 List the contents of n addresses at addr. Each line of values may be preceded by the address of the first value.
DUMP в fig-FORTH Release 1 glossary, май 1979 (англ.)
DUMP addr n --- L0 Print the contents of n memory locations beginning at addr. Both addresses and contents are shown in the current numeric base.
Реализация
3914 ;#DUMP 3915 ; DUMP ( a c −− ) Дамп. Вывести c байт от адреса a. 3916 LDUMP: .DB 4 3917 .TEXT "DUMP" ; ( адрес длина −− ) 3918 .DW LDEPTH ; Отобразить c байт памяти, начиная с адреса a 3919 DUMP: .DW CALL, DUP2, XFOR,DP1E 3920 DP1: .DW DUP,CAT,FDOT, ONEP, XNEXT,DP1 3921 DP1E: .DW DROP, XFOR,DP2E 3922 DP2: .DW DUP,CAT,CDOT, ONEP, XNEXT,DP2 3923 DP2E: .DW DROP, BRAN,RSPACE
Реализация из SP-Forth 4.20:
: DUMP ( addr u -- ) \ 94 TOOLS DUP 0= IF 2DROP EXIT THEN BASE @ >R HEX 15 + 16 U/ 0 DO CR DUP 4 .0 SPACE SPACE DUP 16 0 DO I 4 MOD 0= IF SPACE THEN DUP C@ 2 .0 SPACE 1+ LOOP SWAP 16 PTYPE LOOP DROP R> BASE ! ;
Советская реализация
Определение слова DUMP приводится у Баранова-Ноздрунова (стр. 38).
Описание и определение слова DUMP в ядре ФОРТ-ЕС:
DUMP + A,U-> РАСПЕЧАТАТЬ НА ТЕРМИНАЛЕ U БАЙТОВ 42 ОТ АДРЕСА U Экран номер 42 ( 09.09.86 DUMP SNAPSTK S. R. ) : DUMP ( A,U-> РАСПЕЧАТАТЬ U БАйТОВ) DUP IF BASE @ >R HEX OVER + SWAP DO CR I <# C" * HOLD 0 15 DO DUP I + C@ HOLD -1 +LOOP С" * HOLD 0 15 DO BL HOLD DUP I + C@ 0 # # 2DROP -1 +LOOP BL HOLD BL HOLD 0 # # # # # #> TYPE 16 +LOOP R> BASE ! ELSE 2DROP THEN ;
Определение слова DUMP в FORTH ИТЭФ:
HEAD 204Q,'DUM',32OQ,DUMP,$COL ; DUMP DW ZERO,XDO DMP: DW DUBL,LIT,7,UDOTR,SPACE,EIGHT,ZERO,XDO DP1: DW DUBL,I,PLUS,CAT,LIT,5,DOTR,XLOOP,DP1-$ DW LIT,4,SPACS,EIGHT,ZERO,XDO DP2: DW DUBL,I,PLUS,CAT,LIT,1770,$AND,DUBL,BLAN DW LESS,ZBRAN,DP3-$,DROP,LIT,56Q DP3: DW EMIT,XLOOP,DP2-$,CR,EIGHT,PLUS,EIGHT DW XPLOO,DMP-$,DROP,SEMI
Ссылки
- Исходный текст слова DUMP в Каллисто Классик 1.0
- Слово DUMP в стандарте ANS Forth (англ.)
- Слово DUMP в черновике Forth 200x (англ.)
- Дамп памяти на Википедии
- Variables, Constants, and Arrays в книге Leo Brodie Starting Forth (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |