Oldschoolowe programowanie - prośba o doradzenie jak się za to zabrać

0

Witam, opisze co chce osiągnąć i proszę o doradzenie jak do tego chce sie zabrać.

Planuje zlozyc jakiś archaiczny komputer z napędem cd oraz floppy drive i jak pan bog da z portem lpt.

Potrzebuje napisać program który będzie spenial dane wlasciwosci. Bedzie uruchamiany z floppy (wiersz poleceń o ile mniemam)
Bedzie to program textowy, chcialbym żeby mial teksty animowane (takie cos jak rotlf copter), mogl obsłużyć. Funkcje eject cd romu oraz mieć pare opcji wyboru. (press 1 to do something, press 0 to return) oraz ostatnia funkcja wywolywanie lpt. Jak mniemam można różne rzeczy do tego portu podlaczac (komenda która da zasilanie np lampkom led).

Proszę o wskazanie języka, poradników i ewentualnie jak zemulowac to wszystko co bede pisać dla testów.

Przepraszam za forme ale pisze z zlomofonu. Pozdrawiam

0

Jak to ma być stary komputer to raczej windowsa nie postawisz tylko jakiś lekki linux. Polecam zatem basha (lub inny język skryptowy) ewentualnie C/C++

0

Albo na zwykłym DOSie, jak za dawnych lat.

0

Ostatnio coś takiego robiłem ponad 10 lat temu, więc mogę źle pamiętać, ale:

Na dyskietce zmieści Ci się DOS i plik batch, który może być odpalany z autostartu (z tego co pamiętam). Taki plik batchowy ma na pewno obsługę keypress i możesz w nim zrobić bardzo proste menu (nie wiem jak z animacjami).
Co do funkcjonalności których potrzebujesz:

http://www.911cd.net/forums/index.php?showtopic=13917

Tutaj masz kwestię CDROMu.
Chociaż zastanawiam się czy to takie ważne, żeby robić to z klawiatury, skoro ktoś i tak będzie musiał tam fizycznie to kliknąć, czemu nie może tego zrobić używając fizycznego przycisku na napędzie?

Z LPT może być gorzej. Ale tez warto poszperać za tym w necie.
Np
https://www.google.com/search?q=dos+lpt+commands&ie=utf-8&oe=utf-8

Za to pewnie będziesz w pół dnia sklecić to do kupy i przetestować czy działa.

I skoro da się to zrobić w DOSie, to warto by było sprawdzić czy nie da się zrobić na jakimś prostym Unixie/Linuxie jeszcze łatwiej :-)

Dużo może zależeć od tego czego oczekujesz od obsługi LPT.

Jeśli byś chciał sam sobie to napisać to C/C++ jak już było wspomniane.

Tyle z mojej strony, niestety pod dosa nie pisałem albo nic, albo bardzo, bardzo dawno temu, a jak już to prościutkie rzeczy (chyba jeszcze w Pascalu w liceum), więc do tego moja pomoc się musi ograniczyć.

0

Cdrom jest o tym istotny ze będzie on zabudowany tak ze nie bede w stanie kliknąć fizycznie przycisku. W takim razie chyba jakieś proste dystro linuxa i cpp. Poradzicie jakiś poradnik taki uproszczony. Póki co czytam ten "o tworzeniu gier"

0

To wszystko da się też zrobić w DOSie, przecież gdy nie było windowsa nie było innego wyjścia niż pisanie takich rzeczy w dosie.

0

DOS, Lub 'wolnostojący' program czyli bootsector (Jeśli floppy, to zakładam że skorzystasz z systemu plików FAT12) + właściwy kod programu (surowa binarka żadne COMy czy ELFy).
W bootsectorze ładujesz resztę binarki ( bootsector może mieć wielkość 512 bajtów, i tak, da to sie da zrobić ;-)
Binarka komputer obsługuje za pomocą przerwań BIOSu, czyli poziom niemal posadzki w piekle ;p
Testować swoje dzieło możesz na licznych emulatorach jak Bochs, Qemu, osobiście polecam Bochsa.
Jak takie coś mogłoby wyglądać?
Tak sie składa że jestem w trakcie tworzenie czegoś podobnego, i pisać w Assembly naprawde nie musisz, możesz korzystać z C/C++, kompilując kod 16-bitowym kompilatorem Watcom, Turbo C, znów, osobiście, polecę ci Watcoma, przykładowo funkcja która drukuje znak w terminalu

void putc(uint8_t c){
    _asm{
        mov ah, 0x0e
        mov al, c
        int 0x10
    }
}

Jak widać zbyt wielkiej filozofii tu nie ma, natomiast jest _asm, cóż, troche będziesz musiał z niego skorzystać, ale jak obudujesz sobie bardzo niskopoziomowe funkcje warstwą abstrakcji, możesz pisać bez tykania Assembly.
Co do poradników, to ciebie głównie interesować będzie bootsector, tu w 1 rozdziale masz napisane, jak takowy stworzyć.
Jakie są zalety tego rozwiązania?
Przy odrobinie wysiłku uda ci się napisać coś co pójdzie nie tylko w "środowisku" DOSa, ale też zwykłego peceta x86 w trybie chronionym.

0

Tylko po co zabawa z bootsectorem? Wystarczy napisać program w dowolnym języku, skompilować do exe i wrzucić do autoexec.bat. Uruchamiasz wtedy komputer z dyskietki i od razu ładuje się ten program. Prościej się chyba nie da.

0

co do MSDOSu bo domyślam się, że przedmówcom chodzi o niego, to mogą być problemy z licencją bo to nigdy nie był darmowy system operacyjny. W grę wchodzą jeszcze jakieś darmowe odpowiedniki np. OpenDos, ale trzeba popatrzeć czy można ich używać w celach komercyjnych (nie piszesz czy to jest tylko projekt edukacyjny czy komercyjny). Na pewno zaplanowanych efektów nie uzyskasz za pomocą samych skryptów BAT. Tak jak wcześniej ktoś napisał trzeba stworzyć w jakimś Trubo Pascalu/C program EXE i wywołać go w autoexecu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1