Kami sedang menulis program untuk rilis komputer ALTAIR 8800 1975

Hai, Habr.





Dalam sejarah komputasi, ada peristiwa-peristiwa tertentu yang mempengaruhi jalannya sejarah. Salah satunya adalah munculnya komputer pribadi pertama yang diproduksi secara massal.





Pada tahun-tahun itu, komputer hanya digunakan oleh ilmuwan dan insinyur di perusahaan besar. Dan kemudian komputer muncul, yang dapat dibeli siapa saja. Altair 8800 berisi prosesor 8080, memori 256 byte pada versi pertama, dan harga di bawah $ 1000 - ini adalah komputer pribadi pertama yang berhasil dijual. Ini adalah komputer yang sama yang digunakan Bill Gates dan Paul Allen untuk mengembangkan bahasa BASIC, komputer yang dengannya ratusan dan ribuan siswa dan anak sekolah yang antusias datang ke dunia pemrograman.





Tentu saja, murahnya harganya - versi pertama ALTAIR tidak memiliki keyboard atau layar, hanya panel sakelar sakelar, seperti pada foto. Menjadi menarik untuk mengetahui bagaimana menulis dan menjalankan program pada PC seperti itu. Bagi yang ingin tahu cara kerjanya, kelanjutannya di bawah.





Kode

. ALTAIR 64 , 8080, 2 .





, , 1 5:





; Code segment:

        ORG    0o       ; Set Program Counter to address 0
START:  LDA    I
        MOV    B,A      ; RegB => I (1..N)
        LDA    STEP
        MOV    C,A      ; RegC => STEP (always 1)
        LDA    SUM
        MOV    D,A      ; RegD => SUM (result)
LOOP:     MOV    A,D    ; Move value to Accumulator from Register D (SUM)
          ADD    B      ; Add value in Register B to value in Accumulator
          MOV    D,A    ; Save result back to D     I
          MOV    A,B    ; Mov B to A and decrement it
          SUB    C
          JZ     PEND   ; If A is zero, the calculation is complete
          MOV    B,A    ; If not, continue
          JMP    LOOP     
PEND:   MOV A,D         ; Save result in SUM value
        STA SUM
PWAIT:  JMP PWAIT       ; Nothing to do, infinite loop

; Data segment:

        ORG    200o     ; Set Program Counter to address 200
I:      DB     5o       ; Data Byte at address 200 = 5
STEP:   DB     1o       ; Data Byte at address 201 = 8 (10 octal)
SUM:    DB     0o       ; Data Byte at address 202 = 0

        END             ; End
      
      



, 3 , I, STEP SUM, 1 5 1. B, C D, . JZ (Jump if Zero) , . SUM. , (data segment) , 200o ("o" octet, 8- ).





, , Python :





s = sum(range(6))
      
      



, , - . .





, , . , LDA:





"LDA I", I 200 = 80h, 3A 80 00.





MOV B,A :





01000111b = 47h





- , ( ). , "" , , . :





3a 80 00 47 3a 81 00 4f 
3a 82 00 57 7a 80 57 78 
91 ca 18 00 47 c3 0c 00 
7a 32 82 00 c3 1c 00
      
      



- 38 . MZ, - 0. , , , 40...





ALTAIR 8800, github. :





, ALTAIR . - . , 1 10001000b, DEPOSIT, , DEPOSIT NEXT. , EXAMINE/EXAMINE NEXT. RUN SINGLE STEP.





, DEBUG , hex- . , .





. , 202 = 10000010b, EXAMINE. D7..D0 00001111b = 15, 1 5:





, , . , , , .





1975 BASIC ALTAIR, 1976 "Micro-Soft". IT.





. ALTAIR - , 50 . , . 2 , , , " ".





, ALTAIR . -, "", :





, ALTAIR simh, Linux, :





, .





Seperti biasa, semoga sukses untuk semuanya.








All Articles