Jump to content

Photo

The "funkheld" Question Thread


209 replies to this topic

#1 funkheld OFFLINE  

funkheld

    Moonsweeper

  • 370 posts

Posted Sat Sep 8, 2018 3:34 PM

when i start the altirra my ATARIBAS.ROM becomes
not started, which I have included.

 

this is : ATARI COMPUTER - MEMO PAD

Thank you.
greeting



#2 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,928 posts
  • Location:United Kingdom

Posted Sat Sep 8, 2018 3:59 PM

The 800 OS has no internal BASIC support. Are you emulating an 800?

#3 _The Doctor__ ONLINE  

_The Doctor__

    Quadrunner

  • 5,623 posts
  • Location:10-0-11-00:02

Posted Sat Sep 8, 2018 4:27 PM

You must attach your basic in the attach cartridge section when emulating an 800

you can only use the internal rom section on 800XL/130XE etc



#4 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Sun Sep 9, 2018 12:57 AM

I integrated the BasicROM into Altirra.
"ATARIBAS.ROM". it is not used when starting Altirra.
Have set to 800Xl.

Thank you.
Greeting

Attached Thumbnails

  • Bild2.jpg
  • Bild3.jpg


#5 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 13,928 posts
  • Location:United Kingdom

Posted Sun Sep 9, 2018 1:21 AM

For the reasons already explained.

#6 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Sun Sep 9, 2018 2:50 AM

hello thanks.

 

greeting



#7 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Sun Sep 9, 2018 9:09 AM

with which program can you please files on
an atr push with a --batchfile ---?
 
i play with altirra.
 
Thank you.
 


#8 JAC! OFFLINE  

JAC!

    Stargunner

  • 1,745 posts
  • Always looking for GFX and MSX for my demos
  • Location:Lebach, Germany

Posted Sun Sep 9, 2018 9:48 AM

The section "How do I compile into disk images?" might be helful.

 

https://www.wudsn.co...q#FAQDiskImages



#9 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Mon Sep 10, 2018 2:43 AM

hello, thanks.

 

greeting.



#10 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Tue Sep 11, 2018 2:21 PM

