David Smith
David Smith
  • 13
  • 53 040
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
มุมมอง: 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/

ความคิดเห็น

  • @Borodinskyy
    @Borodinskyy 22 วันที่ผ่านมา

    i went insane trying to make a 64 bit version of this. 10/10 would do again

  • @minma02262
    @minma02262 5 หลายเดือนก่อน

    I got the lottery

  • @jolex_nerd8132
    @jolex_nerd8132 7 หลายเดือนก่อน

    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.

  • @hasanrasulov3502
    @hasanrasulov3502 8 หลายเดือนก่อน

    First video ever watched on 0.75x😂, thanks for making me humble

  • @neilmeich
    @neilmeich 10 หลายเดือนก่อน

    nice

  • @Borodinskyy
    @Borodinskyy 10 หลายเดือนก่อน

    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

  • @Iogoslavia
    @Iogoslavia 10 หลายเดือนก่อน

    "But the programming experience is a little rough" 😅 Quite the understatement!

  • @abbasramish
    @abbasramish 10 หลายเดือนก่อน

    Randomly found this amazing channel on TH-cam. Thank you for your content. Keep uploading...

  • @albertvanderhorst4160
    @albertvanderhorst4160 10 หลายเดือนก่อน

    Brilliant. You score 8% upvote, which is high, so I'm not the only one.

  • @first-thoughtgiver-of-will2456
    @first-thoughtgiver-of-will2456 11 หลายเดือนก่อน

    Awesome project. Thank you for sharing and taking the time to document this video.

  • @dantesalighieri
    @dantesalighieri 11 หลายเดือนก่อน

    Man, what a tremendous amount of studying and investigating you have done. My God...

  • @parlortricks8301
    @parlortricks8301 ปีที่แล้ว

    this is awesome, thanks for sharing and explaining

  • @andreasproteus1465
    @andreasproteus1465 ปีที่แล้ว

    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

  • @StefanNoack
    @StefanNoack ปีที่แล้ว

    Who else is watching from 2123 trying to re-build civilization after the apocalypse?

  • @StefanNoack
    @StefanNoack ปีที่แล้ว

    Is the code available somewhere?

    • @davidsmith7791
      @davidsmith7791 ปีที่แล้ว

      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/.

  • @chadwickemcphearson
    @chadwickemcphearson ปีที่แล้ว

    dear lawd in heaven what yt algo is we on now lmao

  • @albertvanderhorst4160
    @albertvanderhorst4160 ปีที่แล้ว

    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.

    • @davidsmith7791
      @davidsmith7791 ปีที่แล้ว

      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?"

  • @albertvanderhorst4160
    @albertvanderhorst4160 ปีที่แล้ว

    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.

    • @davidsmith7791
      @davidsmith7791 ปีที่แล้ว

      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

  • @albertvanderhorst4160
    @albertvanderhorst4160 ปีที่แล้ว

    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.

  • @Stopinvadingmyhardware
    @Stopinvadingmyhardware ปีที่แล้ว

    hmm, using me as queer rape bait. thanks world

  • @CZghost
    @CZghost ปีที่แล้ว

    This is perfect! No need for assembly! Write the machine code directly!

  • @AhmedEssam_eramax
    @AhmedEssam_eramax ปีที่แล้ว

    awesome

  • @RogerBarraud
    @RogerBarraud ปีที่แล้ว

    Old Man Sends ducks inside.

  • @jatu4180
    @jatu4180 ปีที่แล้ว

    You're a wizard, Harry

  • @KanjiasDev
    @KanjiasDev ปีที่แล้ว

    Nice that you builtin a little challenge to fix up the spelling :D I did it :)

  • @jacquesquipere
    @jacquesquipere 2 ปีที่แล้ว

    Ok but gcc hello.c fails immediately with studio.h: No such file or directory.

  • @Jennn
    @Jennn 2 ปีที่แล้ว

    Thank you boys

  • @Jennn
    @Jennn 2 ปีที่แล้ว

    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~!

  • @codecraftercc
    @codecraftercc 2 ปีที่แล้ว

    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!

  • @seanscon
    @seanscon 2 ปีที่แล้ว

    which GUI toolkit?

    • @davidsmith7791
      @davidsmith7791 2 ปีที่แล้ว

      No GUI toolkit. We call Xlib directly. Please see the Xlib module at 48:05 of this video.

    • @seanscon
      @seanscon 2 ปีที่แล้ว

      @@davidsmith7791 excellent. Thank you

  • @ChrisJones-rd4wb
    @ChrisJones-rd4wb 2 ปีที่แล้ว

    I want this where can I get it

  • @davewhelan9977
    @davewhelan9977 2 ปีที่แล้ว

    Nice extension David! Very easy to understand. Thanks for sharing. Looking forward to future vids.

  • @SimGunther
    @SimGunther 2 ปีที่แล้ว

    It's been a hot minute. Glad to see you back :)

  • @ayoodawg1104
    @ayoodawg1104 2 ปีที่แล้ว

    new video, brain happy

  • @leonhrad
    @leonhrad 2 ปีที่แล้ว

    fascinating

  • @ayoodawg1104
    @ayoodawg1104 2 ปีที่แล้ว

    Still waiting for the new video

    • @davidsmith7791
      @davidsmith7791 2 ปีที่แล้ว

      Forth video coming soon

    • @davidsmith7791
      @davidsmith7791 2 ปีที่แล้ว

      th-cam.com/video/9MSJGzYELBA/w-d-xo.html

  • @AnimeLover-su7jh
    @AnimeLover-su7jh 2 ปีที่แล้ว

    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.

  • @smrtfasizmu6161
    @smrtfasizmu6161 2 ปีที่แล้ว

    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?

    • @davidsmith7791
      @davidsmith7791 2 ปีที่แล้ว

      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

    • @smrtfasizmu6161
      @smrtfasizmu6161 2 ปีที่แล้ว

      @@davidsmith7791 Thank you, great series by the way!

  • @godnyx117
    @godnyx117 2 ปีที่แล้ว

    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!!

  • @l2ubio
    @l2ubio 3 ปีที่แล้ว

    talking about compression...you compressed a lot of information in 11 minutes of video

  • @ayoodawg1104
    @ayoodawg1104 3 ปีที่แล้ว

    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.

    • @davidsmith7791
      @davidsmith7791 3 ปีที่แล้ว

      Thanks! Actually, we can go straight from DMQ to Forth. But it may be a while before I have time to show it.

  • @Filaxsan
    @Filaxsan 3 ปีที่แล้ว

    Great job!

  • @ruliowtf
    @ruliowtf 3 ปีที่แล้ว

    bro that's amazing. thank you for this video series.

  • @petedavies3208
    @petedavies3208 3 ปีที่แล้ว

    great david

  • @dbrunecz78
    @dbrunecz78 3 ปีที่แล้ว

    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

  • @Dude29
    @Dude29 3 ปีที่แล้ว

    Very well done!

  • @ruliowtf
    @ruliowtf 3 ปีที่แล้ว

    awesome!

  • @SimGunther
    @SimGunther 3 ปีที่แล้ว

    Stellar academic exercise! 🤘

  • @subhajeetroot8474
    @subhajeetroot8474 3 ปีที่แล้ว

    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 !

    • @davidsmith7791
      @davidsmith7791 3 ปีที่แล้ว

      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.

  • @mikolajkozakiewicz1070
    @mikolajkozakiewicz1070 3 ปีที่แล้ว

    🥰