flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
Teehee
Do you get it? For example, the first software done when there is no another one, how it was compiled (assembled)?
_________________ Sorry if bad english. |
|||
![]() |
|
Coddy41
Eniac was the fist PC if I remember it right. http://en.wikipedia.org/wiki/ENIAC
It used Binary coded decimal "Excess 3" Put on punch cards originaly I think.. EDIT: If you REALLY wanted to you could still code with out an assembler/compiler but you need to know the opcodes in binnary/hex... I think MikeOS has a program that lets you type in opcodes and press enter to launch them... you could also make your own VERY easaly or just use a hex editor... you could even use the Fasm db sequence Code: db 0x66 0xB9 0xFF ; mov ecx, 0xFF you can look here for more |
|||
![]() |
|
Tyler
http://en.wikipedia.org/wiki/Ada_Lovelace#First_computer_program The first "programmer" not only programmed w/o an assembler, but w/o a computer also(she made a theoretical algo for a theoretical "computer").
But yeah, if you happen to be a freak of nature that can remember opcodes and how to encode(specify types/sizes of operands and operands themselves) them, you could write a program with a hex editor. If you really want to try it, it just happens that we have one of those freaks of nature on this forum, Mazegen, his reference is great. It can be viewed in alphabetic order by mnemonic or numerically by opcode. Coddy41 wrote:
I've always padded my boot sectors with nops(0x90) using that method(idk why I don't just use "nop"). Other than "nop," I don't know any opcodes. No need to, I got Fasm ![]() |
|||
![]() |
|
Teehee
very good, thank you guys.
|
|||
![]() |
|
Coddy41
Tyler wrote: Other than "nop," I don't know any opcodes. No need to, I got Fasm I have learned quite a bit playing with opcodes that past ~2 hours... took me allot of work but I think I almost got all the bugs worked (clearing screen and writing "hi ![]() ManOfSteel wrote: As late as the 70-80ies, engineers continued to use punched cards and tapes (e.g. DEC's PDPs). So even at that time they didn't care about the luxury of having assemblers and compilers. We really have lost our ways! Right now that sounds like my sort of time ![]() _________________ Want hosting for free for your asm project? You can PM me. (*.fasm4u.net) |
|||
![]() |
|
roboman
Punch cards and tape, how about putting the program directly into memory with switches on the front of the computer. http://www.altairkit.com/ I almost miss my old Altair.
I thought Eniac had a 'rom' that was 'writen' to by changing jumper wires directly on the 'rom' board, might be thinking of some other early big computer. Ah yes it was [It was programmed by a combination of plugboard wiring and three "portable function tables". Each function table has 1200 ten-way switches, used for entering tables of numbers.] |
|||
![]() |
|
Coddy41
Ah, I probibly got it confused with something else then(do it all the time I wouldn't be suprised)... I find it funny how the original programmers were wemon but now it seems
that mostly only men code these days... Quote: how about putting the program directly into memory with switches on the front of the computer. http://www.altairkit.com/ I almost miss my old Altair. it would be nice for testing code rather than wasting tap and cards just to see if it worked... _________________ Want hosting for free for your asm project? You can PM me. (*.fasm4u.net) |
|||
![]() |
|
Teehee
is Fasm done in C or something?
|
|||
![]() |
|
Tyler
Are you serious?
![]() |
|||
![]() |
|
ManOfSteel
Teehee wrote: is Fasm done in C or something? O_o Is this a serious question? If I'm not mistaken, Tomasz implemented it first in tasm, then rewrote it in fasm for self-hosting. |
|||
![]() |
|
Teehee
ManOfSteel wrote: Tomasz implemented it first in tasm, then rewrote it in fasm for self-hosting. I would reach in that point. Sorry for scare you guys ![]() _________________ Sorry if bad english. |
|||
![]() |
|
shoorick
_________________ UNICODE forever! |
|||
![]() |
|
alorent
shoorick, that's a piece of art!!!
![]() I remember that at my early ages, I couldn't find any machine code book around for my CPC464...you can imagine my frustation ![]() |
|||
![]() |
|
shoorick
it was because my first hand-made pc has no deal with cassette recorder first time
![]() ![]() |
|||
![]() |
|
edfed
maybe it can be pretty easy to write an hexadecimal editor, in less than 512 bytes, that give the hability to write binary code, and execute it.
a good contest i believe will be to do that. ![]() |
|||
![]() |
|
edemko
morphing viruses based on your ideas edfed
|
|||
![]() |
|
shoorick
edfed
why not? even up to 64kb ![]() ![]() ![]() ![]() writing a 27512 (it was ROMOS) |
|||
![]() |
|
edfed
here the squeleton for this idea.
![]() just the hexadecimal view. hexexe.asm (i like this name, hexexe, because it drives crazy ot read ![]() Code: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; org 100h mov ax,0b800h mov es,ax mov ax,cs mov gs,ax @@: xor di,di call linenumber mov di,(4+1)*2 call hexview mov di,(32+1+4+1)*2 call asciiview mov di,70*2 mov si,hexexe call textview call edit call run ; add [index],16 ; cmp [index],0 ; hlt ; jne @b ; mov ax,3 ; int 10h ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; black=0 blue=1 green=2 cyan=3 red=4 magenta=5 brown=6 gray1=7 gray2=8 teal=9 lime=10 aqua=11 skin=12 pink=13 yellow=14 white=15 numbercolor= yellow+blue*16 hexacolor = black+gray1*16 asciicolor = black+gray1*16 textcolor = black*16+white ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; hexexe db 'hexexe.com',0 cursor db 0,0 index dw 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; textview: mov ah,textcolor @@: lodsb cmp al,0 je @f stosw jmp @b @@: ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; hexview: mov ah,hexacolor mov bx,[index] mov dh,25 .line: mov cx,16 .load: mov dl,[gs:bx] call hexdigit shr dl,4 call hexdigit inc bx xor ah,1 loop .load add di,160-16*4 dec dh jne .line .end: ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; asciiview: mov ah,asciicolor mov bx,[index] mov dh,25 .line: mov cx,16 .load: mov al,[gs:bx] stosw inc bx xor ah,1 loop .load add di,160-16*2 dec dh jne .line .end: ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; edit: ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; run: ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; linenumber: mov dx,[index] mov bl,25 mov ah,numbercolor @@: mov cx,4 .cycle: rol dx,4 call hexdigit loop .cycle add di,160-8 add dx,16 dec bl jne @b ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; hexdigit: mov al,dl and al,0Fh cmp al,10 sbb al,069h das stosw ret compile in 179 bytes, 331 bytes free for a boot sector. the size limited to 512 bytes because of bootsector, and the need to write by hand all digits in ordre to execute the code one more time, like fasm does compile itself, hexexe editing itself ![]() need to code edit and run functions now. ![]() |
|||
![]() |
|
alorent
edfed, I like the idea!
![]() |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.