With a trick you can set up 2 screens where the graphics commands work.
the 2nd screen is on $ 2000 store.
FEATURES {
     STARTADDRESS: default = $ 3000;
$ 3,000 has been set.

Alternating here is "560,561 $ 230, $ 231 SDLSTL, SDLSTH"
the starting address $ 2000 is entered and the address of
graphic 23.

greeting

 

dlist =560
savmsc=$58
ramadr=$2000
 
gr. 23
dliadr=dpeek(dlist)
scradr=dpeek(dliadr+4)
 
dpoke dliadr+4,$2000
dpoke savmsc,$2000
 
color 1
 
plot 0,0
drawto 159,95
plot 159,0
drawto 0,95
 
for a=0 to 255
   poke $2000+a,129
next a 
 
for a=0 to 8000
next a
 
dpoke dliadr+4,scradr
dpoke savmsc,scradr
 
plot 0,50
drawto 159,95
 
for a=2000 to 2255
   poke 49248+a,129
next a 
 
for a=0 to 8000
next a
 
dpoke dliadr+4,$2000
dpoke savmsc,$2000
 
for a=0 to 8000
next a
 
dpoke dliadr+4,scradr
dpoke savmsc,scradr
 
repeat
until Key()


#11 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Thu Sep 13, 2018 6:54 AM

Hi good afternoon.
what does a diskette (atr) look like for Altirra without DOS?
I would like to load an XEX program on an ATR and start it automatically when inserting a diskette.
 
Thank you.
greeting


#12 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Thu Sep 13, 2018 10:52 AM

 
pm in the mod graphic.
 
cfg for fastbasic :
------------------------------------------------
FEATURES {
    STARTADDRESS: default = $3000
------------------------------------------------
 
demo of the fastavr.atr with altirra.
 
- pmtest1.xex
- pmtest2.xex
 
pm with picture (160x96)
 
dlist =560
savmsc=$58
ramadr=$2000
max=3840
 
' p/m test program
ramtop = $6a   : sdmctl = $22f  : pcolr0 = $2c0
hposp0 = $d000 : gractl = $d01d : pmbase = $d407
 
data dlidat() byte = $70, $70, $70, $4d, 
data          byte = $00,$20,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d,
data          byte = $0d, $0d, $0d, $0d, $0d, $41, 
data          byte = $00, $00 
                     
dpoke adr(dlidat)+103,adr(dlidat)
dpoke dlist,adr(dlidat)
dpoke savmsc,ramadr 
 
open #1, 4, 0, "D:MULBI.BIN"
bget #1,ramadr, max
close #1
 
' reserve memory at top
memtop = 200
p0mem  = $100 * memtop + $200
oldpos = p0mem
poke ramtop, memtop
 
' activate and configure p/m data
poke p0mem, 0 : move p0mem, p0mem+1, 127 : ' clears memory
poke pcolr0, $1f
poke sdmctl, peek(sdmctl) ! 8
poke pmbase, memtop
poke gractl, 2
 
' p/m data and blank (to clear p/m)
data pmdata()  byte = $38,$44,$54,$44,$38
data pmclear() byte = $00,$00,$00,$00,$00
 
' initial conditions
xpos = 6400 : ypos = 2560
xspd =   64 : yspd =    0
 
repeat
xpos = xpos + xspd : ypos = ypos + yspd
yspd = yspd + 2
 
if (yspd > 0) and (ypos > 12800)
yspd = -yspd
xspd = rand(512) - 256
endif
 
if xspd > 0
if xpos > 25600 then xspd = -xspd
else
if xpos <  6400 then xspd = -xspd
endif
 
exec movepm : ' move p/m graphics
until key()
 
' restore ramtop and sdmctl
poke gractl, 0
poke sdmctl, peek(sdmctl) & 247
poke ramtop, memtop + 4
 
end
 
proc movepm
x = xpos / 128 : y = p0mem + ypos / 128
 
pause 0
poke hposp0, x
move adr(pmclear), oldpos, 5
move adr(pmdata),  y,      5
oldpos = y
endproc
 
 
pm with graphisc 23 and Put/Drawto
 
dlist =560
savmsc=$58
ramadr=$2100
max=3840
 
' p/m test program
ramtop = $6a   : sdmctl = $22f  : pcolr0 = $2c0
hposp0 = $d000 : gractl = $d01d : pmbase = $d407
 
' reserve memory at top
memtop = 200
p0mem  = $100 * memtop + $200
oldpos = p0mem
poke ramtop, memtop
 
gr. 23
color 1
 
dladr=dpeek (dlist)
move dladr,$2000,255
 
dpoke dlist,$2000
dpoke $2000+4,ramadr
dpoke savmsc,ramadr
 
plot 0,0
drawto 159,95
plot 159,0
drawto 0,95
 
for z=0 to 255
poke (ramadr+z),255
next z
 
' activate and configure p/m data
poke p0mem, 0 : move p0mem, p0mem+1, 127 : ' clears memory
poke pcolr0, $1f
poke sdmctl, peek(sdmctl) ! 8
poke pmbase, memtop
poke gractl, 2
 
' p/m data and blank (to clear p/m)
data pmdata()  byte = $38,$44,$54,$44,$38
data pmclear() byte = $00,$00,$00,$00,$00
 
' initial conditions
xpos = 6400 : ypos = 2560
xspd =   64 : yspd =    0
 
repeat
xpos = xpos + xspd : ypos = ypos + yspd
yspd = yspd + 2
 
if (yspd > 0) and (ypos > 12800)
yspd = -yspd
xspd = rand(512) - 256
endif
 
if xspd > 0
if xpos > 25600 then xspd = -xspd
else
if xpos <  6400 then xspd = -xspd
endif
 
exec movepm : ' move p/m graphics
until key()
 
' restore ramtop and sdmctl
poke gractl, 0
poke sdmctl, peek(sdmctl) & 247
poke ramtop, memtop + 4
 
end
 
proc movepm
x = xpos / 128 : y = p0mem + ypos / 128
 
pause 0
poke hposp0, x
move adr(pmclear), oldpos, 5
move adr(pmdata),  y,      5
oldpos = y
endproc
 
greeting

Attached Files


Edited by funkheld, Thu Sep 13, 2018 2:00 PM.


#13 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Thu Sep 13, 2018 11:28 AM

..........................................................................

Attached Files


Edited by funkheld, Thu Sep 13, 2018 1:55 PM.


#14 phaeron OFFLINE  

phaeron

    River Patroller

  • 2,599 posts
  • Location:Bay Area, CA, USA

Posted Thu Sep 13, 2018 9:49 PM

The OS boot loader can't load executables, it only loads a block of data. The first boot sector gives the load address and the total number of sectors to load. Single and enhanced density disks can load up to 32K. Double density disks can only load 384 bytes, so they need a two-stage boot. Your best bet is to use DOS or a mini-DOS and have it load your program as AUTORUN.SYS.



#15 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Fri Sep 14, 2018 7:43 AM

Hi good afternoon.
gr. 8 + 16 does not work with graphics and text with
fastbasic
 
greeting

 

 

' Graphics sample
gr. 8+16
color 1
 
' Sample line drawing
for i=0 to 100 step 3
 plot 100-i,0
 dr. 0,i
next i
 
' Plotting a function (in FP)
for i=120 to 300
 y% = i * 0.05 - 11
 y% = y% * y% * (y% + 5)
 plot i, 160 - int(y%)
next i
 
print "test"
 
repeat
until Key()


#16 baktra OFFLINE  

baktra

    Dragonstomper

  • 533 posts
  • Location:Czech republic

Posted Fri Sep 14, 2018 8:03 AM

I would expect that the print"test" statement will kick you back to graphics 0, but that's how it should work.

 

GRAPHICS 8+16 will switch to graphics mode 8 - finest resolution and +16 indicates no text window (four text lines at the bottom).
Therefore the PRINT statement has no choice, but to switch back to GRAPHICS 0.

 

You cannot use the print statement to print text to a graphics mode. FastBasic doesn't have a special command that would allow you to draw text to a graphics mode.

 

Next time, please be more specific when describing what exactly happened (symptoms). 


Edited by baktra, Fri Sep 14, 2018 8:13 AM.


#17 baktra OFFLINE  

baktra

    Dragonstomper

  • 533 posts
  • Location:Czech republic

Posted Fri Sep 14, 2018 8:33 AM

If you don't mind a cross-platform solution, look here: http://www.horus.com/~hias/atari/

 

You are looking for dir2atr and Picoboot. The two tools can create an .atr image that contains a single binary load file (.xex) together with a special bootloader that loads and executes the binary load file. So you insert the disk, power-on the computer and the .xex file loads automatically. 

 

Provided that you installed the dir2atr tool, you can execute a simple batch file that will create your auto-starting disk

@ECHO OFF

REM Create directory with disk contents
mkdir disk_contents

REM Copy the xex file to the disk_contents directory
copy mygame.xex disk_contents\MYGAME.COM

REM Create bootable disk
dir2atr.exe -b PicoBoot405 720 "MyGameDisk.atr" disk_contents
pause


#18 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Fri Sep 14, 2018 8:40 AM

hello, thanks.



#19 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Fri Sep 14, 2018 12:10 PM

hello, thanks for the help.

 

 

greeting.



#20 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Fri Sep 14, 2018 2:17 PM


Your best bet is to use DOS or a mini-DOS and have it load your program as AUTORUN.SYS.

 

where is there a minidos please

 

greeting.



#21 baktra OFFLINE  

baktra

    Dragonstomper

  • 533 posts
  • Location:Czech republic

Posted Fri Sep 14, 2018 3:17 PM

"MiniDOS" is a general term. It denotes any miniature DOS that can just load a binary load file. PicoBoot is also one of the "MiniDOSes"

Try MICRODOS II

 

1. Prepare an ATR image with just your binary load file

2. Boot MICRODOS II from its disk image

3. Insert the image prepared in step 1

4. Enter information you are prompted for

5. MICRODOS II will write a boot loader to your disk image

 

Then you can boot from your disk image.



#22 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Sat Sep 15, 2018 2:00 AM

hello, thanks.

 

greeting.



#23 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Sat Sep 15, 2018 6:35 AM

Hi good afternoon.
 
if you play with your own dl you can the memory
Set to ramtop (208) is the hiaddress $ CFFF.
 
this triumphs for all your own dl.....!!!
if you play with players you can go down to ramtop(200).
 
I do not notice any problems at the moment
all graphics and players are alright.
 
by me is:
 
FEATURES {
    STARTADDRESS: default = $3000;
MAIN:    file = %O, define = yes, start = %S,    size = $CFFF - %S;
 
greting.
 
 
 
dlist =560
savmsc=$58
ramadr=$2100
 
data dldat() byte = $70, $70, $70, $46, 
data          byte = $00,$21,
data          byte = $06, $06, $06, $06, $06, $06, $06, $06, $06, $06,
data          byte = $06, $06, $06, $06, $06, $06, $06, $06, $06, $06, 
data          byte = $06, $06, $06, $41, $00, $20 
 
dladr=adr(dldat)
move dladr,$2000,255
 
dpoke dlist,$2000
dpoke savmsc,ramadr
 
for i= 0 to 5
print "es geht";
next i
 
repeat
until key()
 
end

Edited by funkheld, Sat Sep 15, 2018 11:48 AM.


#24 Wrathchild OFFLINE  

Wrathchild

    River Patroller

  • 2,111 posts
  • Location:Reading, UK.

Posted Sat Sep 15, 2018 9:58 AM

I like the enthusiasm in your learning...

 

One thing to note to avoid confusion for others, the term 'dli' refers to Display List Interrupt - which you are not implementing here, therefore you should refer to just 'DL', 'Display List' or 'dlist'.



#25 funkheld OFFLINE  

funkheld

    Moonsweeper

  • Topic Starter
  • 370 posts

Posted Sat Sep 15, 2018 11:37 AM

this is  "display list". (dl)

 
greeting

Edited by funkheld, Sat Sep 15, 2018 1:42 PM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users