User Tag List

Показано с 1 по 10 из 1128

Тема: ЭТЮДЫ

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Один товарищ написал волшебную процедуру, которая мягко убивает 128-ой бейсик, не прерывая выполнение самой бейсик-программы. Как известно, если бейсик запущен в 128-ом варианте, то он и работает медленнее, и буфер принтера занимает и т.д. С этой же процедурой - всё зашибись. Есть только один вопрос, реально ли её сделать покороче 45-ти байт?

    Скрытый текст

    Код:
    	OUTPUT	Usr0x02.bas
    
    	org	#5CCB
    
    ;; Three basic lines
    
    line1	dw	#0100,lenln1-4
    	db	REM,'Busy soft 07.04.2017',#0D
    
    line2	dw	#0200,lenln2-4
    	db	RAND,USR,VAL,'"',PEEK,'23627+256*',PEEK,'23628+3"',#0D
    
    line3	dw	#0300,lenln3-4
    	db	LOAD,'""',#0D
    
    ;; Basic variables
    
    varss	db	'S'+#80		;; Variable s$
    	dw	lencod		;; Length of whole variable content
    
    	OUTPUT	Usr0x02.cod
    
    ;; Content of variable s$
    
    start	res	4,(iy+#01)	;; Switch to 48 basic
    	ld	hl,(ramtop)	;; Recontruction of stack for 48 basic
    	ld	(hl),#3E	;; End-of-stack mark for basic RETURN
    	dec	hl		;; (for detect RETURN without GOSUB)
    	ld	sp,hl
    	ld	hl,main		;; Standart error handler
    	push	hl		;; (for displaying error messages)
    	ld	(errsp),sp
    
    	ld	hl,inican
    	ld	de,canmem	;; Base address for channel information
    	ld	bc,21
    	ld	(chans),de
    	ldir
    	ld	l,low stdata	;; Initial open channels
    	ld	e,low strms
    	ld	c,low 14
    	ldir
    
    	jp	runbas		;; Continue in 48 basic interpreter
    
    endend
    
    ;; Lengths
    
    lenln1	=	line2-line1
    lenln2	=	line3-line2
    lenln3	=	varss-line3
    lenbas	=	varss-line1
    lencod	=	endend-start
    lenall	=	endend-line1
    
    ;; Basic tokens
    
    REM	=	#EA
    RAND	=	#F9
    VAL	=	#B0
    USR	=	#C0
    PEEK	=	#BE
    LOAD	=	#EF
    
    ;; Used ROM addresses
    
    main	=	#1303
    inican	=	#15AF
    stdata	=	#15C6
    runbas	=	#1BF4
    
    ;; Used system variables
    
    strms	=	#5C10
    errsp	=	#5C3D
    chans	=	#5C4F
    ramtop	=	#5CB2
    canmem	=	#5CB6
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    [свернуть]
    Вложения Вложения
    ___________

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Этюды: как бы написать поизящнее.
    от AndTorp в разделе Программирование
    Ответов: 5
    Последнее: 17.03.2008, 00:43
  2. Ответов: 0
    Последнее: 18.08.2006, 22:40
  3. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •