Welcome, Guest. Please login or register.


Author Topic: Altair BASIC (Read 14547 times)

Offline Povi

  • EP addict
  • *
  • Posts: 1873
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://povi.fw.hu
Re: Altair BASIC
« Reply #45 on: 2014.November.24. 18:29:20 »
itt egy működő:
*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 2929
  • Country: hu
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://www.ep128.hu
Re: Altair BASIC
« Reply #46 on: 2014.November.24. 18:50:38 »
Ha jól látom, a memóriaméret megadásánál még nincs hibaellenőrzés.
A TERMINAL WIDTH kérdést nem lehetne kiszedni? Ha jól látom, nem csinál semmit.
A WANT SIN? kérdés mire vonatkozik?

Offline Lacika

  • EP addict
  • *
  • Posts: 2929
  • Country: hu
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://www.ep128.hu
Re: Altair BASIC
« Reply #47 on: 2014.November.24. 18:53:45 »
akarok még bele FILE-bővítés kezelést is tenni, meg EXOS-parancs beírásának a lehetőségét. Legyen akkor már egy kicsit EP-sebb. Meg persze a legjobb az lenne, ha EDITOR-csatornán is menne, persze akkor már az eredeti "feeling"-et nem fogja vissza adni.

Ezek jó ötletek! (Főleg, hogy működő szerkesztő-billentyűket nem is találtam...) :smt026

Offline Povi

  • EP addict
  • *
  • Posts: 1873
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://povi.fw.hu
Re: Altair BASIC
« Reply #48 on: 2014.November.24. 19:40:16 »
Ha jól látom, a memóriaméret megadásánál még nincs hibaellenőrzés.
A TERMINAL WIDTH kérdést nem lehetne kiszedni? Ha jól látom, nem csinál semmit.
A WANT SIN? kérdés mire vonatkozik?
16KiB memória elérhető, ha annál többet írsz be (16384-nél nagyobbat), akkor nem fog működni. De ez az ALTAIR-en is így működött: ha többet írtál a kérdésre, mint amennyi RAM-od volt a gépben, akkor lefagyott. Ha ENTER-t ütsz, akkor ő maga "rájön", hogy mennyi RAM-od van, úgy, hogy elkezd írni a RAM-ba, aztán ha nem sikerül visszaolvasni, akkor az azt jelenti, hogy elérte a RAM tetejét. Az EP-n az 1-es lapra direkt egy ROM van belapozva, így 0x4000-től fölfelé már nem tud beleírni a "teszt" során.

A Terminal Width működik: ha ENTER-t nyomsz, akkor alapesetben 72 karakter lesz a szélesség (72 karakter elérése után automatikusan rak egy CR/LF-et, próbáld ki pl. 20 karakter szélességgel, működik az :-)

A Want SIN? It t Y-t vagy N-t lehet nyomni. Ha kevés a RAM (pl. 4096 byte), akkor lehet kérni, hogy ne töltse be a SIN, RND és SQR függvényeket, hogy több szabad RAM maradjon.

*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1873
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://povi.fw.hu
Re: Altair BASIC
« Reply #49 on: 2014.November.24. 19:46:28 »
ilyen, ha 40-re állítom a TERMINAL WIDTH-t:
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1873
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://povi.fw.hu
Re: Altair BASIC
« Reply #50 on: 2014.November.24. 19:59:25 »
na, mondjuk ezze a memoria tesztben érdekes bug van:
Code: [Select]
0DCA    LD HL,0EFCH
0DCD    INC HL
0DCE    LD A,37H
0DD0    LD (HL),A
0DD1    CP (HL)
0DD2    JP NZ,DoneMemSize
0DD5    DEC A
0DD6    LD (HL),A
0DD7    CP (HL)
0DD8    JP Z, 0DCDH
0DDB    JP DoneMemSize

Vagyis ha véletlenül 64KiB RAM volt a gépben, akkor a RAM-méret megállapító rutin amikor eléri a RAM tetejét (amikor HL = 0xFFFF), akkor a következő lépésben HL = 0x0000 lesz, és fölülírja a program saját magát.
Bár az is igaz, 1975-ben megfizethetetlen kategória volt a 64KiB, szóval valószínüleg senkinek sem volt, és nem is jött elő ez a bug.
*** Speicherplatz zu klein

Online Zozosoft

  • EP addict
  • *
  • Posts: 13519
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Altair BASIC
« Reply #51 on: 2014.November.24. 20:20:10 »
akkor a következő lépésben HL = 0x0000 lesz, és fölülírja a program saját magát.
De ez nem ROM-ban futott?
Amúgy 16K-nál több RAM-ot lehetne neki adni, vagy attól kiakadna?

Offline Povi

  • EP addict
  • *
  • Posts: 1873
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://povi.fw.hu
Re: Altair BASIC
« Reply #52 on: 2014.November.24. 20:32:53 »
De ez nem ROM-ban futott?
Amúgy 16K-nál több RAM-ot lehetne neki adni, vagy attól kiakadna?
Nem, RAM-ból. Lyukszalagról olvasták be.
Máshogy nem is indulna, mert vannak a kódban saját magát fölülíró részek.
Ha a kérdésre gondolsz, hogy lehet-e többet megadni, akkor lehet, de attól kiakadna. Ugyanis a RAM tetejére akarná tenni a veremmutatót, de az nem menne neki. (az 1-es lapon ROM van, a 2-esen pedig azok a rutinok, ami ahhoz kell, hogy fusson EP-n), szóval azt se lenne érdemes felülírni.
*** Speicherplatz zu klein

Online Zozosoft

  • EP addict
  • *
  • Posts: 13519
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Altair BASIC
« Reply #53 on: 2014.November.24. 20:36:53 »
Nem, RAM-ból. Lyukszalagról olvasták be.
És a lyukszalagot mi olvasta be?

Quote
Ha a kérdésre gondolsz, hogy lehet-e többet megadni, akkor lehet, de attól kiakadna. Ugyanis a RAM tetejére akarná tenni a veremmutatót, de az nem menne neki. (az 1-es lapon ROM van, a 2-esen pedig azok a rutinok, ami ahhoz kell, hogy fusson EP-n), szóval azt se lenne érdemes felülírni.
Nem arra gondolok, hogy 3-as lapra teszed a rutinokat, 2-esre a ROM-ot, és 1-esre mehetne még ram.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://lgb.hu/
Re: Altair BASIC
« Reply #54 on: 2014.November.24. 20:51:32 »

Offline Povi

  • EP addict
  • *
  • Posts: 1873
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://povi.fw.hu
Re: Altair BASIC
« Reply #55 on: 2014.November.24. 20:59:07 »
És a lyukszalagot mi olvasta be?
Vagy egy ilyen teletype:
http://en.wikipedia.org/wiki/Teletype_Model_33

És itt egy video, ahogy a 4K BASIC-ot betöltik (ugyanarról a linkről, amit lgb küldött):
http://randomthoughts.club/youtube.php?video=qv5b1Xowxdk

Na ez a kemény, nem a CRT-terminál és a szupergyors lyukszalag-olvasó :-)
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1873
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://povi.fw.hu
Re: Altair BASIC
« Reply #56 on: 2014.November.24. 21:04:15 »
Nem arra gondolok, hogy 3-as lapra teszed a rutinokat, 2-esre a ROM-ot, és 1-esre mehetne még ram.
Ja, de, lehetne. :-) De még ezt a 16k-t is túlzásnak tartom :mrgreen:
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://lgb.hu/
Re: Altair BASIC
« Reply #57 on: 2014.November.24. 21:04:19 »
Szerintem Zozo ugy ertette a kerdest, hogy van a RAM mellett ROM is, ami a beolvasast vezerli? Vagy en ertettem felre. Mondjuk modernebb idokben is van hogy nincs ROM csak RAM :) Pl amikor reset-ben tartja a CPU-t (ok manapsag pl AVR egyes hazi epitesu Z80 cuccon), es o szepen beleirja, aztan elengedi a reset-et, vagy hasonlo. Elvileg ilyet lehetne epiteni AVR/CPU stb nelkul is vmi egyszeru binaris szamlalo a cimzeshez, es kozben a szallagrol az input, azaz kozvetlenul a RAM-ba injektalja a kodot, utana mehet a CPU. Mondjuk nem tudom h az Altair 8800-on igy volt-e vagy van barmi ROM-ja ...

Offline Povi

  • EP addict
  • *
  • Posts: 1873
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://povi.fw.hu
Re: Altair BASIC
« Reply #58 on: 2014.November.24. 21:06:14 »
Szerintem Zozo ugy ertette a kerdest, hogy van a RAM mellett ROM is, ami a beolvasast vezerli? Vagy en ertettem felre. Mondjuk modernebb idokben is van hogy nincs ROM csak RAM :) Pl amikor reset-ben tartja a CPU-t (ok manapsag pl AVR egyes hazi epitesu Z80 cuccon), es o szepen beleirja, aztan elengedi a reset-et, vagy hasonlo. Elvileg ilyet lehetne epiteni AVR/CPU stb nelkul is vmi egyszeru binaris szamlalo, aztan kozvetlenul a RAM-ba injektalja a kodot, utana mehet a CPU. Mondjuk nem tudom h az Altair 8800-on igy volt-e vagy van barmi ROM-ja ...
Ha jól tudom, nem volt ROM az Altair-ban. Persze ez jó kérdés, hogy akkor hogyan is ment a beolvasás... :-) Még "új" vagyok az Altair témában, de baromira érdekes, hogy milyen is volt a 8bites mikró őskorszaka.
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 33.0 Firefox 33.0
    • View Profile
    • http://lgb.hu/
Re: Altair BASIC
« Reply #59 on: 2014.November.24. 21:18:54 »
Ha jól tudom, nem volt ROM az Altair-ban. Persze ez jó kérdés, hogy akkor hogyan is ment a beolvasás... :-) Még "új" vagyok az Altair témában, de baromira érdekes, hogy milyen is volt a 8bites mikró őskorszaka.

ja erdekes, wikipedia szerint pl:

The front panel, which was inspired by the Data General Nova minicomputer, included a large number of toggle switches to feed binary data directly into the memory of the machine, and a number of red LEDs to read those values back out.

Programming the Altair was an extremely tedious process. The user toggled the switches to positions corresponding to an 8080 microprocessor instruction or opcode in binary, then used an 'enter' switch to load the code into the machine's memory, and then repeated this step until all the opcodes of a presumably complete and correct program were in place.

Ez alapjan tenyleg ugy tunik, hogy kozvetlenul a memoriat irtak kapcsolokkal es olvastak ki LED-ekkel, gondolom akkor talan a lyukszallag olvasas is mehetett ugy, hogy kozvetlenul a memoriaba irogatta bele egy egyszeru kis elektronika, es a CPU addig meg szoba sem jott, amig nem toltottek fel a RAM-ot, ahogy illik, utana johetett csak a CPU, hogy legyen kedves most mar futtatni a kodot ami a RAM-be kerult.

Mondjuk meg mindig erosen csak tippelgetek ;) Poenbol kene epiteni hasonlot Z80-al, kisebb meretekben es nem feltetlen lyukszallaggal, csak hogy "kezzel" lehessen programozgatni a RAM tartalmat mindenfele CPU nelkul, az erzes biztos erdekes lenne :)