DIGIT

Материал из ПМК вики
Перейти к навигации Перейти к поиску

DIGIT (цифра) — стандартное слово Каллисто.

ASCII-DIGIT BASE => DIGIT-VALUE TRUE / FALSE

Ввод слова DIGIT

В режиме ЛАТ последовательно нажмите клавиши  K   7   БП   7   2 

DIGIT в fig-FORTH Release 1 glossary, май 1979 (англ.)

DIGIT           c n1 --- n2 tf (ok) c n1 --- ff (bad)
       Converts the ascii character c (using base n1) to its binary
       equivalent n2, accompanied by a true flag. If the conversion is
       invalid, leaves only a false flag.

История

Слово DIGIT является одним из наиболее старых слов Форта. Оно появилось в Форте в 1965 году, когда Чак Мур подрабатывал наёмным программистом в городе Нью-Йорк. Тогда появились миникомпьютеры, а с ними и терминалы. Интерпретатор был идеален для ввода с телетайпа и вскоре стал включать код для работы с выводом.

Реализация

Описание и определение слова DIGIT в ядре ФОРТ-ЕС:

DIGIT *   C,N1->N2,TP/FF N2 - ЗНАЧЕНИЕ ЛИТЕРЫ С КАК             39
          ЦИФРЫ В СИСТЕМЕ СЧИСЛЕНИЯ ПО ОСНОВАНИЮ N1

                     Экран номер 39
( 31.03.86      DIGIT CONVERT  NUMBER )

: DIGIT ( C,N1->N2,TF/FF) 0 ROT ROT 0
 DO I ALPHA OVER ─ IF 2DROP I -1 0 LEAVE THEN LOOP DROP ;

В FORTH ИТЭФ слово DIGIT тоже было примитивом, вот его определение:

             HEAD    205Q,'DIGI',324Q,DIGIT               ; DIGIT
   ; ASCII-DIGIT BASE=>DIGIT-VALUE TRUE (FALSE)
             POP   AX      ; AX=BASE
             POP   CX
             SUB   CX, 60Q ; VALID DIGIT = ASCII-60
             JL    FALSE
             CMP   CX, 9   ; Если >9
             JLE   M09
             SUB   CX, 7
             CMP   CX, 10
             JL    FALSE
   M09:      CMP   CX, AX  ; Если не меньше BASE, то ошибка
             JGE   FALSE
             PUSH  CX      ; Запись цифры в стек
             JMP   TRUE    ; "Успешный" выход


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.