xxl Posted August 13, 2013 Share Posted August 13, 2013 do not share a source of this example because it will be part of one of my next projects. but its rather simplem, in Fox's inflate lib replace: lda (inputPointer),y inw inputPointer by this: stx inputPointer jsr xBIOS_GET_BYTE ldx inputPointer ldy #$00 so decompresor fetch data from current position in opened file source of decompresor part of file on fly do like this: icl "inflate.asm" org $0600 init @ lda vcount bne @- lda #$0f ; gr.15 jsr $ef9c ; illegal call lda SAVMSC sta inflate_zp+2 ; destination in memory lda SAVMSC+1 sta inflate_zp+3 jsr inflate ; now fetch data from current position in file jmp xBIOS_BINARY_LOAD ; this is nice, ; do binary load from current position in file * ini init opt h-l+o+ ; compressed data without binary file header ins 'mostek.df7' opt h+l+o+ org $0600 ; * start jmp start ; run adres run start 1 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted August 13, 2013 Share Posted August 13, 2013 Xxl... I mean the dli plus loading screen Quote Link to comment Share on other sites More sharing options...
Tezz Posted August 13, 2013 Share Posted August 13, 2013 (edited) Is it the dli bars or the g2f loaders you're looking at Karolj? zeppelin_ed.atr xb.atr Edited August 13, 2013 by Tezz 1 Quote Link to comment Share on other sites More sharing options...
xxl Posted August 13, 2013 Share Posted August 13, 2013 I suggest use a much better and richer in features ver.1.5 http://xxl.atari.pl/download/xbios.atr Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted August 14, 2013 Share Posted August 14, 2013 xxl, Tezz... thanks... exactly what I am looking for... Tezz, while having DLIs running... is there anything I need to know or does xbios take the rest? So... more to say... f.e. for Gridrunner I could simply paste your G2F Screen before the main screen? INIT into the G2F and exit it with DLIs on? Or where is the magic? any simple ASM example? it is for an production of mine and could be used for Gridrunner, too. Quote Link to comment Share on other sites More sharing options...
Tezz Posted August 14, 2013 Share Posted August 14, 2013 (edited) The g2f needs to be pulled apart and reworked for your ini segment. We can load low with xbios... ; XBIOS Memory Map: ; $0000-$00ff ; $0100-$01ff ; $0200-$06ff ; $0700-$07ff ; buffer used during I/O - relocatable (can be anywhere) ; $0800-$0bff ; xBios ; $0c00-$cfff ; $d000-$d7ff ; Atari HW ; $d800-$ffff initial dma off segment.. org $c00 load lda:cmp:req $14 sei mva #0 nmien sta dmactl sta $22f mva #$ff portb rts ini load ;----------------------------------------------------------------------------- org $480 launch ; game setup/run procs ...(I have mine exo packed so we have plenty of spare mem for the loading pic/intro rework the g2f... pic mva #>pmg pmbase mva #3 pmcntl mva #0 colbak mva #$fe portb ; *if required mwa #nmi $fffa ; depack rle pmg data here .. mva #$c0 nmien rts ; end segment ;----------------------------------------------------------------------------- fonts, screen ram, antic program, pmbase etc. below main prog exo manually edit the dli ... ; dli saves/restores via self mod rather than zp. *Do not use x or y regs to save time... drop any unnessasary wsyncs .align $100 ; page align (keep an eye on crossing pages if it's a long dli) dli1 sta saveA1+1 sta wsync mva #$14 color0 mva #$2a color1 mva #$86 color2 mva #<dli2 dlinext saveA1 lda #0 rti dli2 sta saveA2+1 sta wsync mva #>fnt1 chbase mva #<dli3 dlinext saveA2 lda #0 rti etc.. ; vbl saves/restores via self mod again. only Acc is required nmi sta vbisaveA+1 bit nmist bpl vbl jmp dli1 dlinext equ *-2 vbl sta nmist ; initial register changes here .. *g2f sets all initial registers at vbl so move the registers that are not changed during dli to the pic setup instead mwa #antic dlptr mva #$3e dmactl mwa #dli1 dlinext vbisaveA lda #0 rti ;---------------------------------------------------- ; rle sprite data here ;---------------------------------------------------- ini pic ;---------------------------------------------------- org $xxx ; above intro loader insert game exo data here ;---------------------------------------------------- run launch ;---------------------------------------------------- Edited August 14, 2013 by Tezz Quote Link to comment Share on other sites More sharing options...
Tezz Posted August 14, 2013 Share Posted August 14, 2013 I suggest use a much better and richer in features ver.1.5 http://xxl.atari.pl/download/xbios.atr It's been a few months now Thanks, I'll grab the latest build. Quote Link to comment Share on other sites More sharing options...
Tezz Posted August 14, 2013 Share Posted August 14, 2013 Here's the DLI raster bars with music player and picture depacking during disk load... The music player is lifted from the Bitter Reality demo loader btw, it was ideal for putting an example together. XBIOS takes care of AUDCTL. xIRQEN equ $bf6 ; IRQ usera xx00 0xxx xAUDCTL equ $bf8 ; dla AUDCTL xBIOS equ $800 xBIOS_MAGIC equ xBIOS xBIOS_VERSION equ xBIOS+$02 xBIOS_RENAME_FILE equ xBIOS+$03 xBIOS_LOAD_FILE equ xBIOS+$06 xBIOS_OPEN_FILE equ xBIOS+$09 xBIOS_LOAD_DATA equ xBIOS+$0c xBIOS_WRITE_DATA equ xBIOS+$0f xBIOS_LOAD_DIR equ xBIOS+$12 xBIOS_GET_BYTE equ xBIOS+$15 xBIOS_PUT_BYTE equ xBIOS+$18 xBIOS_FLUSH_BUFFER equ xBIOS+$1b xBIOS_SET_LENGTH equ xBIOS+$1e xBIOS_NOTE equ xBIOS+$21 xBIOS_POINT equ xBIOS+$24 xBIOS_SET_PARAMS equ xBIOS+$27 xBIOS_SET_CURRENT_DEVICE equ xBIOS+$2A xBIOS_CHANGE_DIRECTORY equ xBIOS+$2D xBIOS_BINARY_LOAD equ xBIOS+$30 bars equ $00 barcol equ $f0 ; 8 bytes speed equ $fb HTD_IN equ $fc ; fd zegar equ $fe line_count equ $ff tlo equ $0600 font_base equ $e000 opt h+o+l+ icl 'equates' org $c00 antic :1 .byte $70 .byte $40+$0d+$80,<ekr,>ekr :100 .byte $0d+$80 .byte $10,$06+$40,<text,>text .byte $41,<antic,>antic sine dta sin(46,46,128,0,255) ekr equ $2000 text .byte d'test ',d'TEST test '* start sei lda #0 sta nmien sta dmactl sta line_count tax @ sta $00,x dex bne @- lda #$ff ldy #$2f _nxte1 sty _nxte+2 _nxte sta $2000,x dex bne _nxte dey cpy #$1f bne _nxte1 lda #$fe sta portb jsr copy_fnt lda #<NMI sta $fffa lda #>NMI sta $fffb lda #$18 sta barcol lda #$38 sta barcol+1 lda #$58 sta barcol+2 lda #$78 sta barcol+3 lda #$98 sta barcol+4 lda #$b8 sta barcol+5 lda #$d8 sta barcol+6 lda #$f8 sta barcol+7 mwa #antic dlptr lda #>font_base sta chbase ldx #0 ;94 ;23 barbackgnd txa ;lda #4 ; reset logo background colour on all 24 scanlines lsr @ lsr @ lsr @ ;lsr @ ora #$01 sta bars,x sta tlo-6,x inx cpx #100 bne barbackgnd @ sta tlo-6,x inx cpx #106 bne @- lda #$0f sta colpf0 @ lda vcount bne @- mva #34 dmactl mva #$C0 nmien rle_depacker loop jsr getByte cmp #0 beq stop lsr @ tay lp0 jsr getByte lp1 sta $2000 outputPointer equ *-2 inw outputPointer dey _bpl bmi loop bcs lp0 bcc lp1 getByte sty _sY+1 php jsr xBIOS_GET_BYTE _sY ldy #$ff plp rts stop jmp xBIOS_BINARY_LOAD ; rts copy_fnt ldx #3 ldy #0 _cfont inc portb ; ff _csrc lda $e000,y dec portb ; fe _cdst sta font_base,y dey bne _cfont inc _csrc+2 inc _cdst+2 dex bpl _cfont rts ; ----------------------------------- dli1 sta saveA1+1 stx saveX1+1 ldx line_count lda bars,x inc line_count sta wsync sta colbak lda tlo,x ;#$04 sta bars,x saveA1 lda #0 saveX1 ldx #0 rti ; ----------------------------------- NMI bit nmist bpl VBL jmp dli1 dli_select equ *-2 VBL sta vbisaveA+1 stx vbisaveX+1 sty vbisaveY+1 jsr xBIOS_NOTE sty HTD_IN stx HTD_IN+1 ldy #16 lda HTD_IN+1 jsr puthex lda HTD_IN jsr puthex inc zegar lda #0 sta line_count ldy #3 ; 7 _nxtbar lda zegar clc adc przesuniecie,y tax lda sine,x tax lda barcol,y sta bars,x ;1000 sta bars+6,x ;1000 ora #2 sta bars+1,x ;1010 sta bars+5,x ;1010 eor #6 sta bars+2,x ;1100 sta bars+4,x ;1100 ora #2 sta bars+3,x ;1110 dey bpl _nxtbar lda speed ; simple audio seq bne wp loadpat ldx #0 lda pat,x bmi pass asl @ asl @ asl @ asl @ sta wp+1 pass inx txa and #$3f sta loadpat+1 wp ldx #0 lda ins,x sta audc1 lda frq,x sta audf1 inc wp+1 dec speed bpl pass2 lda #5 sta speed wp1 lda #$20 ;0010 0000 sta pass2+1 eor #$60 ;0110 0000 sta wp1+1 pass2 ldx #0 lda ins,x sta audc2 inc pass2+1 vbisaveA lda #0 vbisaveX ldx #0 vbisaveY ldy #0 rti puthex pha lsr @ lsr @ lsr @ lsr @ jsr nibble pla and #$0f nibble cmp #$0a sed adc #$10 cld sta text,y iny rts przesuniecie .byte 42,36,30,24,18,12,6,0 ins dta $0F,$AF,$AC,$A7,$A2,$00,$04,$A3 dta $22,$21,$A1,$00,$00,$00,$00,$00 dta $AF,$AF,$09,$07,$05,$04,$04,$03 dta $03,$03,$02,$02,$02,$01,$01,$00 dta $87,$84,$83,$82,$81,$00,$00,$00 dta $00,$00,$00,$00,$00,$00,$00,$00 dta $84,$84,$84,$84,$84,$84,$83,$83 dta $83,$83,$82,$82,$81,$81,$00,$00 dta $83,$82,$81,$81,$81,$00,$00,$00 dta $00,$00,$00,$00,$00,$00,$00,$00 frq dta $04,$C0,$D0,$E0,$F0,$00,$04,$C0 dta $D0,$E0,$F0,$00,$00,$00,$00,$00 dta $98,$A8,$03,$03,$03,$03,$03,$03 dta $03,$03,$03,$03,$03,$03,$03,$03 dta $00,$00,$00,$00,$00,$00,$00,$00 dta $00,$00,$00,$00,$00,$00,$00,$00 dta $00,$00,$00,$00,$00,$00,$00,$00 dta $00,$00,$00,$00,$00,$00,$00,$00 pat dta $00,$80,$00,$80,$01,$80,$00,$00 dta $80,$00,$00,$80,$01,$80,$03,$80 dta $00,$80,$00,$80,$01,$80,$02,$02 dta $00,$80,$01,$01,$80,$00,$03,$80 dta $00,$80,$00,$80,$01,$80,$00,$00 dta $80,$00,$00,$80,$01,$80,$03,$80 dta $00,$00,$00,$80,$01,$00,$00,$80 dta $00,$80,$01,$01,$80,$00,$01,$00 ini start ; nmi loader intro segment opt h- org * ins 'loading.rle' opt h+ org $3000 ; ins 'loading.mic',0,$fc8 :$7000 .byte $ff ; create 28k for false loading of data run_adr jmp run_adr ; endless loop run run_adr Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 14, 2013 Share Posted October 14, 2013 @Tezz I am throwing stuff together for Silly Venture and wanted to use xbios... so actually... what do I need to do in terms of using xbios? simply use the ATR? and put my demo parts on the disc? can I hide the directory or at least put all data files into folders? Sorry, but XXL's descritptions are too advanced for me and the translator does not work properly or alternative is to have 1 huge XEX file where each part exits with RTS ("back to dos"). Quote Link to comment Share on other sites More sharing options...
xxl Posted October 14, 2013 Share Posted October 14, 2013 rather translator does not work properly. what do you want me to explain about using xB? > Can I hide the directory or at least put all data files into folders? yes, you can put all data files into subdirectory, but why hide directory? it is possible, but regular DOS will not be able to copy these files. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 14, 2013 Share Posted October 14, 2013 xxl: in an ideal world my scenario: booting ATR will boot automaticly xbios. after loading xbios it will load my files automaticly... and in my demo (maybe 1 long exe-file) I will exit each parts simply with RTS and xbios continues to load the segments until next INI/RUN as normal game-dos will do. why hiding the directory? because it is a demo and will only run with xbios help? --> look at the Joyride-Demo-Directory ;=) Quote Link to comment Share on other sites More sharing options...
Tezz Posted October 14, 2013 Share Posted October 14, 2013 as xxl says you have every option with his xb, you can have individual files in subdirectories, you can also autorun to avoid displaying the xb menu, or like you said you can create a single segmented executable btw .. @ xxl what did you use to lz4 pack your gfx data? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 14, 2013 Share Posted October 14, 2013 and I want to use xbios because of the 61kb feature and not using IRQ/NMIs so I can use DLIs and copy by DOS I don't care as in a "oldscool" world it will be put on a 5,25 Disc anyway... to be copied by sector copy 1 Quote Link to comment Share on other sites More sharing options...
Tezz Posted October 14, 2013 Share Posted October 14, 2013 ...maybe 1 long exe-file, I will exit each parts simply with RTS and xbios continues to load the segments until next INI/RUN as normal game-dos will do. Yes, exactly Quote Link to comment Share on other sites More sharing options...
Tezz Posted October 14, 2013 Share Posted October 14, 2013 and I want to use xbios because of the 61kb feature and not using IRQ/NMIs so I can use DLIs It really is the best option, I'm using it for everything I'm working on. Thanks to the xb library we no longer need to write our own custom loaders. With multi-loads without any gfx display/music duing loading etc. I will also create executables for modern high speed storage devices. Quote Link to comment Share on other sites More sharing options...
Creature XL Posted October 14, 2013 Share Posted October 14, 2013 It really is the best option, I'm using it for everything I'm working on. Thanks to the xb library we no longer need to write our own custom loaders. With multi-loads without any gfx display/music duing loading etc. I will also create executables for modern high speed storage devices. Only disadvantage is that you have to use ATR and not XEX anymore. However, for my next game (if ever) I use xBIOS as well. maybe even for the ExtendedEdition of "HeliCave" for savegames. Quote Link to comment Share on other sites More sharing options...
xxl Posted October 14, 2013 Share Posted October 14, 2013 (edited) > booting ATR will boot automaticly xbios. after loading xbios it will load my files automaticly... download this: http://xxl.atari.pl/download/xbios.atr this automatically boot xB. or if you want make your own .atr up to 16MB with subdirectories, here are boot loaders and xB: http://xxl.atari.pl/download/boot128.obx http://xxl.atari.pl/download/boot256.obx http://xxl.atari.pl/download/xbios.com use what you want now, copy your demo as "xautorun" - this is autorun filename for xbios > and in my demo (maybe 1 long exe-file) I will exit each parts simply with RTS and xbios continues to load the segments until next INI/RUN as normal game-dos will do. yes, of course. if you "kill" stack then use "jmp xBIOS_BINARY_LOAD" instead "rts" to load next part. OS can by off and all zeropage utilize by your program all the time. you can move back/forward "file pointer" and boot from different part of your file either. > why hiding the directory? because it is a demo and will only run with xbios help? --> look at the Joyride-Demo-Directory ;=) as you want... xB use all 256 chars for file/directory names - use "xBIOS_RENAME_FILES" or... delete VTOC or... use non standard directory place ... there are many possibilities > what did you use to lz4 pack your gfx data? http://fastcompression.blogspot.com/p/lz4.html for windows > I will also create executables for modern high speed storage devices. and cartridges... > maybe even for the ExtendedEdition of "HeliCave" for savegames. look at how DeathchaseXE save scores :-) in DC file - you can rename or move game to another directory or even on cart and this function will work. Edited October 14, 2013 by xxl Quote Link to comment Share on other sites More sharing options...
xxl Posted October 14, 2013 Share Posted October 14, 2013 Only disadvantage is that you have to use ATR and not XEX anymore. no, you can put your game and xbios.com together in one subdirectories on disk and start it from regular DOS. 1 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 14, 2013 Share Posted October 14, 2013 sounds really cool... @Tezz what do you mean "creating exe" files for modern high speed devices? @xxl btw. how is the SIO working internally? as you are not using any IRQ/NMI how are you talking to all the different devices? by "polling" pokey? but how do you get the different speeds then? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 14, 2013 Share Posted October 14, 2013 @xxl and is there anything I need to know regarding DLIs using while loading? Quote Link to comment Share on other sites More sharing options...
Tezz Posted October 14, 2013 Share Posted October 14, 2013 @Tezz what do you mean "creating exe" files for modern high speed devices? Just regular segmented executables and/or separate files without anything actively running during loading as we are able to do disk based at standard 19200 baud. Quote Link to comment Share on other sites More sharing options...
xxl Posted October 14, 2013 Share Posted October 14, 2013 and is there anything I need to know regarding DLIs using while loading? with standard speed, use it every second line not often. Quote Link to comment Share on other sites More sharing options...
Tezz Posted October 14, 2013 Share Posted October 14, 2013 (edited) thanks xxl, I added the LZ4 compressed picture to the Chimera NTSC fixed version tonight. http://www.youtube.com/watch?v=-woXW5v6-bI I'm working on finishing off Chimera+ at the moment which will include a complete rewrite of the screen and sprite drawing procedures with the method Shahid used on the other 8-bit platforms which will significantly optimise game play performance. I'm adding in the missing features also such as the samples and the Rob Hubbard music with a recreation of the c64 title screen, directional joystick controls, independently coloured spaceman sprite and the hi-res loading picture that was included on the other platforms also. Edited October 14, 2013 by Tezz 1 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 15, 2013 Share Posted October 15, 2013 Tezz... regarding the LZ4 picture... well... are you sure to build the screen up like loading from tape scanline by scanline? Quote Link to comment Share on other sites More sharing options...
Tezz Posted October 15, 2013 Share Posted October 15, 2013 Tezz... regarding the LZ4 picture... well... are you sure to build the screen up like loading from tape scanline by scanline? yea I think it's ok to see the screen progress on during loading as it was most often with the Speccy and c64, it's something slightly more interesting then having a blank screen until the pic has fully loaded I guess. The cassette loader (iirc) progressed on shifting data from the centre of the display. It wasn't often for cassette releases to have a loading pic on the A8. This will just be for this ntsc patched version of the original release of course as the revamp will have the rastered hi-res pic in a segmented and packed executable. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.