- 13
- 53 040
David Smith
เข้าร่วมเมื่อ 6 ก.ย. 2015
dacvs.neocities.org/
SmithForth workings
Forth 2012: forth-standard.org/standard/words
Intel manual: www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
x86-64 instruction encoding: wiki.osdev.org/X86-64_Instruction_Encoding
32-bit handmade Linux x86 executables: th-cam.com/play/PLZCIHSjpQ12woLj0sjsnqDH8yVuXwTy3p.html
SmithForth source code: dacvs.neocities.org/SF/
Online assembler and disassembler: defuse.ca/online-x86-assembler.htm
Bootstrapping a simple compiler from nothing: web.archive.org/web/20061108010907/www.rano.org/bcompiler.html
Brad Rodriguez, esp. Moving Forth parts 1 and 3: www.bradrodriguez.com/papers/
Charles Curley on a subroutine-threaded Forth: forth.org/fd/curley2.html
eForth of Bill Muench: web.archive.org/web/20080829134402/www.baymoon.com/~bimu/forth/eforth/e4.src/EFORTH.SHTML
C. H. Ting on F83: forth.org/OffeteStore/1003_InsideF83.pdf
C. H. Ting on figForth: www.forth.org/OffeteStore/1010_SystemsGuideToFigForth.pdf
sectorforth: github.com/cesarblum/sectorforth
JonesForth 1 of 2: github.com/nornagon/jonesforth/blob/master/jonesforth.S
JonesForth 2 of 2: github.com/nornagon/jonesforth/blob/master/jonesforth.f
FORTH Encyclopedia of Derick & Baker: ia601007.us.archive.org/24/items/MitchDerickLindaBakerForthEncyclopediaTheCompleteForthProgrammersManualMountainViewPress1982/Mitch%20Derick%2C%20Linda%20Baker-Forth%20Encyclopedia_%20The%20Complete%20Forth%20Programmers%20Manual%20%20-Mountain%20View%20Press%20%281982%29_text.pdf
Intel manual: www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
x86-64 instruction encoding: wiki.osdev.org/X86-64_Instruction_Encoding
32-bit handmade Linux x86 executables: th-cam.com/play/PLZCIHSjpQ12woLj0sjsnqDH8yVuXwTy3p.html
SmithForth source code: dacvs.neocities.org/SF/
Online assembler and disassembler: defuse.ca/online-x86-assembler.htm
Bootstrapping a simple compiler from nothing: web.archive.org/web/20061108010907/www.rano.org/bcompiler.html
Brad Rodriguez, esp. Moving Forth parts 1 and 3: www.bradrodriguez.com/papers/
Charles Curley on a subroutine-threaded Forth: forth.org/fd/curley2.html
eForth of Bill Muench: web.archive.org/web/20080829134402/www.baymoon.com/~bimu/forth/eforth/e4.src/EFORTH.SHTML
C. H. Ting on F83: forth.org/OffeteStore/1003_InsideF83.pdf
C. H. Ting on figForth: www.forth.org/OffeteStore/1010_SystemsGuideToFigForth.pdf
sectorforth: github.com/cesarblum/sectorforth
JonesForth 1 of 2: github.com/nornagon/jonesforth/blob/master/jonesforth.S
JonesForth 2 of 2: github.com/nornagon/jonesforth/blob/master/jonesforth.f
FORTH Encyclopedia of Derick & Baker: ia601007.us.archive.org/24/items/MitchDerickLindaBakerForthEncyclopediaTheCompleteForthProgrammersManualMountainViewPress1982/Mitch%20Derick%2C%20Linda%20Baker-Forth%20Encyclopedia_%20The%20Complete%20Forth%20Programmers%20Manual%20%20-Mountain%20View%20Press%20%281982%29_text.pdf
มุมมอง: 2 693
วีดีโอ
8 Handmade Linux x86 executables: Postfix calculator
มุมมอง 7063 ปีที่แล้ว
Thank you for watching and commenting! Files: dacvs.neocities.org/handmade.html Series Handmade Linux x86 executables: th-cam.com/play/PLZCIHSjpQ12woLj0sjsnqDH8yVuXwTy3p.html My web site: dacvs.neocities.org/ Intel manual: software.intel.com/content/www/us/en/develop/articles/intel-sdm.html System V ABI: www.sco.com/developers/devspecs/gabi41.pdf System V ABI supplement 386: www.sco.com/develop...
7 Handmade Linux x86 executables: DMQ compiler
มุมมอง 9393 ปีที่แล้ว
Thank you for watching and commenting! Video 5: th-cam.com/video/TxEVl9Z69Ic/w-d-xo.html Files: dacvs.neocities.org/handmade.html
6 Handmade Linux x86 executables: Stack and SIB
มุมมอง 7793 ปีที่แล้ว
Thank you for watching and commenting! dacvs.neocities.org/6A.html dacvs.neocities.org/6B.html dacvs.neocities.org/6C.html dacvs.neocities.org/6D.html dacvs.neocities.org/6E.html dacvs.neocities.org/6F.html dacvs.neocities.org/6mode.html
5 Handmade Linux x86 executables: Functions and strings
มุมมอง 9953 ปีที่แล้ว
Thank you for watching and commenting! dacvs.neocities.org/5strA.html dacvs.neocities.org/5strB.html dacvs.neocities.org/5strC.html
4 Handmade Linux x86 executables: ModR/M and numeric output
มุมมอง 2K3 ปีที่แล้ว
Thank you for watching and commenting! dacvs.neocities.org/4binQ.html dacvs.neocities.org/4binA.html dacvs.neocities.org/4text.html dacvs.neocities.org/4dump.html
3 Handmade Linux x86 executables: Loops and conditionals
มุมมอง 2.8K3 ปีที่แล้ว
File 3loop.dmp: dacvs.neocities.org/3loop.html This video series: th-cam.com/play/PLZCIHSjpQ12woLj0sjsnqDH8yVuXwTy3p.html The Intel manual: software.intel.com/content/www/us/en/develop/articles/intel-sdm.html
2 Handmade Linux x86 executables: Hello, world
มุมมอง 7K3 ปีที่แล้ว
File 2helo.dmp: dacvs.neocities.org/2helo.html Last video: th-cam.com/video/XH6jDiKxod8/w-d-xo.html The Intel book: software.intel.com/content/www/us/en/develop/articles/intel-sdm.html Especially: Vol 2 Sec 3.1: Interpreting the instruction reference pages Vol 2 Sec 3.2: INT Vol 2 Sec 4.3: MOV Vol 2 Appendix A: Opcode Map Linux x86 system calls: man 2 syscalls man 2 exit man 2 read man 2 write ...
1 Handmade Linux x86 executables: ELF header
มุมมอง 30K3 ปีที่แล้ว
File 1exit.dmp: dacvs.neocities.org/1exit.html Make script: dacvs.neocities.org/make.html Wikipedia on ELF: en.wikipedia.org/wiki/Executable_and_Linkable_Format System V ABI: www.sco.com/developers/devspecs/gabi41.pdf System V ABI supplement 386: www.sco.com/developers/devspecs/abi386-4.pdf Registers for syscall parameters are listed here: en.wikibooks.org/wiki/X86_Assembly/Interfacing_with_Lin...
Chess puzzle solver in Forth
มุมมอง 7255 ปีที่แล้ว
0:15 Puzzle 1 solved 1:01 Puzzle 2 solved 2:00 Puzzle 3 solved 2:53 Source code tour 7:17 Variable names 15:38 Line count 16:32 Not an engine My source code: dacvs.neocities.org/chessp.txt Gforth manual (word index): www.complang.tuwien.ac.at/forth/gforth/Docs-html/Word-Index.html The Forth standard: forth-standard.org/ Spreadsheet program (and glyph editor): th-cam.com/video/if1Psu6RJbs/w-d-xo...
Another Sudoku solver in APL and one in Forth
มุมมอง 8835 ปีที่แล้ว
Simple backtracking Sudoku solvers in APL and Forth. DyalogLtd's nine-line Sudoku solver: th-cam.com/video/DmT80OseAGs/w-d-xo.html Dyalog's notes on breadth-first search in Sudoku: dfns.dyalog.com/n_sudoku_bfs.htm Haskell wiki on Sudoku: wiki.haskell.org/Sudoku Another interesting Sudoku page: norvig.com/sudoku.html Gforth manual (word index): www.complang.tuwien.ac.at/forth/gforth/Docs-html/Wo...
Forth spreadsheets
มุมมอง 3K5 ปีที่แล้ว
I wrote a spreadsheet program in Forth. Cell scripts are written in Forth, too. CONTENTS: USING MY PROGRAM 3:59 Foodstuffs example 13:34 Rainbow example 18:23 Binomial coefficients example 27:56 Square root example 34:25 Fizzbuzz example 40:31 MODULE OVERVIEW 43:46 Matrix module 48:05 Xlib module 54:39 Database module 56:05 Graph database module LOOKING BACK 59:35 Missing features 1:03:07 My tr...
Forth projects
มุมมอง 5865 ปีที่แล้ว
Volume estimation and spreadsheets My web page: dacvs.neocities.org/
i went insane trying to make a 64 bit version of this. 10/10 would do again
I got the lottery
if you want to save some bytes, instead of: mov eax, 00000000h mov ebx, 00000001h int 80 you could use: mov eax, 00000000h mov bl, 01h int 80 wich just saves some bytes of immediate load operands, since return codes are modulo 255 anyway.
First video ever watched on 0.75x😂, thanks for making me humble
nice
i have been wanting to do something for a while, first time i have found what i was looking for since most times i search for it i just get assembly stuff
"But the programming experience is a little rough" 😅 Quite the understatement!
Randomly found this amazing channel on TH-cam. Thank you for your content. Keep uploading...
Brilliant. You score 8% upvote, which is high, so I'm not the only one.
Awesome project. Thank you for sharing and taking the time to document this video.
Man, what a tremendous amount of studying and investigating you have done. My God...
this is awesome, thanks for sharing and explaining
I watched all the playlist. This is real programming. Using only vim and xxd he creates executables and then his own tools. The best programming videos I have seen for years
Who else is watching from 2123 trying to re-build civilization after the apocalypse?
Is the code available somewhere?
I don't believe I posted the source code for this project, but if I may make a loosely related recommendation, I learned some tricks from Brad Nelson's presentations to the Silicon Valley Forth Interest Group. He has a lot of source code here: github.com/flagxor/.
dear lawd in heaven what yt algo is we on now lmao
In ciforth (lina/wina/xina) I use a slightly different approach. The Forth iscreated by an assembler (fasm/gas). I compile a program ( lina -c hello.frt) to an runnable binary that execute a word such as HELLO. That is an application of SAVE-SYSTEM, and I merely have to patch the header of the the original lina. So I avoid the generation of an elf header, leaving it to tools that knows how to do it. I don't do an analysis of all the fields, merely the fields I need. Fasm is ideal; contrary to gcc tools it doesn't generate a plethora of sections that may help dbg. The -c options takes merely 2 screens in the library, inclusive SAVE-SYSTEM.
Thank you for the FASM recommendation. That's new to me. In order to patch an existing ELF header, you have to know which fields to change. It is easy to imagine that I fail to change some field properly; and then something goes wrong when my data space grows over 1 million bytes. Or perhaps I never encounter such a problem, but every time a mysterious bug arises, I wonder whether I have written a bad ELF header. It is freeing to see a Linux executable defined in terms of the sequence of bytes of the file rather than in terms of tools people often use. I never get a good answer when I ask the tools, "what exactly are you doing?"
May I plug ciforth? This is a simpler Forth that runs on Linux (x86, ARM, riscv) and Windows. This is sufficient to write non trivial programs, and the core words fit on one screen (300 words).Search for tingeltangel on youtube for a control program that plays muscial instruments.
Of course! I would be interested to see more video content from you, especially about how ciforth works. I will also plug SmithForth, my attempt to understand Forth. th-cam.com/play/PLZCIHSjpQ12wX5m6q4dQNQcmmjq9oF3or.html
Impressive. I expect to learn finally APL by carefully studying this program. Also the diction, the sound and the flow is excellent. I'm a Forth expert/implementor. Your Forth code is excellent and the explanation is too.
hmm, using me as queer rape bait. thanks world
This is perfect! No need for assembly! Write the machine code directly!
awesome
Old Man Sends ducks inside.
You're a wizard, Harry
Nice that you builtin a little challenge to fix up the spelling :D I did it :)
Ok but gcc hello.c fails immediately with studio.h: No such file or directory.
Thank you boys
Holy Crap. You made this so easy to understand and straight forward. My youtube algorithm changed, and is showing me 1 new channel per 8 feeds and I try to visit the new ones as much as possible and got lucky again today. Yay World~!
i hope u know how cool that is lmao i searched about two years ago how to do that and found nothing so i didnt do anything in that direction, but now i am able to do some asm testing, thx!
which GUI toolkit?
No GUI toolkit. We call Xlib directly. Please see the Xlib module at 48:05 of this video.
@@davidsmith7791 excellent. Thank you
I want this where can I get it
Nice extension David! Very easy to understand. Thanks for sharing. Looking forward to future vids.
It's been a hot minute. Glad to see you back :)
new video, brain happy
fascinating
Still waiting for the new video
Forth video coming soon
th-cam.com/video/9MSJGzYELBA/w-d-xo.html
All I need to know, is the fact you read the technical specifications, and provided the links for them. That is enough to give a link a sub.
Real life programs use stack and heap to hold information they don't keep it in the code like this. Do you plan on explaining details about dealing with stuck, heap as well?
Yes, we discuss the stack in video 6 of the series: th-cam.com/video/rgvHkOjUhIY/w-d-xo.html We do not deal with the heap (dynamic memory allocation) in this video series, but in another project I use Linux's system call mmap in a hand-written x86-64 program. Search for "mmap" or "Mmap" in files dacvs1.dmp or dacvs8.dmp: github.com/PlummersSoftwareLLC/Primes/tree/drag-race/PrimeAmd64/solution_1
@@davidsmith7791 Thank you, great series by the way!
I don't fucking believe it that this is a whole series! I'm planning on making my own compiler that will include an assemble and linker and this is godsend! Thanks you a lot for your effort!!
talking about compression...you compressed a lot of information in 11 minutes of video
Great series. Please do more. You can continue with dmr, dms, dmt, … (each compiler built with the precedent one) until you make a simple x86 assembler.
Thanks! Actually, we can go straight from DMQ to Forth. But it may be a while before I have time to show it.
Great job!
bro that's amazing. thank you for this video series.
great david
awesome stuff, keep it coming. this type of content will definitely catch on eventually. you, Ben Eater and Jacob Sorber are definitely my top 3
Very well done!
awesome!
Stellar academic exercise! 🤘
The series is really helpful, although as a newbie a lot of concepts i.e. the low level were pretty new to me, but it was fun learning! Are you planning for next upcoming videos in the series itself? Thanks for the excellent efforts David !
Thank you for the feedback! Yes, two more videos are coming soon. We will create a little language to solve the problem of keeping byte counts and computing jump lengths.
🥰