Игры то есть а вот прог найти не могу. Нужен собственно образ картриджа ассемблера для 800-XE версий.
Вид для печати
Игры то есть а вот прог найти не могу. Нужен собственно образ картриджа ассемблера для 800-XE версий.
А это не оно? http://www.atarimania.com/pgedump.awp?id=19777
PS: Вторая строчка гугла....
Спасибо. Наверное запрос не правильно делал. Не находил реально. Вот бы еще кроме самого файла его описание, что за картридж типа версия и т.д.
http://www.atarimania.com/utility-at...tor_19777.html
Внизу страницы сканы мануала к картриджу в JPG'ах.
Ах ты блин, тут то я бывал как раз действительно в самом начале поиска но иногда вот ссылки Download в упор не вижу:)
На самом деле на счет того что найти это я мастер (хе хе кроме этого случая где просто не заметил)
У меня скачаны уже все архивы с торента всех всех книг в PDF + полностью выкачен ресурс для локального пользования: http://www.atariarchives.org/
Выкачал весь ресурс как он есть на сервере с образами игр http://www.mushca.com/f/atari/index.php?idx=2 Очень удобно. Там есть в папке все эти файлы + текстовый файлик со всеми играми и их номерами файлов. Я просто в редакторе поиск по названию делаю и смотрю на каком картридже:)
Книги в сканах качественных PDF
101 Atari Computer Tips & Tricks
ABCs of Atari Computers
Atari 130XE Machine Language for the Absolute Beginner
Assembly Language Programming for the Atari Computers
Advanced Programming Techniques for you Atari
Adventures with the Atari
An Atari 8-bit Extra
Atari Assembly Language Programmers Guide
Atari BASIC
Atari BASIC (2)
Atari BASIC Faster and Better
Atari BASIC Learning by Using
Atari BASIC Tutorial
Atari BASIC XL Edition
Atari for Kids from 8 to 80
Atari for the Beginning Beginner
Atari Fun and Games
Atari Games & Recreations
Atari Graphics and Arcade Game Design
Atari in Wonderland
Atari Player-Missile Graphics
Atari Programming with 55 Programs
Atari Roots
Atari Software Protection Techniques
Atari Sound and Graphics
Awesome Games for your Atari Computer
Basic Atari BASIC
BASIC Exercises for the Atari
Best of SoftSide Atari Version
Computer Art and Animation Atari Logo
Computer Playground
Computers for Kids Atari Edition
Computers for People
Computes Atari Collection Vol 1
Computes Atari Collection Vol 2
Computes First Book of Atari
Computes First Book of Atari Games
Computes First Book of Atari Graphics
Computes Second Book of Atari
Computes Second Book of Atari Graphics
Computes Third Book of Atari
De Re Atari
Designs from your Mind with Atari Graphics
Dr C. Wacko Presents Atari BASIC
Dr Wackos Guide to Creating Arcade Games
Disk Guide Atari 400 and 800
FORTH on the Atari Learning bu Using
Free Software for you ATARI
Games Ataris Play
Games for the Atari
Games for your Atari Computer
Hackerbook for your Atari Computer
Home Applications and Games for the Atari
How to program Your Atari in 6502 Machine Language
How to use Atari Computers
I Speak BASIC to my Atari
Inside Atari BASIC
Inside Atari BASIC (2)
Itty Bitty Bytes of Space
Kids and the Atari
Machine Language for Beginners
Mapping the Atari
Master Memory Map
Mostly BASIC Applications for your Atari Book 1
Mostly BASIC Applications for your Atari Book 2
Programming your Atari Computer
Rainy Days Activities for the Atari
SpeedScript
Stimulating Simulations
The Analog Compendium
That Atari 800XL: A Practical Guide
The Atari Assembler
The Atari BASIC Sourcebook
The Atari Experience
The Atari Playground
The Atari User's Encyclopedia
The Best Atari Software
The Best of Antic Anthology
The Book of Atari Software 1983
The Creative Atari
The Elementary Atari
The Master Memory Map
The Musical Atari
The Second Book of Machine Language
The User's Guide to Atari 400 800 Computers
The User's Guide to Atari
The Visicalc Book Atari Edition
Things to do with your Atari Computer
Time Lost - A Computer Adventure
Tricky Tutorials 1-6
Tricky Tutorials #7 Disk Utilities
Understanding Atari Graphics
User's Handbook to the Atari 400/800 Computers
Your Atari Computer Comes Alive
Your Atari Computer
Your Atari Computer XL Edition
ABCs of Atari Computers
Atari 130XE Machine Language for the Absolute Beginner
Atari Assembly Language Programmers Guide
Atari BASIC Faster and Better
Atari BASIC Tutorial
Atari for Kids from 8 to 80
Atari for the Beginning Beginner
Atari Player-Missile Graphics
Atari Software Protection Techniques
Basic Atari BASIC
Best of SoftSide Atari Version
Computers for Kids Atari Edition
Computes Atari Collection Vol 1
Computes Atari Collection Vol 2
Computes First Book of Atari Games
De Re Atari
Designs from your Mind with Atari Graphics
Dr C. Wacko Presents Atari BASIC
Games for your Atari Computer
Hackerbook for your Atari Computer
Home Applications and Games for the Atari
Kids and the Atari
Master Memory Map
Mostly BASIC Applications for your Atari Book 1
Mostly BASIC Applications for your Atari Book 2
SpeedScript
Stimulating Simulations
The Atari Playground
The Best of Antic Anthology
The Book of Atari Software 1983
The Master Memory Map
The User's Guide to Atari 400 800 Computers
The Musical Atari
The Visicalc Book Atari Edition
Things to do with your Atari Computer
Time Lost - A Computer Adventure
Tricky Tutorials #7 Disk Utilities
Your Atari Computer Comes Alive
Your Atari Computer XL Edition
А вот текстовый файлик с играми на картриджах http://files.mail.ru
То, что выкачал - это хорошо. Сайты имеют неприятное свойство рано или поздно уходить в /dev/null, особенно связанные со всякой рухлядью -) Я вот сам недавно еле зеркало Ретроград Стейшн нашел, с образами PC Booter disk. Я если честно в атарях не шарю, даже не видел никогда, я сюда случайно зашел -)
А кто умеет программировать на ассемблере под ATARI, с детства мечтал научиться.
Не умею под atari, решил занятся. Накачал кучу книг .
Установил WUDSN IDE . Скомпилил первый примерчик с радугой и уже запустил на реале.
Весьма интересно... :biggrin:
Извиняюсь за качество фото, камера на планшете г. полное
http://i056.radikal.ru/1401/8d/3f268667614b.png
http://s43.radikal.ru/i101/1401/15/5a15b1e6b98a.jpg
попробовал, занимательно. Ещё бы знать что к чему....
Давай, давно хотел. В личку отписал тебе.
Я умею, потому что в школе были Атари и была компания, которая изучала по русскому переводу Mapping the Atari вдоль и поперек - от графики до прерываний и операций с устройствами.
из ассемблеров мне понравился atasm, который сразу гонит .XEX'ы, их удобно запускать в эмуляторе.
недавно мне посоветовали ACTION!, он хоть и неудобный, но покруче TurboBasic'a.
Всем привет!
Предлагаю попробовать компилятор PL65.
Это штука будет посильнее, чем Фауст Гёте.
Я в нём уже разобрался маленько.
Он плавно обходит проблемы ACTION (а у того их немерянно).
Если интерес есть, то могу познакомить. :)
Кстати, в нём есть встроенный полноценный ассемблер и свой (не атарьский) программный стэк. К тому же он компилирует в Досовские *.com файлы и не требует наличия рантайма на диске.
Ну может я не совсем удачно выразился...
Изначально Экшн проектировался как картридж. и все коды языка были в прошивке картриджа, то есть без картриджа откомпилированная программа не запускалась.
Потом, сначала сами OSS, а потом и другие продвинутые люди напридумывали рантайм библиотек для Экшн и вроде бы проблема решилась... Но осталось огромное неудобство в работе.
Трудности с параметрами, трудности с функциями, в общем язык странный. Его все любят за чистый код компиляции и за скорость, но фанатеть здесь не над чем.
А PL65 обладает всеми возможностями Экшн, зато весьма удобен и читаем. Есть двоичные, десятичные и шестнадцатиричные числа, указатели и пр.
Очень подробная документация Аж, страшно!
Вот как задать плейера для PM-графики:
DEFSHAPE(0,
%00111000,
%01011100,
%00111110,
%00101010,
%00111110,
%01011100,
%01100010,
%11111110,
%11010111,
%10111101,
%10110101,
%00111100,
%00111100,
%00011100,
%00111100,
%01111000)
ezswift, а не пробовал Action! с диска, а не с образа картриджа?Вроде как у меня программы компилировались..
и дай, пожалуйста ссылку на PL65, не могу найти (
Я подготовлю atr с языком и сделаю как вложение с pdf мануалом.
Сейчас у меня нет, просто подожди...
---------- Post added at 09:53 ---------- Previous post was at 09:05 ----------
Вот кстати Атарьская радуга на PL65 с комментариями
Разумеется, перед компиляцией русские комментарии надо удалить.
Код:! Rainbow !
! ------------------------------------ !
PROC Rainbow()
BYTE vcount=$D40B,wsync=$D40A
BYTE rtclok=$14,color=$D018,u=$7
BYTE ch=764
BEGIN
ch=$FF
REPEAT
wsync=u
color=rtclok+vcount
UNTIL ch<>$FF
END
! ------------------------------------ !
! Main program !
MAIN()
BEGIN
Rainbow()
END
! ------------------------------------ !
! Очистили клавиатурный буфер
! Повторяем, следующий блок, пока не изменится буфер, т.е., пока не нажата клавиша
! Запись в регистр wsync любого числа (Wait for Syncronization)
! ставит процессор в режим ожидания и поэтому изменение цвета происходит только
! с началом новой линии, а не посередине. Очевидно с этим можно поиграться.
! содержимое регистра реального времени прибавляем к содержимому счётчика строк ТВ растра
! сумму засовываем в регистр цвета фона.
! так получаем с изменением времени изменение цвета строк растра, то бишь радугу.
---------- Post added at 10:30 ---------- Previous post was at 09:53 ----------
Привет denpopov,
Подготовил файлик и готов выслать.
На какую почту прислать 6 мег зипованого файла?
Здесь ограничение по размеру
Как это сделать? Никогда не посылал.
Там нету кнопки вложения.
Ограничения на размер вложения в форуме - 640кб
ezswift,
есть rghost.ru и sderni.ru
пожалуйста,загрузи туда файлик и кинь в личку ссылку
Сделано! :)
Лежит на _http://rghost.ru/53046944
Будет там месяц, без пароля.
спасибо, попробую осилить.
---------- Post added at 13:26 ---------- Previous post was at 13:15 ----------
вот еще одно руководство, нужно будет почитать:
http://web.archive.org/web/200807052...02/PL65MAN.TXT
Это не наш PL/65, Наш называется PL65
Вот мой сайтик с примерами.
_http://8-bitnature.blogspot.ru/2013/03/pl65-noahsoftc1987.html
Я правда давно им не занимался, пардон.
мне здесь не совсем понятно:
мне думается попроще:Код:B=PEEK(RANDOM)
IF B>127 THEN B=1 ELSE B=0 ENDIF
lda RANDOM
and #$01
adc#$06
ну и саму процедурку можно развить. А заодно интересно - как устанавливать прерывания? я имею в виду как определить адрес вектора прерывания.?
Я тогда не знал точно как будет себя вести встроенный ассемблер. Сейчас уже проникся, а писал, ведь год назад.
У меня, намного больше примеров, конечно.
В частности библиотека прямого доступа к видеопамяти.
Только всё это надо обсуждать, я же не программист вовсе.
Кстати, вот пример очарования PL65:
Выравнивание начала памяти PM графики по 2 килобайтам:
BYTE PMDUMMY[$800-(@ AND $7FF)]
То есть начиная от текущего программного указателя обозначен как @ строится массив, выравненный по 2кб, после этого @ указывает уже на начало PM памяти и адрес можно взять оператором точкой. То есть PM=.PMDUMMY.
Соответственно, если надо выровнять модифицированный шрифт по 1кб границе,
будет так:
BYTE CHRDUMMY[$400-(@ AND $3FF)]
Вкусно!
Вот работа с прерываниями:
Код:! ------------------------------------ !
INTERRUPT DLINT()
BYTE ColReg=$D018
BEGIN ColReg=0 END
! ------------------------------------ !
PROC int_enable()
POINTER Ptr
INT Addr BASED Ptr
BYTE Data BASED Ptr
BYTE NMIEN=$D40E ! Interrupt register
INT SDL=$230 ! Display list address
BEGIN
Ptr=$200 Addr=.DLINT !Store address of interrupt subroutine into vector
Ptr=SDL+15 Data=$82 ! interrupt at line fifteen
NMIEN=$C0 ! Enable interrupt
END
! ------------------------------------ !
MAIN()
BEGIN int_enable() END
Здесь по DLI прерыванию, наступающему по достижении 15-й строки,
цвет фона меняется на чёрный.
DLINT() - меняет фон
int_enable() - Инициализация DLI
При работе с указателями
сначала определяется сам указатель (2 байта на нулевой странице)
После этого к нему привязываются переменные, которые BASED на нём.
еще не прочитал всё руководство, а к чему постоянные конструкции BEGIN-END?
---------- Post added at 15:38 ---------- Previous post was at 15:36 ----------
я думаю, что для графики будет нужно, потому что у меня есть только процедура включения графического режима и быстрое построение точки только для GR.8
Заодно можно найти и рисование окружностей.
Это как фигурныескобки в си. Наверное калька с Алгола.
Там ещё встречаются GOTO Label и GOSUB Label и ON var GOTO/GOSUB L1,L2,L3 ...
Так что язык вполне архаичный. Но ведь когда его создавали, не было даже Си.
Я как-то не конкретизировал, что в объявлении фиктивного массива
BYTE PMDUMMY[$800-(@ AND $7FF)]
часть в квадратных скобках - это его размерность, вычисляемая во время компиляции и во время исполнения просто автоматически будет известен адрес этого массива, то есть начала PMG в памяти.
Также не сказал, что процедура типа INTERRUPT сама достраивает необходимые например для связки Бейсика с ассемблером PLA и PHA при входе и при выходе из самой процедуры.
Есть специальный тип - Абсолютная переменная
То есть если переменная инициализируется при её описании, то она считается абсолютной и равной присваиваемой величине, то есть вот здесь присваивается Адрес, а память под байт не выделяется.
BYTE NMIEN=$D40E
...
NMIEN= <что-то> тут пойдёт занесение этого <что-то> по адресу NMIEN.
А ещё у меня есть файл, описывающий цвета для колоризации кода PL65 в Notepad++.
Он во вложении, но его нужно переименовать в pl65.udl перед импортом в Notepad++.
Добавлю:
BEGIN и END нужны для структуризации программы.
<здесь глобальные определения>
(Видны с этого места вниз везде, так как расположены выше процедур и функций)
PROC/FUNC(<здесь определяется тип и задаются имена параметров>)
<здесь локальные переменные>
BEGIN
<здесь пакет операторов>
...
END <здесь возвращаемое функцией значение>
Что-то пока не очень понятно(
А хватит ли мне этой функции, чтобы получить адрес экранной области?
Код:FUNC PEEK(PO1NTER address)
BYTE byte BQSED address
BEG IN
END byte
denpopov,
В PL65 уже есть стандартная библиотека PEEKPOKE.LIB
Там уже есть функции PEEK,POKE,DEEK,DOKE
(То есть пользоваться названием PEEK нехорошо.)
Там они задаются через указатель общего назначения gppointer и ассемблерные функции
Я всегда поступаю иначе.
Для избежания умножений в циклах прорисовки я доступ к экрану предоставляю через Абсолютную переменную
INT SAVMSC=$58
и массив адресов начал строк текстового режима.
INT LinAdr[24]
Произвольный доступ к экрану идёт через указатель
POINTER ScrAdr
и вносимую в экран величину загружаемую по адресу куда настроен указатель
BYTE ScrVal BASED ScrAdr
При работе программ массив адресов начал строк
всегда должен быть инициализирован! процедурой
InitVid()
Вот моя библиотека панельных функций экрана в режиме BASIC GR0
Она не оптимальна, но знакомит с PL65
Код:!====================================!
! PANELS.LIB
! PL65 Screen Panels operations.
!------------------------------------!
! InitVid(),
! SaveBlk(INT X0,Y0,X1,Y1 POINTER BP),
! SaveBlk(INT X0,Y0,X1,Y1 POINTER BP),
! Inverse(BYTE byte),
! InvLin(INT X0,Y0,X1)
! InvBlk(INT X0,Y0,X1,Y1),
! PutShp(INT X0,Y0 BYTE Shp,Mod),
! PlotHor(INT X0,Y0,L BYTE Shp,Mod),
! PlotVer(INT X0,Y0,L BYTE Shp,Mod)
!------------------------------------!
! Copyright (C) 2014 EZsoft
!====================================!
CONST MINCOL=0,MAXCOL=39,MINROW=0,MAXROW=23
INT SAVMSC=$58,LinAdr[24]
POINTER ScrAdr BYTE ScrVal BASED ScrAdr
!------------------------------------!
! Initialize Line-based Access
! to screen
PROC InitVid()
INT Y
BEGIN
FOR Y=0 TO 23 DO
LinAdr[Y]=Y*40+SAVMSC
NEXT
END
!------------------------------------!
! Save rectangular screen block
! to buffer defined in MAIN()
!------------------------------------!
! INT PW,PH BYTE PBuf[PW*PH]
! POINTER BP
PROC SaveBlk(INT X0,Y0,X1,Y1 POINTER BP)
INT X,Y BYTE BV BASED BP
BEGIN
FOR Y=Y0 TO Y1 DO
FOR X=X0 TO X1 DO
ScrAdr=LinAdr[Y]+X
BV=ScrVal ScrVal=0
BP=BP+1
NEXT
NEXT
END
!------------------------------------!
! Restore rectangular screen block
! from buffer defined in MAIN()
PROC RestBlk(INT X0,Y0,X1,Y1 POINTER BP)
INT X,Y BYTE BV BASED BP
BEGIN
FOR Y=Y0 TO Y1 DO
FOR X=X0 TO X1 DO
ScrAdr=LinAdr[Y]+X
ScrVal=BV
BP=BP+1
NEXT
NEXT
END
! ----------------------------
! Inverse Screen Byte !
FUNC Inverse(BYTE byte)
CONST mask=%10000000
BEGIN
byte=byte XOR mask
END byte
! ----------------------------
! Inverse Line on Screen
PROC InvLin(INT X0,Y0,X1)
INT X,Y
BEGIN
Y=Y0
FOR X=X0 TO X1 DO
ScrAdr=LinAdr[Y]+X
ScrVal=Inverse(ScrVal)
NEXT
END
! ----------------------------
! Invert rectangular screen block
PROC InvBlk(INT X0,Y0,X1,Y1)
INT X,Y
BEGIN
FOR Y=Y0 TO Y1 DO
FOR X=X0 TO X1 DO
ScrAdr=LinAdr[Y]+X
ScrVal=Inverse(ScrVal)
NEXT
NEXT
END
! ----------------------------
! Put Char/Byte to Screen
! 0=Screen Byte, 1=ATASCII Char
PROC PutShp(INT X0,Y0 BYTE Shp,Mod)
INT X,Y
BEGIN
IF Mod=1 THEN Shp=Asc2Scr(Shp) ENDIF
X=X0 Y=Y0
ScrAdr=LinAdr[Y]+X
ScrVal=Shp
END
! ----------------------------
! Put Horizontal line of Chars/Bytes
! 0=Screen Byte, 1=ATASCII Char
PROC PlotHor(INT X0,Y0,L BYTE Shp,Mod)
INT X,X1,Y
BEGIN
IF Mod=1 THEN Shp=Asc2Scr(Shp) ENDIF
X1=X0+L Y=Y0
FOR X=X0 TO X1 DO
ScrAdr=LinAdr[Y]+X
ScrVal=Shp
NEXT
END
! ----------------------------
! Put Vertical line of Chars/Bytes
! 0=Screen Byte, 1=ATASCII Char
PROC PlotVer(INT X0,Y0,L BYTE Shp,Mod)
INT X,Y,Y1
BEGIN
IF Mod=1 THEN Shp=Asc2Scr(Shp) ENDIF
X=X0 Y1=Y0+L
FOR Y=Y0 TO Y1 DO
ScrAdr=LinAdr[Y]+X
ScrVal=Shp
NEXT
END
! ----------------------------
! Draw Frame around Panel
PROC DrawFrm(INT X0,Y0,X1,Y1,PW,PH)
CONST TLC=$51,HOR=$52,TRC=$45,VER=$7C,BLC=$5A,BRC=$43
BEGIN
PutShp(X0,Y0,TLC,0) PlotHor(X0+1,Y0,PW,HOR,0) PutShp(X1,Y0,TRC,0)
PlotVer(X0,Y0+1,PH,VER,0) PlotVer(X1,Y0+1,PH,VER,0)
PutShp(X0,Y1,BLC,0) PlotHor(X0+1,Y1,PW,HOR,0) PutShp(X1,Y1,BRC,0)
END
! ----------------------------
PROC DrawPnl(INT X0,Y0,PW,PH,PAdr)
POINTER ChrPtr
BYTE ChrShp BASED ChrPtr
INT X,Y
BEGIN
ChrPtr=PAdr
FOR Y=Y0+1 TO Y0+PH DO
FOR X=X0+1 TO X0+PW DO
ScrAdr=LinAdr[Y]+X
ChrShp=Asc2Scr(ChrShp) ScrVal=ChrShp
ChrPtr=ChrPtr+1
NEXT
NEXT
END
! ----------------------------
ENDFILE
Да, забыл сказать, что эта библиотека использует функции другой моей библиотеки
SCREEN.LIB, выполняющей рутинные экранные функции, такие как
Asc2Scr(BYTE Byte)
или
Scr2Asc(BYTE Byte)
---------- Post added at 11:37 ---------- Previous post was at 11:33 ----------
На самом деле я хотел написать DUP.SYS для DOS 2.5 выполненый как система выпадающих меню. В перспективе от мыши, но можно от клавы или джойстика.
Я, правда недостаточно знаю сам Дос, но тут в помощь идут расширители бейсика, которые добавляют ему DOS функции. Просто слизать что там пишут и влепить в PL65
---------- Post added at 11:42 ---------- Previous post was at 11:37 ----------
Правда там честнее доступ к экрану делать через SIO для совместимости с S: и E:
На самом деле быстро и через SIO, это же компилятор.
Всего смешнее то, что имея ассемблерные коды DUP.SYS
можно просто слизать нужные части напрямую в ассемблер PL65
У меня есть пример примитивного меню через SIO.
Это простой атарьский com файл!!! Его надо переименоватью
(Просто в форуме не любят com файлы.)