Replies: 22 comments 32 replies
-
Yes, your initial post showed lots of unimplemented curses functions. You'll want to check that Lynx/Bobcat doesn't need to use the "window" functions in curses, which actually implement overlapping windows, etc - this feature is not implemented at all and would take some work. Most curses programs don't need the "internal windowing" features of curses and just use the cursor positioning etc stuff. If you need to add that, for instance for winsertln, just add the ANSI console sequence for that function. (None of this will work if the insert line, clear window, etc need to operate within a curses "window" rather than full screen. It would be worth looking into before you spend too much time on the port.
As indicated in #2253, these system calls are missing; I will add them.
Looks like you'll need to use large model. If you already are, then you've got some major porting issues, and you'll have to programmatically determine which global/static data structures should be placed in a separate segment. Read up on OWC |
Beta Was this translation helpful? Give feedback.
-
|
I'm already in the large mode. Bobcat uses window just for the forms, which I can kind of hack around. |
Beta Was this translation helpful? Give feedback.
-
|
Already manage to reach here: Which manual are you using for getting references like the "-ztN"? Btw, which codepage does ELKS use? by changing the buffer[] allocations to dynamic memory allocations would reduce the stack usage, right? The BSS is uninitialized data, correct? ps: about curses - I ifdef'd many window functions in HTForms just to compile the code first, as a way to check the feasibility of the project first, before diving in the (not so big) use of curses by bobcat. |
Beta Was this translation helpful? Give feedback.
-
|
-Wc,-zt512 made the deal! Yay! now the work continues to clean up all the DOS cruft and see if it can connect over http. |
Beta Was this translation helpful? Give feedback.
-
|
It tried to open a website, but I think it crashed ELKS somehow. I started seeing this: After the first time I run bobcat, second time it does not load anymore (and I see in console the error above). |
Beta Was this translation helpful? Give feedback.
-
|
Also this error after first run (in the second run): |
Beta Was this translation helpful? Give feedback.
-
ELKS doesn't use any codepage, but depends on the code page of the hardware character ROM, which on IBM PC is usually 437 in US. It may be slightly different with some Euro PCs. The console drivers never convert the byte stream nor decode UTF-8, etc.
BSS data is any uninitialized global or static declaration. When using -zt512, any .data or .bss declaration larger than 512 will be placed in a separate data segment, that is, a reload of the DS register will be generated in order to access it. Thus there are far pointers being used throughout the program. Otherwise, all data access would use the initial DS value, get it? The stack is always referenced from the "default" data segment using SS, and initially DS==SS. If buffer[] allocations are from the stack, you'll definitely need to increase stack size, or stack overflow will happen, possibly producing your errors above. Dynamic allocation would also help; you should look at the sizes of these allocations to understand what to do. Our _fmalloc implementation is still single-heap, so the program is still limited to a max 64k unless you bring in mem.c etc like we did with 8086 toolchain. |
Beta Was this translation helpful? Give feedback.
-
|
But even without network yet, I could render a .html from local, after changing some buffers (but just once, second time I get the "fmalloc assert fail: testbusy(next(p)) (line 217)"): So far, I thought it would not be possible at all. Now I have even a small bit of hope things might work. There is still some cruft to cleanup. |
Beta Was this translation helpful? Give feedback.
-
|
With a little more work on the network side, I think the ELKS port will be ready, but it does not mean it will run (because of size constraints). I'm testing on linux right now, and the tui curses is doing a good job - I can even type in a search box of frogfind.com and go to search, and it works (of course the form filling is visually broken and characters appear in the wrong place, but it actually works correctly). |
Beta Was this translation helpful? Give feedback.
-
|
I made release "pre-alpha" of this ancient Lynx for Elks (reading the source code, it is really a mashup of lynx ~2.4 with 2.5 and 2.6, with the libwww by Tim Berners-Lee et al.): |
Beta Was this translation helpful? Give feedback.
-
|
For local html it is running ok. For http with ktcp running... ktcp crashes. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Pretty cool! :)
Make sure to increase the heap for ktcp in ktcp/Makefile to 0xffff, even though it looks like the data segment is already pretty high at 57k. I would also suggest using |
Beta Was this translation helpful? Give feedback.
-
|
If memory is not enough try: https://github.com/ghaerr/elks/wiki/Increase-available-memory You can use all the video memory in this case for RAM. But it is tricky. You need to know what is loaded where for each computer and emulator to be sure it won't crash. So for UMB you need to use https://winworldpc.com/product/microsoft-diagnostic/5x and explore in DOS the memory between 640 and 1MB. Then write this down and configure it in ELKS UMB configuration in /bootopts. |
Beta Was this translation helpful? Give feedback.
-
|
Good news - ktcp is not crashing! bobcat is locking in some call, I'll investigate. |
Beta Was this translation helpful? Give feedback.
-
|
And, after copying the urlget code, I can browse the nineties web! (at least once, then second time system freezes, which is reproducible also with urlget): |
Beta Was this translation helpful? Give feedback.
-
|
In order to have more free ram in ELKS, to run bobcat I enable network, task=12 buf=8 cache=4 file=12 inode=16 heap=24000 |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
@toncho11, I tested with apache and nginx, stock configuration, all good. |
Beta Was this translation helpful? Give feedback.
-
|
Does it work now after: #2267 ? |
Beta Was this translation helpful? Give feedback.
-
|
No more locks on ELKS. Now I need to fix the curses. |
Beta Was this translation helpful? Give feedback.
-
|
I can confirm DNS is working fine with bobcat on ELKS! I made a kernel build removing some drivers I don't use, and now I can run bobcat without changing kernel parameters in /bootopts. |
Beta Was this translation helpful? Give feedback.








Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I started trying to compile bobcat (a lynx fork) for ELKS. While I'll have some work to remove all unneeded stuff to fit in the executable size constraints, here is the current status of trying to link all the mess (I'm still using a placeholder curses which I borrowed from tui):
Lynx is massive. I did not know that.
I opened an issue to discuss some missing functions here: #2253
This is my port repo: https://github.com/rafael2k/bobcat/
Beta Was this translation helpful? Give feedback.
All reactions