Jump to content

funkheld's Photo

funkheld

Member Since 8 Nov 2011
OFFLINE Last Active Today, 5:17 AM

#4115244 display list interrupt with fastbasic ?

Posted by funkheld on Mon Sep 17, 2018 9:23 AM


Hello.
now it worked with the dli with several lines.
asm-compiler is atasm.exe
 
 created with my purebasicprogram from the bin data  :
--------------------------------------------------------------------------------------------
data dli() byte =$48, $8A, $48, $A9, $01, $8D, $0A, $D4, $A9, $C5, 
data      byte =  $8D, $1A, $D0, $8D, $0A, $D4, $8D, $0A, $D4, $8D, 
........
----------------------------------------------------------------------------------------------
 
Thank you.
greeting
 

asm-daten:

    * = start
pha
txa
pha
lda #1
sta $d40a
lda #$c5
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
lda #$89
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
lda #$41
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
lda #$69
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
lda #$0
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
lda #$89
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
lda #$0
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
lda #$a9
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
lda #$0
sta $d01a 
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
sta $d40a
pla
tax
pla
rti
 
[code=auto:0]
dlist =560
savmsc=$58
ramadr=$2000
 
data dli() byte =$48, $8A, $48, $A9, $01, $8D, $0A, $D4, $A9, $C5, 
data      byte =  $8D, $1A, $D0, $8D, $0A, $D4, $8D, $0A, $D4, $8D, 
data      byte =  $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, 
data      byte =  $D4, $8D, $0A, $D4, $8D, $0A, $D4, $A9, $89, $8D, 
data      byte =  $1A, $D0, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, 
data      byte =  $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, 
data      byte =  $8D, $0A, $D4, $8D, $0A, $D4, $A9, $41, $8D, $1A, 
data      byte =  $D0, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, 
data      byte =  $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, 
data      byte =  $0A, $D4, $8D, $0A, $D4, $A9, $69, $8D, $1A, $D0, 
data      byte =  $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, 
data      byte =  $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, 
data      byte =  $D4, $8D, $0A, $D4, $A9, $00, $8D, $1A, $D0, $8D, 
data      byte =  $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, 
data      byte =  $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, 
data      byte =  $8D, $0A, $D4, $A9, $89, $8D, $1A, $D0, $8D, $0A, 
data      byte =  $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, 
data      byte =  $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, 
data      byte =  $0A, $D4, $A9, $00, $8D, $1A, $D0, $8D, $0A, $D4, 
data      byte =  $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, 
data      byte =  $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, 
data      byte =  $D4, $A9, $A9, $8D, $1A, $D0, $8D, $0A, $D4, $8D, 
data      byte =  $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, 
data      byte =  $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, 
data      byte =  $A9, $00, $8D, $1A, $D0, $8D, $0A, $D4, $8D, $0A, 
data      byte =  $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, 
data      byte =  $8D, $0A, $D4, $8D, $0A, $D4, $8D, $0A, $D4, $8D, 
data      byte =  $0A, $D4, $68, $AA, $68, $40
 
data dldat() byte = $70, $70, $70, $4d, 
data          byte = $00,$20,
data          byte = $8D, $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 
 
dladr=adr(dldat)
poke dladr+103,dladr
 
dpoke dlist,dladr
dpoke savmsc,ramadr
 
dpoke 512, ADR(dli)     
poke 54286, 192         
 
repeat
until key()
 
end
[code=auto:0]
 

Attached Thumbnails

  • Bild2.jpg



#3312493 VSCROLL with MAD-Pascal-

Posted by funkheld on Tue Sep 1, 2015 1:55 PM

here is the VSCROLL with MAD-Pascal:

var
dlist: array [0..6] of word;
  z: byte;
    
procedure InitDlist(a: word);
begin
  dlist[0]:=$7070; dlist[1]:=$4270; 
  dlist[2]:=$9060;
  dlist[3]:=$2222; dlist[4]:=$0041;
  dlist[5]:=a; 
end;
 
begin
  InitDlist(word(@dlist));
  DPoke(560,word(@dlist));
  
  for z:=0 to 39 do begin
    Poke($9060+z+39,z);
  end;
  
  repeat
    for z:=0 to 7 do begin
      Poke($d405,z);
      delay(2000);
    end;
    
    Poke($d405,0);
     
    for z:=0 to 7 do begin
      Poke($d405,7-z);
      delay(2000);
    end;
  until 0;
 
end.



#3293343 MAD Pascal : ASM File get ?

Posted by funkheld on Wed Aug 5, 2015 10:58 AM

now it's working :

 

lda <file       >>>>>> lda #<file  !!!!!!
sta icbadr
,x
lda
>file      >>>>>> lda #>file  !!!!!!!
sta icbadr
+1,x

 

 

thank you.

greeting




#3288991 MAD Pascal : 4 lines of text a displayList.

Posted by funkheld on Thu Jul 30, 2015 7:26 AM

the poke is to test for the beginning address: 36960 :
 
Poke(36960,129);
Poke(36962,255);
Poke(36964,129);
it works for me with the circle.
 
The photo above is from the MIST and the VGA monitor and one photo from altirra-emu.
 
greeting
 
 
var
dlist: array [0..110] of byte;
  dl_idx: word;
  screen: word;
  z: byte;
    
procedure DLByte(a: byte);
begin
  Poke(dl_idx, a);
  inc(dl_idx);
end;
 
procedure DLWord(a: word);
begin
  DPoke(dl_idx, a);
  inc(dl_idx, 2);
end;  
 
procedure InitDlist(a: word);
begin
  DLByte($70); DLByte($70); DLByte($70); DLByte($4d);
  DLWord(36960);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);DLByte($0d);
  DLbyte($42);DLWord($bc40);
  DLByte($02);DLByte($02);DLByte($02);
  DLByte($41); DLWord(a);
end;
 
begin
  dl_idx:= word(@dlist);
  
  InitDlist(word(@dlist));
  
  InitGraph(7);   
  DPoke(560,word(@dlist));
  DPoke($58,36960);
  
  SetColor(1);
  MoveTo(0,0);
  LineTo(159,95);
  
  SetColor(2);
  MoveTo(159,0);
  LineTo(0,95);
  
  SetColor(3);
  Circle(80,48,45);
  
  SetColor(3);
  Circle(80,48,25);
  
  Poke(36960,129);
  Poke(36962,255);
  Poke(36964,129);
 
  for z:=0 to 140 do begin
    DPoke($bc40+z,z);
  end;
  
  repeat
  until keypressed;
end.
 

Attached Thumbnails

  • altirra.jpg
  • mist.JPG



#3287333 Mad Pascal

Posted by funkheld on Tue Jul 28, 2015 3:01 AM

Hello, this "pasintro" runs with graphics and sound also wonderful on the "MIST"
 
best regards

Attached Thumbnails

  • DSCN3182.JPG
  • DSCN3183.JPG