User Tag List

Страница 27 из 47 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя
Показано с 261 по 270 из 466

Тема: Алан Кокс представил Unix-подобную ОС Fuzix, ядро которой потребляет около 40 Кб ОЗУ

  1. #261

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Бывает, если случайно записываемый символ попадёт в процедуру разбора строки из passwd. Запусти заново, иногда этот символ попадает в некритичную область, тогда выглядит так, как будто всё работает.

  2. #262

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    мда. глюков там ещё мульён. у меня тоже иногда не пускает..
    а ещё - не всегда читает корректно с флешки.
    писать пока толком не пишет никак

  3. #263

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А у меня вылазит хрень в аттрибутах, если во время скролла активно жать клаву. Пытаюсь побороть.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  4. #264

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alan Cox
    Even more interestingly, a 48K ZX spectrum plus period extras (given banking support being added to SDCC) would look something like this

    0x0000-0x3FFF kernel on a 48-64K banked interface 2 cartridge ROM
    0x4000-5AFF screen
    0x5B00-7D00 kernel data/bank helpers
    0x7D00-7FFF udata
    0x8000-FFFF user space

    which if my sums are right means that ignoring the "slightly" crap performance on microdrives you could (in theory) run a real v7 bourne shell on a Spectrum 48K with a microdrive for swap and one for the rootfs ;-)
    отсюда - https://plus.google.com/+AlanCoxLinux/posts/MtXvM1WUDPE
    Планы жесть, конечно
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  5. #265

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ребята извращаются)
    48к со свапом... ААААААААААААААААААААААААА ААААААААААААААААА!!!!!

  6. #266

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Муторное это дело: либы пилить. Муторно потом и тестить, а надо.
    Потому предлагаю пересобирать FUSIX по мере поступления переписанных функций - так можно оперативней выявлять ошибки (а они будут).
    Eltaron, SfS, не поленитесь, парни!

    Вот fputc, уменьшил на 114 байт (195 против 309).
    Код:
    /* z80 rewriting by Amixgris/RT 19-11-2014, Russia */
    
    #include "stdio-l.h"
    
    int fputc(int ch, FILE * fp) __naked
    { ch, fp;
    __asm
    	pop af
    	pop de	; ch
    	pop bc	; fp
    
    	push bc
    	push de
    	push af
    	ld (2$),de	; save ch
    	
    	ld  hl,#0x000c ; fp->mode
    	call 3$
    	ld  (1$),hl
    	and a,#0x40 ; & __MODE_READING ???
    	jr	z,00102$
    
    	push bc
    	push bc
    	call	_fflush
    	pop  af
    	pop	 bc	
    
    	ld  a,h
    	or  a,l
    	jr	z,00102$
    ;fputc.c:10: return EOF;
    00152$:
    	ld	hl,#0xFFFF
    	ret
    00102$:	
    	ld  a,h
    	and a,#0x03
    	jr	NZ,00152$	; lower byte <> 0 
    	ld	a,l
    	and	a,#0x020
    	jr  NZ,00152$
    00105$:
    	ex	de,hl
    	ld  hl,#0x0008	; deflate = bufend
    	call 3$
    	ex	de,hl
    	ld	h,b			; deflate = bufpos
    	ld  l,c
    	call 3$	
    	or  a,a
    	sbc hl,de
    	jr  c,00107$
    	push	bc
    	push	bc
    	call	_fflush
    	pop	af
    	pop	bc
    	ld	a,h
    	or	a,l
    	jr	NZ,00152$	
    00107$:
    ;fputc.c:18: *(fp->bufpos++) = ch;
    	ld	h,b			; deflate = bufpos
    	ld  l,c
    	call 3$
    	ld a,(2$)
    	ld  (hl),a		; write out ch
    	inc hl
    	ld  d,b
    	ld  e,c
    	ex  de,hl
    	ld  (hl),e
    	inc hl
    	ld  (hl),d
    ;fputc.c:19: fp->mode |= __MODE_WRITING;
    	ld  hl,#1$
    	set 7,(hl)
    ;fputc.c:22: if (((ch == '\n' && (v & _IOLBF)) || (v & _IONBF)) && fflush(fp))
    	inc hl
    	inc hl
    	ld  a,#0x0a
    	cp  (hl)
    	jr	NZ,00112$
    	inc hl
    	xor a,a
    	cp  (hl)
    	jr	NZ,00112$	
    	dec hl
    	dec hl
    	bit 0,(hl)
    	jr	NZ,00113$
    00112$:
    	bit	1,(hl)
    	jr	Z,00110$
    00113$:
    	push	bc
    	push	bc
    	call	_fflush
    	pop	af
    	pop	bc
    	ld	a,h
    	or	a,l
    	jr	NZ,00152$ ; exit eof
    00110$:	
    ;fputc.c:26: fp->bufwrite = fp->bufstart;	/* Nope */
    	ld	hl,#0x0004
    	add	hl,bc
    	ex	de,hl
    	
    ;fputc.c:25: if (v & (__MODE_IOTRAN | _IOLBF | _IONBF))
    	ld	a,(1$)
    	and	a, #0x03
    	jr	Z,00115$
    	ld  hl,#0x0006
    	jr	00116$
    00115$:
    ;fputc.c:28: fp->bufwrite = fp->bufend;	/* Yup */
    	ld  hl,#0x0008
    00116$:
    ;fputc.c:30: return (unsigned char) ch;
    	add	hl, bc
    	ldi
    	ldi
    	ld	hl,(2$)
    	ld	h,#0x00
    	ret
    1$:	.dw	0
    2$:	.dw	0
    
    ; in: hl = struct member deflate
    ;     de = struct base 
    ; out: hl = member content 
    3$:	add hl,bc
    	ld  a,(hl)
    	inc hl
    	ld  h,(hl)
    	ld  l,a
    	ret
    __endasm;
    }
    Вложения Вложения
    • Тип файла: zip fputc.zip (1,012 байт, Просмотров: 81)
    Последний раз редактировалось Sergey; 29.11.2014 в 10:35.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  7. #267

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Муторное это дело: либы пилить. Муторно потом и тестить, а надо.
    Потому предлагаю пересобирать FUSIX по мере поступления переписанных функций - так можно оперативней выявлять ошибки (а они будут).
    Eltaron, SfS, не поленитесь, парни!
    Спасибо. Но я через пару дней улетаю в командировку на неделю-полторы. Так что выпаду на это время. Сейчас весь в погдотовке к командироке.

  8. #268

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Но я через пару дней улетаю в командировку на неделю-полторы. Так что выпаду на это время. Сейчас весь в погдотовке к командироке.
    Печаль
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  9. #269

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Печаль
    Можешь зайти сюда.

    https://github.com/salextpuru/FUZIX

    Склонировать всё. И сам добавить что надо. Пропатчены либы для того чтобы с long-long работать и SDCC-3.4.0

    Чё печалиться, когда можно просто самому попробовать?

    ---------- Post added at 21:23 ---------- Previous post was at 19:44 ----------

    Eltaron, а утебя чтение-запись с диска не глючат? Не знаю - то ли драйвер кривоват то ли что.

    Загружается шелл через раз. Иногда почемуто пишет "login incorrect".

    или это может драйвер tty?

  10. #270

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Загружается шелл через раз. Иногда почемуто пишет "login incorrect".
    Кажется я нашёл, почему. В библиотеке crt.s весьма странно запускает процедуру main. Нафига подменять адрес возврата, да ещё выше аргументов - непонятно. Я сделал стандартно:
    Код:
    		pop hl			; environ
    		ld (_environ), hl
    		call _main
    		jp _exit
    Тут кстати видно, что из стека достаётся адрес переменных среды, однако в syscall_exec.c для нового процесса в стек кладётся только argc,argv. Я добавил ещё и их:
    Код:
    	// Shove argc and the address of argv just below envp
    	uputw((uint16_t) nargv, nenvp - 1);
    	uputw((uint16_t) argc, nenvp - 2);
    	uputw((uint16_t) nenvp, nenvp - 3);
    
    	// Set stack pointer for the program
    	udata.u_isp = nenvp - 3;
    После этих изменений логин у меня работает как и задумывалось.

    ---------- Post added at 20:41 ---------- Previous post was at 20:38 ----------

    Вот только рожица всё ещё появляется А если не появляется - всё опять рушится...

    ---------- Post added at 21:13 ---------- Previous post was at 20:41 ----------

    Можно и не менять syscall_exec.c, только адрес переменных вот так считать:
    Код:
    		ld hl, #4		; environ
    		add hl,sp
    		ld (_environ), hl
    		call _main
    		jp _exit

Страница 27 из 47 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Куплю БК 0010 или подобную машинку в Украине
    от LeBohdan в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 06.07.2008, 23:29
  2. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  3. Ответов: 16
    Последнее: 02.08.2005, 12:20
  4. Ответов: 10
    Последнее: 18.02.2005, 17:45

Ваши права

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