Последний раз редактировалось zx-kit; 17.01.2018 в 20:02.
"L-256"
Наверно ты прав, можно что-то придумать
Последний раз редактировалось Valen; 17.01.2018 в 22:04.
V6Z80P - Back for Good
Делал такое в своем клоне CP/M. Для драйверов или крупных многостраничных программ писаных на ассемблере достаточно удобно пользовать, но компиляторы ЯВУ такое обрабатывать не умеют (если только не написать компилятор самому), а практически любое реалистичное портирование на наши 8 бит в современном мире - это С.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Кросс платформенный Си под Z80/180 вроде поддерживают Big модель памяти. Сам не пробовал. Но как я понял там заточено по простые маперы памяти. И понятно, что под наши зоопарки маперов не особо подходят.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Я как-то смотрел sdcc, максимум чего можно добиться это что оно просто будет само вставлять типа как "макрос" врубления нужной страницы при обращении в дальнюю память или при вызове far jmp... НО все это дело прийдется в проге самой уже планировать изначально, т.е. изначально указать компилеру какой сегмент кода в каком банке будет лежать или какие данные в каком банке. Возникает вообще вопрос это реально кто-то использует? или просто эксперементальная фича в альфа версии у которой нет шанса быть доведенной до ума.
Ну короче, такого автоматизма какой был достигнут на системах pdp-11 или MS-DOS, там где просто пишешь код и хранишь данные в сегментах, а потом link-ер может это все слепить "по разному" (да еще и с overlay-ами) НЕТУ! Да оно и понятно почему - изза того что вся эта штука с overlay-ами очень сильно завязана на linker\loader встроенный либо в саму OS либо завязанным на железо и встраеваемый в exe-шник самим link-ером.
Остановился на том, что надо писать отдельные модули (код+данные), которые ничего не знают ни о памяти ни о страницах, они просто могут манипулировать своими локальными данными используя свои процедуры. После того как все нужные модули будут написанны прийдется написать отдельный мини-kernel который будет связывать все эти модули в кучу, он будет знать как, кого и куда загружать, кому и куда надо вписать адреса вызовов, где и сколько выделить стека. Таким образом делается все вручную от начала до конца, а раз так то про встроенный z180 мапер можно забыть (ну т.е. он то по моще может и такой же самый как у pdp-11 или i8088, но чтоб его применить надо написать по новой rt11 или msdos для z180).
Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
bigral, почитывая мануалы к коммерческим компиляторам (sdcc не обсуждается) у меня сложилось мнение, что Z180 мапер таки можно использовать из коробки. Тут другое. Все эти компиляторы рассчитаны на генерирование кода для неких промышленных контролеров (в разрезе использования big модели памяти). А так да. Даже для CP/M (продвинутых клонах с ОЗУ > 64Kb) придется строить костыли разной сложности. И таких примеров костылей в интернете можно найти не мало.
Последний раз редактировалось OrionExt; 18.01.2018 в 18:43.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)
Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)