From a conversation in the channel #mhm:
alone_с> in your demos, code generators are overwritten after
uses?
mel> where as
alone_с> and how the source is made - all the initializers are in the main
module or in separate modules?
mel> First of all, we have developed a kernal. from address #SbSb dial
standard procedures
mel> demo works on the ctekobomy principle
mel> the beginning of the stack is at the end of the kernal code
mel> on the stack are the addresses of transitions to procedures and parameters
ibid.
alone_с> #5bxx?
alone_сo> there's not enough space there
mel>large kernel. approximately #SbSb-#6000
alone_сo> what about the disk?
mel> loader does not use 3d13
Mel> in xapme, by the way, there is a key 3d13
mel> the variables are simply remembered there in advance
Mel> all tbk demos, starting with harm, are built on this kernal.
nr too
mel> thanks to him, xapme was able to combine storm and tasm
mel> in xapme, since 2d and 3d parts alternate,
both I and cj do not have initializers
alone_с> what are the standard procedures?
mel> well, first of all, interruptions
mel>then rasnakovichik crunch 1
Mel> slightly accelerated
alone_с> interrupts - what do you mean?
mel> handler
alone_с> and the table?
alone_с> and switch
alone_с> and switch
Mel> everything is there. and effects player
mel> even part of the c2n is stuck in xapme
alone_с> what effects?
mel> the offset is stored on the stack in frames, how long it lasts
effect
mel> in the loop the effect code is called and checked to see if it's time
round up
mel> zxboleg.narod.ru/kernel.tsm (click "3" )
mel> this is from harm
mel> a lot of unnecessary stuff was removed from there later
mel> in general, as practice has shown, it’s not difficult to debug with it
mel> the effect includes a file with equs and specially
compiled kernel for debugging
mel> The only thing I haven’t solved is how to fix the demo...
stupidly you have to scroll and watch from the beginning until the desired effect,
isn't he running away?
mel> in xapme, by the way, in the 2d parts the code ts2n is generated for output
with mask
mel> automatic
mel> cj already translated kernal into sjasm
Mel> their last two demos are already written there
Mel> I'm doing everything the old fashioned way... I can't handle just switching to another
asm
alone_с> I'm thinking right now about the overwriting of code generators
alone_co> I want a c2n module mel> write it down
alone_сo> the trick is that the only way I see is this
throw the generator into another memory area when starting
alone_с> besides, it needs a macro
alone_сo> otherwise the symbol will not be declared where needed and when needed
alone_сo> well, imagine - we have a code with #8000
alone_сo> there are many procedures there
alone_co> and at the end - these generators
alone_co> and they generate in the area immediately adjacent to
end of code
alone_с> preferably right from the place where you are
generators are located
alone_с> that is, yourselferase
alone_с> where to put INCLUDE?
mel> aa
mel> smari
Mel> you can keep the code for what current in the jar
mel> and worker in main memory
Mel> here is the 3d part
mel> there is a code in #c000. +0 initialization before demo launch
mel> +3 initialization before the effect
mel> +6 output of one frame
mel> +9 deinitialization
mel> about thisalone_с> and if you need to generate something on a page
alone_сo> for c2n you need
alone_с> chunk board
mel> what problems
mel> kernal incl. decides
alone_с> through dirt?
alone_с> need to think...
mel> some of the operations are directly embedded in the kernal stack
mel> part in the initializer
alone_с> what if there are a lot of effects?
alone_сo> how will the main code receive their addresses?
alone_с>in the sense of the mark
mel> tags are included
mel> alone_saw the link - did I give it to the kernel?
mel> there at the beginning jp
alone_сo> FINAL - what is this?
mel>almost the same as release
alone_сo> what kind of PROFI is there?
mel> saving system variables to the top of memory
Mel> I tested it on a professional...
Mel> look at the very end. the whole demo is written there..
mel> this compiles in tacme 4.12 :)
alone_с> .PLAYER when is it called?
mel> at the end, where defw
alone_с> .PLAYER is in the script - it comes out, calls it
uhtepnpetyh
alone_с> where is he?
mel> find by search
mel> after interruptions it
alone_co> know what to look for
mel> word .PLAYER )
alone_сo> so it is in the current script
alone_с> and the start marks of the netuti script
mel> .PLAYER ; effectmel> ; in: (sp)2 - frames number then nlay
mel> ;-in: (sp+2)2 - main cycle address of effect
alone_co> who calls it
alone_co> or do the player and loader call each other?
mel> at the end you see a bunch of defb defw?
alone_с> is this a script?
mel> IT'S A STACK!
mel> sp crawls along it
alone_сo> when the player plays the effect, it is delayed by
several frames
alone_co> Is this corrected later?
mel> ha
mel> more precisely, a little less frames are given
mel> for 2d parts 4 frames plus or minus
alone_сo> the stack will be erased - but how to play a second time?
mel> no
mel> store/load a copy
Share your thoughts about the article