Здравствуйте Андрюс!
Ну, если у Вас есть Интерлисп, то - в любом.
Я, ведь просто код в пустом диске прислал ...
Полные диски с документацией Здесь!
LISPIDE.zip
А файлик с программкой у Вас уже есть
zen
Здравствуйте Андрюс!
Ну, если у Вас есть Интерлисп, то - в любом.
Я, ведь просто код в пустом диске прислал ...
Полные диски с документацией Здесь!
LISPIDE.zip
А файлик с программкой у Вас уже есть
zen
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
andrews (18.12.2020)
LISP - Lost In Stupid Parentheses
О, дорогой Chewbacca?
Лисп - это не школа!
Лисп - это ЖИЗНЬ!
Проблема в Японском в том, что сначала надо выучить японский!
Утверждаю, что моя дочка сказала, что ЛИСП проще, чем алголоподобные и далее Си-продукты.
Понять и простить НАДО!
А Скобки ... Ну что Скобки
Цитата: От него жена уходит, а он: " Так-так-так,.. Так-так-так, "...
Скобки - для Структуризации и более Ни-Ни!
zen
- - - Добавлено - - -
Вот список всех доступных функций (с ошибками) при загрузке Inter-LISP/65
Вот содержимое INIT.lsp:Код:(OBLIST) (AND OR READC PAGE MEM GO PROG TERPRI OBLIST NEW BREAK SETQ DEFINEQ PROGN NCONC SQRT SIN COS ATAN LENGTH LAST MEMBER ASSOC PR# IN# SAVE DIR LOAD OPEN CLOSE LIST @ LOG EXP > INT / * SUB + # ATOM %OBJ %ADR LITATOM POKE PEEK TAB SOUND SETCOL DRAW COL GR PLOT MOVE PACK UNPACK RPLACD RPLACA POINT NOTE XIO READA CDAR CDDR CADR CAAR *CDR APPLY* BAKTRACE COND READ STRIG STICK EQ DEFINE SET APPEND CONS PRIN2 PRIN1 PRINT CDR CAR GETD EVAL D:INIT.LSP MACRO RETURN RESET NSUBR SUBR NLAMBDA LAMBDA QUOTE ' . ) ( T NIL)
Это Всё!Код:(MAPCAN MAPCAN-AUX MAPCAR MAPCAR-AUX DELETE DELETE-AUX DEFUN GET REMPROP PUTPROP *PMEMBER)
Последний раз редактировалось ezswift; 18.12.2020 в 18:10.
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
Вот способ запустить программку:
Так как это печать в псевдопринтер, то сначала он устанавливается в эмуляторе.
В Atari800WinPlus - это Notepad.
1. Запустить Лисп без картриджей
2. На промпт о необходимости размещения графики в верхней памяти
а) если нужен 80кол режим то подключаю картридж SDX с драйвером CON 80 Режим памяти BANKED
- то есть вся расширенная память отдана SDX, кроме памяти 130XE, чтобы LISP не ругался.
б) если не нужен, то просто запускаю LISP без картриджей, oн сам подгрузит D:INIT.LSP. Bставляю в D2: pp.atr
Вот ещё полезнейшая вещь:
Печать на псевдо-принтер списка...
То есть, для нашего D2:UTSКод:(DEFUN PRINL (L) (PROGN (OPEN 1 8 (QUOTE P:)) (PR# 1) (PPRINT L) (PR# 0) (CLOSE 1)))
Распечатается список Properties (Директория файла)Код:1. (LOAD 'D2:UTS) 2. (PRINL D2:UTS)
- - - Добавлено - - -Код:(PP P PPRINT PPAUX MULTARGS PPARGS TABRET *FORMATS* LPAR BLANK RPAR LINE-WIDTH TABX LDUMP PRINL)
Я тут подумал и понял, что всё же как-то надо оптимизировать систему распечаток.
(TABX LDUMP PRINL) - Это всё же только принтерные утилиты...
На досуге сделаю так:
Оставлю PP библиотеку в EDIT в покое, а эти функции (ЖУТКО МЕДЛЕННЫЕ из-за добавления пробелов в начало строк),
к тому же редко употребляемые, переименую и вынесу в библиотечный файл D2:PRINT, который Вам пришлю.
zen
Последний раз редактировалось ezswift; 19.12.2020 в 08:39.
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
Ну, что же ...
Deal Done!
Вот файлик:
Вложение 74268
Это не zip файл. Удалите лишнее расширение.
В библиотеку входят функции:
Инструкция:Код:(TABX *FORMATS* TABRET PRLIST PRDUMP PRPROP PRFORM)
Сначала запускаем LISP
Подгружаем (LOAD 'D:EDIT)
При необходимости распечаток подгружаем (LOAD 'D2:PRN)
ПРИ ЗАГРУЗКЕ ПЕРЕПИСЫВАЮТСЯ ВСТРОЕННЫЕ !!! :Код:(DEFINEQ TABX (LAMBDA (N) (PROG (COUNT) (SETQ COUNT N) LOOP (SETQ COUNT (SUB COUNT 1)) (COND ((> COUNT 0) (PRIN1 (QUOTE " ")) (GO LOOP))) (RETURN))) ) (DEFINEQ *FORMATS*(NIL) ) (DEFINEQ TABRET (LAMBDA (N) (PROG NIL (COND (TFLG (RETURN)) ((TERPRI) )) (SETQ TFLG T) (COND ((> N LINE-WIDTH) (TERPRI) (TABX (SUB N LINE-WIDTH))) ((TABX N) )))) ) (DEFINEQ PRLIST (LAMBDA (L) (PROGN (OPEN 7 8 (QUOTE P:)) (PR# 7) (PRINT L) (TERPRI) (PR# 0) (CLOSE 7))) ) (DEFINEQ PRDUMP (LAMBDA (PROPS) (PROGN (OPEN 7 8 (QUOTE P:)) (PR# 7) (MAPCAR PROPS (LAMBDA (X) (PROGN (TERPRI) (PRIN1 (QUOTE "(DEFINEQ ")) (PRIN1 X) (PPRINT (GETD X)) (PRINT RPAR)))) (PR# 0) (CLOSE 7))) ) (DEFINEQ PRPROP (LAMBDA (FNAM) (PROGN (OPEN 7 8 (QUOTE P:)) (PR# 7) (PRINT FNAM) (TERPRI) (PR# 0) (CLOSE 7))) ) (DEFINEQ PRFORM (LAMBDA (X) (PROGN (OPEN 7 8 (QUOTE P:)) (PR# 7) (PROGN (TERPRI) (PRIN1 (QUOTE "(DEFINEQ ")) (PRIN1 X) (PPRINT (GETD X)) (PRINT RPAR)) (PR# 0) (CLOSE 7))) )
Список *FORMATS*
Форма TABRET
Пользуемся так:
0. Для печати директории(PROPERTIES) файла (PRPROP D2:PRN)
1. Для печати Дампа файла (PRDUMP D2:PRN)
2. Для печати любого списка (PRLIST *FORMATS*)
3. Для печати любой формы (PRFORM 'PRLIST)
Примечание: К сожалению, название формы приходится квотировать, так как форма печати пользуется внутренними переменными Лиспа, а отследить несвязанные переменные можно лишь исследовав ВЕСЬ код EDIT.
С НОВЫМ ГОДОМ! ДОЛОЙ КОРОВАВИРУС!
zen
Последний раз редактировалось ezswift; 20.12.2020 в 06:54.
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
А вот и Новоггодние чудеса:
Вот этот файлик назывался PROLOG.LGO
Но в ЛОГО я - не кумекаю ...Код:TO . :TRUEORFALSE IF LISTP :TRUEORFALSE [PRINT :TRUEORFALSE STOP] IF :TRUEORFALSE = TRUE [PRINT "YES.] [PRINT "NO.] END TO DEFINIOWANA :OBIEKT :CECHA IF ( FIRST BF BF THING :CECHA ) = "AND [OP AND IS :OBIEKT FIRST BF THING :CECHA IS :OBIEKT FIRST BF BF BF THING :CECHA] IF ( FIRST BF BF THING :CECHA ) = "OR [OP OR IS :OBIEKT FIRST BF THING :CECHA IS :OBIEKT FIRST BF BF BF THING :CECHA] IF ( FIRST BF THING :CECHA ) = "NOT [OP NOT IS :OBIEKT FIRST BF BF THING :CECHA] END TO DEF :CECHA :LISTA MAKE :CECHA FPUT "@ :LISTA END TO ADD :OBIEKT :CECHA IF NOT NAMEP :CECHA [MAKE :CECHA []] IF NOT NAMEP "OBIEKTY [MAKE "OBIEKTY []] IF NOT MEMBERP :OBIEKT :OBIEKTY [MAKE "OBIEKTY LPUT :OBIEKT :OBIEKTY] IF MEMBERP :OBIEKT THING :CECHA [STOP] IF NOT ( FIRST THING :CECHA ) = "@ [MAKE :CECHA LPUT :OBIEKT THING :CECHA] END TO DO :N :LISTA IF :N > COUNT :LISTA [OP :LISTA] IF :N = COUNT :LISTA [OP :LISTA] OP DO :N BL :LISTA END TO OD :N :LISTA IF :N > COUNT :LISTA [OP []] IF :N = 1 [OP :LISTA] OP OD :N - 1 BF :LISTA END TO ELEMENT :N :LISTA IF :N > COUNT :LISTA [OP []] IF :N = 1 [OP FIRST :LISTA] OP ELEMENT :N - 1 BF :LISTA END TO WICH :CECHA IF OR NOT NAMEP "OBIEKTY NOT NAMEP :CECHA [OP []] OP W :CECHA :OBIEKTY END TO IS :OBIEKT :CECHA IF NOT NAMEP :CECHA [OP FALSE] IF ( FIRST THING :CECHA ) = "@ [OP DEFINIOWANA :OBIEKT :CECHA] IF MEMBERP :OBIEKT THING :CECHA [OP TRUE] [OP FALSE] END TO W :CECHA :OB IF EMPTYP :OB [OP []] IF IS FIRST :OB :CECHA [OP FPUT FIRST :OB W :CECHA BF :OB] [OP W :CECHA BF :OB] END MAKE "BRZYTKI [@ NOT LADNY] MAKE "LADNY [EWA MAGDA ANKA] MAKE "MADRY [SOBIECH SZYMON KAMIL EWA KUCIAP TIBOR] MAKE "BRZYDKI [@ NOT LADNY] MAKE "GLUPI [@ NOT MADRY KOBZA KOBZA] MAKE "GLUPIBRZYDKI [@ GLUPI AND BRZYDKI] MAKE "NIEPRZYDATNY [@ GLUPIBRZYDKI OR SZALONY] MAKE "PRZYDATNY [@ NOT NIEPRZYDATNY] MAKE "OBIEKTY [SOBIECH SZYMON KAMIL EWA MAGDA ANKA KUCIAP KOBZA TIBOR]
zen
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
Сэр, Вы правы!
Не приблизило!
zen
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)