palmheads Posted March 29, 2015 Author Share Posted March 29, 2015 http://atariage.com/forums/topic/180990-sprite-collision-detection/?fromsearch=1 Here is one of many. Yup think I found how, something like this *------------------------------------------------------------ * VDP read status. Result will be in R0 MSB *------------------------------------------------------------ VRDSTA MOV @>8802,R0 Read status register, resets bits 0-2. B *R11 Delay Just quickly tried it in my code before my proximity checking - sprite collision already feels more accurate cheers Daryn 2 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted March 29, 2015 Share Posted March 29, 2015 Awesome... 1 Quote Link to comment Share on other sites More sharing options...
Tursi Posted March 29, 2015 Share Posted March 29, 2015 Be aware that there are two issues with reading the status register directly from the VDP. The first one is software - every time the status register is read, it clears the sprite collision and vertical interrupt bits. So when you read it manually, there is a chance you can interfere with the interrupt routine (which only matters if you are using it - allowing LIMI 2 in your code). The interference is that sometimes you'll grab the bit, and sometimes it will, all depends who gets there first. If you get it first, the interrupt may not happen on that frame. (No real negative consequences, but if you are using it for motion or music, they may slow down). The second is hardware - if you read the bit at the exact time it is set, the update is sometimes lost. This is usually only an issue for collision if your sprite is only one row tall or only one row collides, since it's pretty much impossible on the TI to interfere with two sequential scanlines in a row. If you aren't using the interrupt routine at all, feel free to carry on as you are - it's just sometimes helpful to have the information above in your back pocket in case you see unexpected behavior later. if you want to work around those issues, AND you /are/ using interrupts, the interrupt routine stores a copy of the status register every frame at >837B - you can read it from there instead of from the VDP directly. (Again, only if interrupts are enabled every frame). Don't be afraid of directly polling - hundreds of programs have run just fine for years doing so. Even Extended BASIC does it that way (for CALL COINC). It's only recently we've really dug down deep enough to start understanding those things. 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted March 29, 2015 Share Posted March 29, 2015 I would suggest to use a routine like this for your main loop timing that also saves the coincidence flag. You need to turn off interrupts (LIMI 0) for this to work. ********************************************************************* * * Wait for vsync * VDPSTA EQU >8802 * VDP status VSYNC MOVB @VDPSTA,R0 * Clear interrupt flag if already set ANDI R0,>2000 MOV R0,@COINC * Save coincidence flag * Wait for next vsync VSYNC1 MOVB @VDPSTA,R0 MOV R0,R1 ANDI R1,>2000 SOC R1,@COINC * Save coincidence flag ANDI R0,>8000 JEQ VSYNC1 * Loop if interrupt flag not set B *R11 *// VSYNC COINC DATA >0000 2 Quote Link to comment Share on other sites More sharing options...
palmheads Posted March 30, 2015 Author Share Posted March 30, 2015 I would suggest to use a routine like this for your main loop timing that also saves the coincidence flag. You need to turn off interrupts (LIMI 0) for this to work. ********************************************************************* * * Wait for vsync * VDPSTA EQU >8802 * VDP status VSYNC MOVB @VDPSTA,R0 * Clear interrupt flag if already set ANDI R0,>2000 MOV R0,@COINC * Save coincidence flag * Wait for next vsync VSYNC1 MOVB @VDPSTA,R0 MOV R0,R1 ANDI R1,>2000 SOC R1,@COINC * Save coincidence flag ANDI R0,>8000 JEQ VSYNC1 * Loop if interrupt flag not set B *R11 *// VSYNC COINC DATA >0000 Awesome Rasmus - wee investigate this snippet more & see how it could integrate with my (shitty) code! cheers Daryn Quote Link to comment Share on other sites More sharing options...
palmheads Posted March 30, 2015 Author Share Posted March 30, 2015 Be aware that there are two issues with reading the status register directly from the VDP. The first one is software - every time the status register is read, it clears the sprite collision and vertical interrupt bits. So when you read it manually, there is a chance you can interfere with the interrupt routine (which only matters if you are using it - allowing LIMI 2 in your code). The interference is that sometimes you'll grab the bit, and sometimes it will, all depends who gets there first. If you get it first, the interrupt may not happen on that frame. (No real negative consequences, but if you are using it for motion or music, they may slow down). The second is hardware - if you read the bit at the exact time it is set, the update is sometimes lost. This is usually only an issue for collision if your sprite is only one row tall or only one row collides, since it's pretty much impossible on the TI to interfere with two sequential scanlines in a row. If you aren't using the interrupt routine at all, feel free to carry on as you are - it's just sometimes helpful to have the information above in your back pocket in case you see unexpected behavior later. if you want to work around those issues, AND you /are/ using interrupts, the interrupt routine stores a copy of the status register every frame at >837B - you can read it from there instead of from the VDP directly. (Again, only if interrupts are enabled every frame). Don't be afraid of directly polling - hundreds of programs have run just fine for years doing so. Even Extended BASIC does it that way (for CALL COINC). It's only recently we've really dug down deep enough to start understanding those things. Will definitely keep this in mind. At the moment this small change seems to have made the collisions way more accurate, even without tweaking the proxmity stuff for a particular sprite - so much fun getting stuff to work! I feel like a game could actually come out of this! cheers Daryn 2 Quote Link to comment Share on other sites More sharing options...
palmheads Posted April 3, 2015 Author Share Posted April 3, 2015 Got another update! Source code attached I implemented the snippet of code Rasmus suggested above for loop timing & sprite collision. Worked great! Have got far more accurate sprite collision thanks to being able to read the status register for collisions. Also was able to remove my dodgy delay loop. Thanks Rasmus! The other thing I was able to figure out was cavern walls. Figured out how to read in the data & display, as well as designing the chars that make them. I have to now figure out how my sprite can trigger a collision with the walls. Thats my next step. Again, thank you everyone for your great advice on this. Been putting in time most days on this, and am enjoying it. cheers Daryn wall2.asm 7 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted April 4, 2015 Share Posted April 4, 2015 Looking good! 2 Quote Link to comment Share on other sites More sharing options...
palmheads Posted April 19, 2015 Author Share Posted April 19, 2015 (edited) Hi all Got my nanoPEB working, so here is a vid of my game working on real hardware. Only a black & white TV until I get my PAL modulator modded for my Commodore 1702 monitor. Am currently working on getting Sprite->wall collision. Have been thinking through what todo. Does this make sense? The main thrust sprite uses VDP 300/301 locations for its position. These locations are HEX The walls are characters. So they are the 32x24 matrix. Bottom right cnr being 768 To register a collision, would I needed to do a HEX-DECIMAL conversion of the VDP 300/301 locations, then test if the resulting location has a character code located there? I think I am on the right track, just confirming this is the right logic? cheers Daryn Edited April 19, 2015 by palmheads 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted April 19, 2015 Share Posted April 19, 2015 I think I am on the right track, just confirming this is the right logic? I'm not sure about the hex-demical stuff. Those number systems are for presentation, but inside the computer the numbers are all the same. What you need to do is to read your sprite position (x,y) into two registers. You can use call @VSBR to read a VDP byte into R1 and then MOV it to the right register. You also need a SWPB to get it into the low byte. Then you can convert the sprite position to a character position by dividing each register by 8 (using SRL Rx,3). To get from a character position to an address in the name table you multiply the y character position by 32 (SLA Rx,5), add the x position, and add the base address of the name table. When you have the name table address you can read the content using @VSBR. Note that you usually don't want to check the location the sprite are at, but a location next to it, so you need to make some adjustments depending on which direction the sprite is moving. This above just a rough sketch. It would be better to keep the sprite position and a copy of the map in CPU RAM at all times, so you don't have to go to the VDP to look it up. There is also an issue with the sprite y position being off by 1 (top row is not 0 but -1) that you have to deal with. 2 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted April 19, 2015 Share Posted April 19, 2015 Good advice... Reading the VDP for boundary checks is similar to using GCHAR in XB. If you have a copy of the map in RAM (as Rasmus suggests) it is much faster and easier to detect. I have a bad habit of using the "screen" to dictate boundaries... It is much better to use your actual "map data" for this purpose... Keep the "display" separate from your determining logic. 2 Quote Link to comment Share on other sites More sharing options...
palmheads Posted April 19, 2015 Author Share Posted April 19, 2015 I'm not sure about the hex-demical stuff. Those number systems are for presentation, but inside the computer the numbers are all the same. What you need to do is to read your sprite position (x,y) into two registers. You can use call @VSBR to read a VDP byte into R1 and then MOV it to the right register. You also need a SWPB to get it into the low byte. Then you can convert the sprite position to a character position by dividing each register by 8 (using SRL Rx,3). To get from a character position to an address in the name table you multiply the y character position by 32 (SLA Rx,5), add the x position, and add the base address of the name table. When you have the name table address you can read the content using @VSBR. Note that you usually don't want to check the location the sprite are at, but a location next to it, so you need to make some adjustments depending on which direction the sprite is moving. This above just a rough sketch. It would be better to keep the sprite position and a copy of the map in CPU RAM at all times, so you don't have to go to the VDP to look it up. There is also an issue with the sprite y position being off by 1 (top row is not 0 but -1) that you have to deal with. Cheers, thanks Rasmus - will see if I can figure this out given your advice. Will report back when done! Thanks mate! Daryn Quote Link to comment Share on other sites More sharing options...
palmheads Posted June 6, 2015 Author Share Posted June 6, 2015 Sorry guys, been a bit lazy lately. Thought I had some sprite/wall collisions working at one stage, but was proved wrong! Still looking at getting it working. cheers Daryn Quote Link to comment Share on other sites More sharing options...
palmheads Posted June 22, 2015 Author Share Posted June 22, 2015 OK made some progress. I know its nowhere near perfect, but at least I have the thrust ship recognising collisions with a least 'some' of the walls! Needs alot more work, but can see some progress. Will continue to work on it. Have a bit more of a handle on how to get this working now. cheers Daryn 9 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted June 23, 2015 Share Posted June 23, 2015 Nice work! This is going to be a sweet game when it's finished 1 Quote Link to comment Share on other sites More sharing options...
CantStopClicking Posted July 21, 2015 Share Posted July 21, 2015 OK made some progress. I know its nowhere near perfect, but at least I have the thrust ship recognising collisions with a least 'some' of the walls! Needs alot more work, but can see some progress. Will continue to work on it. Have a bit more of a handle on how to get this working now. cheers Daryn Wow, great job on your learning assembly. Christ, I've been trying to write my name on the screen in assembly and it's taken me 20+ years. I finally did it the other day! Nothing else worked but I did get that far... Looking forward to your updates and thanks for sharing your progress! -Dano 1 Quote Link to comment Share on other sites More sharing options...
mjnurney Posted July 23, 2015 Share Posted July 23, 2015 Really good work, keep it up - it's a great game. Will getting the gravity correct be hard do you think ? 1 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted July 24, 2015 Share Posted July 24, 2015 @ mjnurney, You have a real interesting Avatar. I love those eyes, and the rest isn't bad either. Quote Link to comment Share on other sites More sharing options...
palmheads Posted July 24, 2015 Author Share Posted July 24, 2015 Really good work, keep it up - it's a great game. Will getting the gravity correct be hard do you think ? Oh yeah, thats gonna be nasty! Gonna have to learn me some maths! cheers Daryn Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted July 24, 2015 Share Posted July 24, 2015 Gonna have to learn me some maths! Gravity is very easy. Assuming you have the vertical speed separated from the horizontal speed, you just have to subtract a constant gravity value from the vertical speed each frame. Very similar to applying thrust to the movement. However, the tow bar physics are a completely different beast. 1 Quote Link to comment Share on other sites More sharing options...
palmheads Posted July 25, 2015 Author Share Posted July 25, 2015 Gravity is very easy. Assuming you have the vertical speed separated from the horizontal speed, you just have to subtract a constant gravity value from the vertical speed each frame. Very similar to applying thrust to the movement. However, the tow bar physics are a completely different beast. Think this might be the next thing I try Thomas, now that I have got more of a handle on wall collisions. Will get gravity & thrust acceleration working. I might need your help with the tow bar physics in the future. That has always seems to be to be the hardest thing. Quite interesting how such a seemingly simple game is actually so complex behind the scenes. Jeremy Smith the original author deserves alot of credit huh? cheers Daryn Quote Link to comment Share on other sites More sharing options...
palmheads Posted October 12, 2015 Author Share Posted October 12, 2015 Hi Team! Made some more progress on 'Thrust' Its not quite a working "gravity", but I've got a subroutine now that forces my ship down, and you have to react to that by pressing up/left/right etc. I needed to also change my wall collision stuff because of different pixel/character locations, but I think I also made that a bit more versatile. cheers Daryn 2 Quote Link to comment Share on other sites More sharing options...
Willsy Posted October 12, 2015 Share Posted October 12, 2015 Marvelous !!! And I've got to say I love your use of lowercase and semicolons for comments - have to look at it twice not to confuse it with my own code. Me too! I do the same thing! I'm beginning to have the labels on separate lines (no code) to more easily insert code and move blocks around - with or without the label. I've also started to recently do that, as I'm now adopting the use of labels with > 6 characters. Finding unique 6 character labels for TurboForth sometimes required some inventive thinking! Not surprising when you see how many labels are in it: Assembly Complete - Errors: 0, Warnings: 0 ------ Symbol Listing ------ __DUP ABS:7FBE __dup _ADD ABS:83A2 _add _ALIGN ABS:6D76 _align _ALLOT ABS:6DA4 _allot _BIT0 ABS:78E4 _bit0 _BIT1 ABS:78E6 _bit1 _BLKQ ABS:68FC _blkq _BLOCK ABS:677C _block _BUF ABS:6910 _buf _CA1 ABS:7BC0 _ca1 _CART ABS:7BE0 _cart _CBOOT ABS:7F54 _cboot _CFA ABS:6BF8 _cfa _CLALL ABS:7BBC _clall _CLEAN ABS:68CE _clean _CLS ABS:6130 _cls _CMOVE ABS:660A _cmove _CMOVF ABS:661A _cmovf _COINC ABS:62DC _coinc _COLOR ABS:6428 _color _COMAB ABS:6D66 _comab _COMMA ABS:6D48 _comma _COMPI ABS:6DAE _compil _COPYW ABS:6638 _copyw _COUNT ABS:6DD8 _count _DATA ABS:6734 _data _DCHAR ABS:628E _dchar _DEPTH ABS:7918 _depth _DIRTY ABS:68DA _dirty _DNOUT ABS:65B0 _dnout _DOWN ABS:655C _down _DOWN0 ABS:6574 _down0 _DOWN1 ABS:6594 _down1 _DOWN2 ABS:65A6 _down2 _DROP ABS:838A _drop _DUP ABS:8382 _dup _DUP2 ABS:6B68 _dup2 _EDIT ABS:6F1A _edit _EDIT1 ABS:6F2E _edit1 _EDIT4 ABS:6F38 _edit4 _FCFND ABS:7A60 _fcfnd _FCLOP ABS:7A4E _fclop _FCLOS ABS:7A40 _fclos _FCXIT ABS:7A5E _fcxit _FEOF ABS:7B2C _feof _FGERR ABS:7A90 _fgerr _FGET ABS:7A64 _fget _FGXIT ABS:7A8E _fgxit _FICLL ABS:7934 _ficll _FILE ABS:792A _file _FILL ABS:65F8 _fill _FLUSH ABS:680C _flush _FOERR ABS:7A36 _foerr _FOPEN ABS:79DA _fopen _FP1 ABS:7AD0 _fp1 _FP2 ABS:7AE4 _fp2 _FPERR ABS:7AF2 _fperr _FPUT ABS:7AA0 _fput _FPVDP ABS:7AF8 _fpvdp _FPXIT ABS:7AF0 _fpxit _FREC ABS:7B12 _frec _GCHAR ABS:6276 _gchar _GMODE ABS:6188 _gmode _HCHAR ABS:6246 _hchar _HEADR ABS:6D0A _headr _HIDE ABS:6D86 _hide _IMM ABS:6D94 _imm _JOYST ABS:6150 _joyst _LEFT ABS:6484 _left _LEFT1 ABS:64A6 _left1 _LIT ABS:8368 _lit _LWRAP ABS:64A0 _lwrap _MAGFY ABS:6328 _magfy _MKBLK ABS:694E _mkblk _MTBUF ABS:68B2 _mtbuf _MUL ABS:83AA _mul _NEXT ABS:8326 _next _NTS ABS:6E64 _nts _NUMBR ABS:6C18 _numbr _OPT5 ABS:7B4A _opt5 _OVER ABS:838E _over _PANEL ABS:65B6 _panel _PICK ABS:78E8 _pick _PLUS1 ABS:8396 _plus1 _PLUS2 ABS:839A _plus2 _QDIRT ABS:68E6 _qdirt _RIGHT ABS:64C2 _right _RIGHT ABS:64E8 _right1 _RND ABS:6DBA _rnd _ROLL ABS:78F6 _roll _RWRAP ABS:64E2 _rwrap _SAMS ABS:6648 _sams _SAY ABS:66AC _say _SCREN ABS:6442 _scren _SCROL ABS:6454 _scrol _SETBK ABS:693E _setbk _SMLST ABS:63D8 _smlst _SPACE ABS:6D08 _space _SPAN ABS:A04C _span _SPCOL ABS:6352 _spcol _SPGET ABS:6398 _spget _SPKNG ABS:668A _spkng _SPLOC ABS:6370 _sploc _SPMOV ABS:63EE _spmov _SPPAT ABS:63BA _sppat _SPRIT ABS:62AA _sprit _STATE ABS:A048 _state _STR ABS:6E4A _str _STREM ABS:66C6 _strem _STRI1 ABS:6E20 _stri1 _STRI2 ABS:6E36 _stri2 _STRIN ABS:6E04 _strin _SUB ABS:83A6 _sub _SUB2 ABS:839E _sub2 _SWAP ABS:835C _swap _TRAIL ABS:6DE6 _trail _TRCOM ABS:6BF8 _trcom _UP ABS:6508 _up _UP0 ABS:6518 _up0 _UP1 ABS:651A _up1 _UP2 ABS:653A _up2 _UP3 ABS:654A _up3 _UPDAT ABS:689E _updat _UPOUT ABS:6554 _upout _USE ABS:6748 _use _USE3 ABS:6756 _use3 _VCHAR ABS:6252 _vchar _VMBR ABS:7836 _vmbr _VMBR1 ABS:7844 _vmbr1 _VMBR2 ABS:782E _vmbr2 _VMBRI ABS:7828 _vmbri _VMBW ABS:7876 _vmbw _VMBW0 ABS:7884 _vmbw0 _VMBW1 ABS:7894 _vmbw1 _VMBW2 ABS:787C _vmbw2 _VMBWX ABS:78A0 _vmbwx _VSBM1 ABS:78C0 _vsbm1 _VSBR ABS:7814 _vsbr _VSBW ABS:784E _vsbw _VSBW0 ABS:785C _vsbw0 _VSBWM ABS:78A2 _vsbwm _VSBWM ABS:78A8 _vsbwm2 _VWTR ABS:78CE _vwtr _VWTRF ABS:6672 _vwtrf _WARN ABS:A066 _warn _WORD ABS:6B78 _word _ZBRNC ABS:83B4 _zbrnch AB0RT ABS:7462 ab0rt AB0RTH ABS:7458 ab0rth ABORT ABS:7430 abort ABORT_ ABS:7450 abort_ ABORTH ABS:7426 aborth ABS_ ABS:63EA abs_ ABSH ABS:63E2 absh ABTTXT ABS:742A abttxt ADD ABS:6312 add ADDH ABS:630C addh ADDTOH ABS:7066 addtoh ADDTOX ABS:707E addtox ADRLST ABS:7D50 adrlst AFTERI ABS:6078 afteri AGAIN ABS:6694 again AGAINH ABS:668A againh AHEAD ABS:6558 ahead ALIGN ABS:70F4 align ALIGNH ABS:70EA alignh ALLFIN ABS:71EC allfin ALLOT ABS:70AA allot ALLOTH ABS:70A0 alloth ALTCFA ABS:6FB0 altcfa AND ABS:67C6 and ANDH ABS:67BE andh ASCII ABS:78CA ascii ASCII0 ABS:7733 ascii0 ASCII1 ABS:773B ascii1 ASCII2 ABS:7743 ascii2 ASCII3 ABS:774B ascii3 ASCII4 ABS:7753 ascii4 ASCII5 ABS:775B ascii5 ASCII6 ABS:7763 ascii6 ASCII7 ABS:776B ascii7 ASCIIH ABS:78C0 asciih ASCIIX ABS:78D8 asciix AUTORL ABS:A084 autorl AUTORP ABS:A082 autorp BACK1 ABS:6A24 back1 BACK2 ABS:6A28 back2 BADBK1 ABS:73B8 badbk1 BADBLK ABS:73AC badblk BALTXT ABS:7584 baltxt BANK0 ABS:6068 bank0 BANK1 ABS:8332 bank1 BANK1_ ABS:606A bank1_ BASE ABS:A05C base BASE_ ABS:76EE base_ BASEH ABS:76E6 baseh BCLEAN ABS:7CBE bclean BEGCNT ABS:A086 begcnt BEGERR ABS:71DC begerr BEGIN ABS:6664 begin BEGINH ABS:665A beginh BEGTXT ABS:756C begtxt BFREE ABS:69FC bfree BIT1 ABS:6962 bit1 BITMSK ABS:79C6 bitmsk BL_ ABS:6ACC bl_ BLCTXT ABS:75AB blctxt BLH ABS:6AC6 blh BLK ABS:7B52 blk BLK0 ABS:A1B6 blk0 BLK1 ABS:A1BA blk1 BLK2 ABS:A1BE blk2 BLK3 ABS:A1C2 blk3 BLK4 ABS:A1C6 blk4 BLK5 ABS:A1CA blk5 BLKERR ABS:67F8 blkerr BLKFB ABS:679E blkfb BLKH ABS:7B4A blkh BLKMSG ABS:75BF blkmsg BLKNIM ABS:6796 blknim BLKNUM ABS:A1B2 blknum BLKNXT ABS:67CA blknxt BLKQ ABS:7CF2 blkq BLKQH ABS:7CEA blkqh BLKTXT ABS:7714 blktxt BLKVEC ABS:A002 blkvec BLNKLN ABS:6EF8 blnkln BLOAD1 ABS:7DEA bload1 BLOAD2 ABS:7E28 bload2 BLOADH ABS:7DDE bloadh BLOCK ABS:7B9C block BLOCK2 ABS:7BA8 block2 BLOCKH ABS:7B92 blockh BLOCKS ABS:0006 blocks BNFB ABS:67EE bnfb BOOTFN ABS:7DF0 bootfn BOOTLP ABS:7C94 bootlp BOOTUP ABS:60D4 bootup BRANCH ABS:65D8 branch BREAK ABS:6C58 break BREAK1 ABS:6C70 break1 BREAKH ABS:6C4E breakh BRKMSG ABS:6C72 brkmsg BRNCHH ABS:65CE brnchh BSAVE ABS:7D78 bsave BSAVE1 ABS:7D82 bsave1 BSAVE2 ABS:7DBC bsave2 BSAVEH ABS:7D6E bsaveh BUF ABS:7D02 buf BUFADD ABS:1C20 bufadd BUFH ABS:7CFA bufh BUFRPT ABS:691A bufrpt BUFXIT ABS:693A bufxit BUMPY ABS:6A2E bumpY BYE ABS:6F34 bye BYEH ABS:6F2C byeh CALCSR ABS:7404 calcsr CASCHK ABS:6B52 caschk CASCNT ABS:A082 cascnt CASE ABS:65F4 case CASEH ABS:65EC caseh CASERR ABS:71BC caserr CASOUT ABS:6B6E casout CASSEN ABS:A056 cassen CASTXT ABS:7556 castxt CBA ABS:69D6 cba CBOOT ABS:6108 cboot CBOOT1 ABS:7F60 cboot1 CBOOTX ABS:7F6C cbootx CCLOP ABS:7CAE cclop CCLOP1 ABS:7CB6 cclop1 CCOMMA ABS:70E2 ccomma CCOMMH ABS:70DC ccommh CCP ABS:6F1A ccp CELLP ABS:62CE cellp CELLPH ABS:62C4 cellph CELLS ABS:62FA cells CELLSH ABS:62F0 cellsh CFA ABS:6BF6 cfa CFAH ABS:6BEE cfah CFLASH ABS:6E1E cflash CHAR ABS:78B6 char CHARH ABS:78AE charh CHARP ABS:62DA charp CHARPH ABS:62D0 charph CHARS ABS:6898 chars CHARSH ABS:688E charsh CHK80 ABS:730C chk80 CHKCNC ABS:6314 chkcnc CHKENT ABS:6FBE chkent CHKNUM ABS:734E chknum CHKROW ABS:630A chkrow CHRFH ABS:685C chrfh CHRFTC ABS:6862 chrftc CHRSET ABS:7CAE chrset CLC ABS:60AA clc CLEAN ABS:7368 clean CLEAN1 ABS:738E clean1 CLEANH ABS:7CB4 cleanh CLIPX ABS:6DB8 clipx CLIPX2 ABS:726C clipx2 CLIPXG ABS:722C clipxg CLIPXH ABS:7228 clipxh CLIPXL ABS:725C clipxl CLIPYG ABS:728C clipyg CLIPYH ABS:72B8 clipyh CLIPYL ABS:7292 clipyl CLOAD ABS:7C62 cload CLOAD1 ABS:7C72 cload1 CLOADH ABS:7C58 cloadh CLOSE ABS:0001 close CLRLOP ABS:7C78 clrlop CLS ABS:6D72 cls CLSALL ABS:7494 clsall CLSH ABS:6D6A clsh CMOVE ABS:6986 cmove CMOVEH ABS:697C cmoveh CMOVF ABS:6998 cmovf CMOVFH ABS:698E cmovfh CMOVLP ABS:6612 cmovlp CMVEXT ABS:6634 cmvext CMVFLP ABS:662A cmvflp CNGTXT ABS:772B cngtxt CNRDAT ABS:7538 cnrdat CNXTCH ABS:6B0A cnxtch CODEH ABS:7150 codeh CODING ABS:A068 coding COINC ABS:7A3E coinc COINCH ABS:7A34 coinch COINCX ABS:6326 coincx COL32D ABS:622A col32d COL40D ABS:6220 col40d COL80D ABS:6234 col80d COLD ABS:6166 cold COLDH ABS:615C coldh COLNAM ABS:74C6 colnam COLNM1 ABS:74DA colnm1 COLON ABS:711E colon COLONH ABS:7118 colonh COLOR ABS:7A50 color COLORH ABS:7A46 colorh COMBRA ABS:60A2 combra COMMA ABS:70D4 comma COMMAH ABS:70CE commah COMMAX ABS:6D62 commax COMPIH ABS:7258 compih COMPIL ABS:7264 compile COMXIT ABS:6C16 comxit CONST ABS:7004 const CONSTH ABS:6FF8 consth CONT ABS:6978 cont COPYW ABS:69C4 copyw COPYWH ABS:69BA copywh COPYWL ABS:6640 copywl CORNER ABS:7516 corner COUNT ABS:78E4 count COUNTH ABS:78DA counth CPL ABS:765A cpl CPLH ABS:7652 cplh CPYPAD ABS:7D28 cpypad CPYPNT ABS:7F8A cpypnt CR ABS:6E8E cr CREATE ABS:6FA0 create CREATH ABS:6F96 creath CREXIT ABS:6EA2 crexit CRH ABS:6E88 crh CRNLP ABS:751A crnlp CRTIME ABS:6FAA crtime CRTLP ABS:6D30 crtlp CSING ABS:73A6 csing CSR1 ABS:73FE csr1 CSRDEF ABS:765E csrdef CSRFLG ABS:A080 csrflg CSROFF ABS:73E6 csroff CSRON ABS:73E0 csron CSRWRT ABS:6E4A csrwrt CSRX ABS:A07C csrx CSRY ABS:A07E csry CSTART ABS:60D2 cstart CURSRD ABS:A024 cursrd CVA ABS:7C70 cva DATA1 ABS:7AE2 data1 DATA2 ABS:7AEE data2 DATA8 ABS:6B46 data8 DATAH ABS:7AC4 datah DATCR ABS:6A68 datCR DCHAR ABS:7998 dchar DCHARH ABS:798E dcharh DECH ABS:77C2 dech DECI ABS:77CE deci DECMAL ABS:6B48 decmal DELAY ABS:7656 delay DELKEY ABS:0003 delkey DEPTH ABS:6240 depth DEPTHH ABS:6236 depthh DFA ABS:6C22 dfa DFA1 ABS:6C28 dfa1 DFAFND ABS:6C4A dfafnd DFAH ABS:6C18 dfah DIRTIH ABS:7CD8 dirtih DIRTY ABS:7CD0 dirty DIRTYH ABS:7CC6 dirtyh DIRTYQ ABS:7CE2 dirtyq DISKIO ABS:6A16 diskio DISUPD ABS:7688 disupd DIV2 ABS:6302 div2 DIV2H ABS:62FC div2h DLENTR ABS:6A40 dlentr DLY42 ABS:6118 dly42 DLYLOP ABS:7658 dlylop DO ABS:66EA do DO1 ABS:66CE do1 DO1H ABS:66C8 do1h DOBOOT ABS:A04E doboot DOCFL ABS:6FA2 docfl DOCMD1 ABS:7B9A docmd1 DOCNT ABS:A07E docnt DOCOL ABS:8320 docol DOCON ABS:7010 docon DODCMD ABS:7B90 dodcmd DODIG ABS:6ECE dodig DODIV ABS:6E9C dodiv DODOES ABS:6FBC dodoes DOERR ABS:71AC doerr DOERTX ABS:754C doertx DOES ABS:6FEC does DOESH ABS:6FE2 doesh DOH ABS:66E2 doh DOINS ABS:7356 doins DOINS1 ABS:737E doins1 DOINSX ABS:73AA doinsx DOINV ABS:7D02 doinv DOMARK ABS:6F8A domark DOPTO ABS:708C dopto DOSIGN ABS:A064 dosign DOT ABS:782E dot DOT1 ABS:7832 dot1 DOTH ABS:7828 doth DOTO ABS:705E doto DOTOH ABS:7056 dotoh DOTR ABS:7852 dotr DOTRH ABS:784C dotrh DOTS ABS:624E dots DOTS1 ABS:6260 dots1 DOTSIN ABS:A05A dotsin DOTST ABS:6272 dotst DOTTXT ABS:6278 dottxt DOVAR ABS:7748 dovar DOVDP2 ABS:6212 dovdp2 DPL ABS:A054 dpl DRAWD ABS:7422 drawd DRAWS ABS:7474 draws DROP ABS:6172 drop DROP2 ABS:75D4 drop2 DROP2H ABS:75CA drop2h DROPH ABS:616A droph DSRDT8 ABS:6B2C dsrdt8 DSRDTA ABS:6B30 dsrdta DSRLNK ABS:6A3C dsrlnk DSRLWS ABS:A156 dsrlws DSRVEC ABS:A00C dsrvec DSTACK ABS:A2C6 dstack DSTYPE ABS:A160 dstype DUP ABS:6186 dup DUP0H ABS:61F4 dup0h DUP2 ABS:75E2 dup2 DUP2H ABS:75DA dup2h DUPH ABS:617E duph ECODE ABS:7178 ecode ECODEH ABS:716E ecodeh EDBLK ABS:A086 edblk EDF4 ABS:71D2 edF4 EDIT ABS:7F18 edit EDIT0 ABS:7F30 edit0 EDIT1 ABS:7F5A edit1 EDIT3 ABS:7F5E edit3 EDITH ABS:7F10 edith EDML2 ABS:6F68 edml2 EDML3 ABS:6F7C edml3 EDML4 ABS:6F6C edml4 EDML5 ABS:6F84 edml5 EDML6 ABS:6F90 edml6 EDML7 ABS:6F9A edml7 EDNEXT ABS:746E ednext ELSE ABS:65C0 else ELSEH ABS:65B8 elseh EMIT ABS:6D94 emit EMIT_ ABS:6D9C emit_ EMITH ABS:6D8C emith ENDB0 ABS:7FF6 endB0 ENDB1 ABS:7FFC endB1 ENDCAH ABS:6634 endcah ENDCAS ABS:6640 endcas ENDOF ABS:6628 endof ENDOFH ABS:661E endofh EPAGE ABS:A07A epage EQ ABS:646E eq EQH ABS:6468 eqh EQZ ABS:64C6 eqz EQZH ABS:64C0 eqzh ERRNUM ABS:A038 errnum ERROR ABS:751E error ERRTXT ABS:757D errtxt ERRXIT ABS:74F6 errxit EVAL ABS:6B9A eval EVALH ABS:6B8E evalh EXECUT ABS:72AC execut EXEH ABS:72A0 exeh EXIT ABS:832C exit EXITH ABS:6110 exith EXITT ABS:6118 exitt EXP1 ABS:6A56 exp1 EXP2 ABS:6A5E exp2 EXPCNT ABS:A060 expcnt EXPCTH ABS:69CC expcth EXPECT ABS:69D6 expect EXPNXT ABS:69E6 expnxt EXROLL ABS:7916 exroll F1BUF ABS:1828 f1buf F1EOL ABS:7162 f1eol F1PAB ABS:1800 f1pab F2BUF ABS:1950 f2buf F2PAB ABS:1928 f2pab F3BUF ABS:1A78 f3buf F3PAB ABS:1A50 f3pab F7EXIT ABS:71CA f7exit FAC ABS:834A fac FADDPH ABS:682C faddph FALLOC ABS:A1AA falloc FALSE ABS:77F2 false FALSEH ABS:77E8 falseh FBLOCK ABS:7C4C fblock FBUF ABS:7E56 fbuf FBUFH ABS:7E4C fbufh FCLOSE ABS:7E7E fclose FCLOSH ABS:7E74 fclosh FDOCHR ABS:795E fdochr FDODIG ABS:7984 fdodig FDONE ABS:79B2 fdone FEOF ABS:7EF6 feof FEOFH ABS:7EEC feofh FETCH ABS:6824 fetch FETCHH ABS:681E fetchh FEXIT ABS:7A98 fexit FFAHH ABS:7738 ffahh FFAIH ABS:7742 ffaih FFAIHM ABS:A01C ffaihm FFAILM ABS:A01A ffailm FFALH ABS:774E ffalh FFAML ABS:7758 ffaml FFOPT ABS:7998 ffopt FGET ABS:7E8E fget FGETH ABS:7E86 fgeth FILE1 ABS:7E44 file1 FILEH ABS:7E3C fileh FILL ABS:6974 fill FILLH ABS:696C fillh FILLLP ABS:6602 filllp FIND ABS:6ADC find FIND1 ABS:6AFC find1 FIND2 ABS:6B18 find2 FINDER ABS:72D2 finderr FINDH ABS:6AD4 findh FLERR ABS:6890 flerr FLEXIT ABS:6886 flexit FLGPTR ABS:A154 flgptr FLNEXT ABS:6820 flnext FLNREC ABS:6852 flnrec FLOOR ABS:643A floor FLOOR1 ABS:644C floor1 FLUSH ABS:7C92 flush FLUSH1 ABS:6812 flush1 FLUSH2 ABS:6872 flush2 FLUSHH ABS:7C88 flushh FLUSHX ABS:6810 flushx FNDBLK ABS:6A14 fndblk FNDBUF ABS:6932 fndbuf FNDNXT ABS:6AF0 fndnxt FNDVEC ABS:A006 fndvec FNEXT1 ABS:6580 fnext1 FNXTOP ABS:7978 fnxtop FOEND ABS:79F6 foend FOMASK ABS:79BC fomask FOOPTS ABS:79D0 foopts FOPEN1 ABS:7E6C fopen1 FOPENH ABS:7E62 fopenh FOR ABS:656A for FORCNT ABS:A080 forcnt FORG1 ABS:7406 forg1 FORGET ABS:73EC forget FORGTH ABS:73E2 forgth FORH ABS:6562 forh FPUT ABS:7E9E fput FPUTH ABS:7E96 fputh FREBUF ABS:69E6 frebuf FREC ABS:7EAE frec FRECH ABS:7EA6 frech FREEH ABS:69A0 freeh FRMDSR ABS:6B1C frmdsr FTCHPP ABS:6834 ftchpp FVMBR ABS:6906 fvmbr FVMBW ABS:6916 fvmbw FWDREW ABS:0004 fwdrew GABORT ABS:65F0 gabort GCHAR ABS:7986 gchar GCHARH ABS:797C gcharh GENKEY ABS:72C0 genkey GET2 ABS:65E4 get2 GET4 ABS:65DC get4 GETI ABS:678E geti GETIH ABS:6788 getih GETJ ABS:67A0 getj GETJH ABS:679A getjh GETSTK ABS:166C getstk GETWOR ABS:72BC getword GEXIT ABS:624E gexit GEXIT1 ABS:643E gexit1 GEXIT2 ABS:6558 gexit2 GHERE ABS:7800 ghere GKEYCX ABS:7326 gkeycx GKNO ABS:72E0 gkno GLINK1 ABS:7F16 glink1 GLNKWS ABS:2000 glnkws GMODE ABS:7950 gmode GMODEH ABS:7946 gmodeh GMODEX ABS:621E gmodex GOTOXY ABS:6C84 gotoxy GOXYH ABS:6C7A goxyh GPLLNK ABS:7F0C gpllnk GPLLOP ABS:7F1E gpllop GPLST ABS:837C gplst GPLVEC ABS:A00E gplvec GPLWS ABS:83E0 gplws GR4 ABS:83E8 gr4 GR6 ABS:83EC gr6 GRMRA ABS:9802 grmra GRMRD ABS:9800 grmrd GRMWA ABS:9C02 grmwa GRMWD ABS:9C00 grmwd GT ABS:647C gt GTE ABS:6498 gte GTEH ABS:6492 gteh GTEZ ABS:653C gtez GTEZH ABS:6534 gtezh GTH ABS:6476 gth GTZ ABS:64F2 gtz GTZH ABS:64EC gtzh GXMAX ABS:7798 gxmax GXMLAD ABS:7F12 gxmlad H20 ABS:6B4A h20 HAA ABS:A176 haa HCHAR ABS:7962 hchar HCHARH ABS:7958 hcharh HDOTH ABS:786C hdoth HDR0 ABS:6D10 hdr0 HDR1 ABS:6D1E hdr1 HEADER ABS:6F48 header HEADR ABS:6F52 headr HEADRH ABS:6F3E headrh HELP ABS:7773 help HERE ABS:A046 here HERE_ ABS:76DE here_ HEREH ABS:76D8 hereh HEX ABS:77B6 hex HEXDOT ABS:7872 hexdot HEXH ABS:77AE hexh HFREE ABS:6944 hfree HFREEH ABS:693A hfreeh HHEREH ABS:77F8 hhereh HIDEME ABS:721E hideme HIDH ABS:7214 hidh HIMEM ABS:A2C6 himem HLINE ABS:7612 hline HTIBH ABS:7642 htibh ICOMP ABS:727C icomp ICOMPH ABS:726E icomph IERR ABS:7358 ierr IF ABS:6590 if IFCNT ABS:A07C ifcnt IFERR ABS:7544 iferr IFH ABS:658A ifh IGLZ ABS:6ED6 iglz IMM ABS:7234 imm IMMED ABS:8000 immed IMMH ABS:7226 immh IN ABS:A042 in IN_ ABS:76FE in_ INCYC ABS:733E incyc INH ABS:76F6 inh INIT ABS:7C32 init INS1 ABS:73BE ins1 INSOVR ABS:73AC insovr INSTXT ABS:771F instxt INTERP ABS:7300 interp INTGO ABS:730C intgo INTH ABS:72F2 inth INTLP ABS:730E intlp INTOUT ABS:73A8 intout INTVEC ABS:A000 intvec INTXT ABS:759B intxt INV_ ABS:67F4 inv_ INVH ABS:67EC invh INVLOP ABS:7D0E invlop IOERR ABS:6B3C ioerr IOERR1 ABS:7788 ioerr1 IOERRH ABS:777E ioerrh IS80C ABS:769A is80c ISDBL ABS:A052 isdbl ISR ABS:83C4 ISR ISRDES ABS:6078 isrdes ISRNXT ABS:6082 isrnxt ISROUT ABS:608A isrout ISRXIT ABS:8354 isrxit ISSERR ABS:7202 isserr ISSPCH ABS:66E2 isspch JOYST ABS:6D84 joyst JOYSTH ABS:6D7A joysth KDEL ABS:A00A kdel KDEL_ ABS:7606 kdel_ KDELH ABS:75FE kdelh KEEPN2 ABS:6400 keepn2 KEY ABS:6DD2 key KEYBD ABS:7654 keybd KEYCC ABS:FFFFFF83 keyCC KEYCCR ABS:70BC keyccr KEYCD ABS:FFFFFF84 keyCD KEYCD1 ABS:702A keycd1 KEYCDR ABS:7010 keycdr KEYCI ABS:FFFFFF89 keyCI KEYCI1 ABS:7084 keyci1 KEYCI2 ABS:70A8 keyci2 KEYCIR ABS:7066 keycir KEYCO ABS:FFFFFF8F keyCO KEYCOR ABS:6FE4 keycor KEYCP ABS:FFFFFF90 keyCP KEYCPR ABS:6FFE keycpr KEYCV ABS:FFFFFF96 keyCV KEYCVR ABS:70DE keyCVr KEYD ABS:71F8 keyd KEYD1 ABS:7212 keyd1 KEYD2 ABS:721A keyd2 KEYDEV ABS:A022 keydev KEYDX ABS:723E keydx KEYE ABS:7276 keye KEYEN1 ABS:6FDE keyen1 KEYF1 ABS:0003 keyF1 KEYF1R ABS:710E keyf1r KEYF1S ABS:713C keyf1s KEYF2 ABS:0004 keyF2 KEYF2R ABS:71EC keyf2r KEYF3 ABS:0007 keyF3 KEYF3R ABS:7180 keyf3r KEYF4 ABS:0002 keyF4 KEYF7 ABS:0001 keyF7 KEYF7R ABS:71B2 keyf7r KEYF9 ABS:000F keyF9 KEYF9R ABS:7172 keyf9r KEYFD ABS:0009 keyFD KEYFE ABS:000B keyFE KEYFEQ ABS:0005 keyFeq KEYFQR ABS:71CC keyfqr KEYFS ABS:0008 keyFS KEYFX ABS:000A keyFX KEYIN ABS:8375 keyin KEYQ ABS:6E5E keyq KEYQH ABS:6E56 keyqh KEYQSR ABS:6E66 keyqsr KEYRET ABS:000D keyRET KEYS ABS:7240 keys KEYX ABS:729C keyx KMODE ABS:7710 kmode KMODH ABS:7706 kmodh KSCN ABS:6DDE kscn KSCN1 ABS:6DE0 kscn1 KSCN2 ABS:6E04 kscn2 KSCNH ABS:6DCA kscnh L8000 ABS:6B3A l8000 LAGAIN ABS:6740 lagain LASTWD ABS:7F10 lastwd LATES_ ABS:76D0 lates_ LATESH ABS:76C6 latesh LATEST ABS:A044 latest LBASE ABS:A05E lbase LBRACE ABS:7ED4 lbrace LBRACK ABS:7102 lbrack LBRAKH ABS:70FC lbrakh LDGADD ABS:0060 ldgadd LDVDPL ABS:61B4 ldvdpl LDVDPR ABS:61AC ldvdpr LEAVE ABS:677C leave LEAVEH ABS:6772 leaveh LFREE ABS:695E lfree LFREEH ABS:6954 lfreeh LFT1 ABS:75B2 lft1 LFTLIN ABS:759A lftlin LHL ABS:74B4 lhl LHL1 ABS:74CA lhl1 LINK ABS:0000 link LINNUM ABS:75B6 linnum LIST_ ABS:7BB8 list_ LIST1 ABS:7BCC list1 LISTH ABS:7BB0 listh LIT ABS:70BA lit LIT0 ABS:6082 lit0 LIT1 ABS:608A lit1 LIT8 ABS:6092 lit8 LITERH ABS:70BC literh LITH ABS:70B2 lith LITM1 ABS:609A litm1 LITRAL ABS:70C8 litral LMATCH ABS:6B02 lmatch LMISCL ABS:7CEC lmiscl LNKERR ABS:6B3A lnkerr LNKSLN ABS:6A88 lnksln LNKSLP ABS:6A6E lnkslp LOAD ABS:7C12 load LOAD5 ABS:7EC0 load5 LOAD5H ABS:7EB6 load5h LOADH ABS:7C0A loadh LOADLP ABS:6714 loadlp LOCSPH ABS:79EA locsph LOCSPR ABS:79F6 locspr LOGO ABS:7ECC logo LOMADJ ABS:6D5E lomadj LOOP ABS:6732 loop LOOP1 ABS:670C loop1 LOOP1H ABS:6704 loop1h LOOP2 ABS:671A loop2 LOOPCH ABS:6736 loopchk LOOPH ABS:6728 looph LOOPX ABS:6738 loopx LOWCAS ABS:7DFC lowcas LSFT ABS:6800 lsft LSFTH ABS:67FA lsfth LSTBLK ABS:A1B4 lstblk LSTXIT ABS:7BFA lstxit LT ABS:648A lt LTE ABS:64A8 lte LTEH ABS:64A2 lteh LTEZ ABS:652A ltez LTEZH ABS:6522 ltezh LTH ABS:6484 lth LTZ ABS:64E4 ltz LTZH ABS:64DE ltzh LZI ABS:A062 lzi MAGFY ABS:79BE magfy MAGFYH ABS:79B2 magfyh MARK ABS:654E mark MARKR ABS:6F64 markr MARKRH ABS:6F5A markrh MAX ABS:640E max MAXH ABS:6406 maxh MEMPTR ABS:7E2E memptr MENU ABS:600C menu MENU40 ABS:6026 menu40 MIN ABS:63F8 min MINH ABS:63F0 minh MISS ABS:6324 miss MKBLK ABS:7D26 mkblk MKBLKC ABS:7D2E mkblkc MKBLKH ABS:7D1C mkblkh MKCLSE ABS:69C2 mkclse MKDERR ABS:69CE mkderr MKDSKL ABS:697C mkdskl MOD ABS:63CA mod MODH ABS:63C2 modh MODMAX ABS:73DE modmax MODTXT ABS:771A modtxt MPADJ ABS:6D52 mpadj MTBUF ABS:7CAC mtbuf MTBUFH ABS:7C9A mtbufh MTBUFL ABS:68BA mtbufl MTEXT ABS:602B mtext MUL ABS:6322 mul MUL2 ABS:62EA mul2 MUL2H ABS:62E4 mul2h MUL3 ABS:62EC mul3 MULH ABS:631C mulh NAMONE ABS:6AFA namone NAMPTR ABS:8356 namptr NAMSTO ABS:A178 namsto NAMTWO ABS:6B02 namtwo NBLK ABS:7B64 nblk NBLKH ABS:7B5C nblkh NBUF ABS:7616 nbuf NBUFH ABS:760E nbufh NCOS ABS:7338 ncos NCOS1 ABS:7350 ncos1 NDIRT ABS:68F8 ndirt NDSH ABS:6248 ndsh NEEDUD ABS:7672 needud NEG_ ABS:63DC neg_ NEG2 ABS:63DE neg2 NEGH ABS:63D2 negh NEQ ABS:64B8 neq NEQHH ABS:64B2 neqhh NEQZ ABS:64D6 neqz NEQZH ABS:64CE neqzh NEXIT ABS:6CF2 nexit NEXT ABS:000C NEXT NEXT1K ABS:69AA next1k NEXTH ABS:6578 nexth NFERR ABS:749C nferr NFTXT ABS:7590 nftxt NIMM ABS:7346 nimm NINN ABS:6EBE ninn NIP ABS:61D2 nip NIPH ABS:61CA niph NOBOOT ABS:73C2 noboot NOBOOT ABS:7528 nobootm NOCODE ABS:738E nocode NODBL ABS:737E nodbl NODSR ABS:6B36 nodsr NOIMM ABS:6B48 noimm NOKEY ABS:FF00 nokey NOMATC ABS:6B4C nomatch NOOFF ABS:6AB4 nooff NOPAST ABS:710C nopast NOROM ABS:6AAE norom NOSCR ABS:762A noscr NOSCRH ABS:761E noscrh NOSCRL ABS:A026 noscrl NOTFND ABS:7422 notfnd NOTICK ABS:72E6 notick NOWORD ABS:6BD2 noword NROT ABS:61AC nrot NROTH ABS:61A4 nroth NSPK ABS:66A8 nspk NTS ABS:7890 nts NTS1 ABS:7898 nts1 NTSH ABS:7888 ntsh NUM0 ABS:6C48 num0 NUM1 ABS:6C72 num1 NUM2 ABS:6C7E num2 NUM3 ABS:6C86 num3 NUM4 ABS:6C4C num4 NUM5 ABS:6C58 num5 NUMBER ABS:6B7A number NUMBR1 ABS:6B86 numbr1 NUMBRH ABS:6B70 numbrh NUMEND ABS:6CE8 numend NUMGO ABS:6CCC numgo NUMISD ABS:6CC8 numisd NUMISL ABS:6CC2 numisl NUMLZ ABS:6C8A numlz NUMT1 ABS:6CA4 numt1 NUMT2 ABS:6CB2 numt2 NUMVEC ABS:A004 numvec NXTDAT ABS:7D34 nxtdat NXTDIG ABS:6EC4 nxtdig NXTFB ABS:69EE nxtfb NXTREC ABS:69AE nxtrec NXTSLT ABS:79E2 nxtslt OCHAR ABS:7F02 ochar OF ABS:6606 of OFCNT ABS:A084 ofcnt OFERR ABS:71CC oferr OFH ABS:6600 ofh OFTXT ABS:7563 oftxt OHSHIT ABS:6CBE ohshit OK ABS:7364 ok OKTXT ABS:6150 oktxt OKX ABS:7366 okx ONCSR ABS:6FB8 oncsr OPEN ABS:0000 open OPT5 ABS:7EE4 opt5 OR_ ABS:67D4 or_ ORH ABS:67CE orh OVER ABS:61C8 over OVERH ABS:61C0 overh OVR ABS:73D4 ovr OVRTXT ABS:7725 ovrtxt PABBUF ABS:A182 pabbuf PABCC ABS:A185 pabcc PABFIL ABS:A18A pabfil PABFLG ABS:A181 pabflg PABLOC ABS:1B78 pabloc PABLRL ABS:A184 pablrl PABNLN ABS:A189 pabnln PABOPC ABS:A180 pabopc PABREC ABS:A186 pabrec PABSCO ABS:A188 pabsco PAD ABS:7768 pad PADEND ABS:7FFC padend PADH ABS:7760 padh PADVEC ABS:A010 padvec PADX ABS:7778 padx PAE ABS:6DE0 PAE PANC ABS:A036 panc PANEL ABS:7A86 panel PANELH ABS:7A7C panelh PANR ABS:A034 panr PANXY ABS:A032 panxy PARSNM ABS:6C1C parsnm PATCH ABS:A06A patch PC ABS:0003 pc PCREAT ABS:A018 pcreate PDOCON ABS:A016 pdocon PICK ABS:6212 pick PICKH ABS:620A pickh PICKX ABS:78F2 pickx PITCH ABS:0023 pitch PLOOH1 ABS:6744 plooh1 PLOOP ABS:676C ploop PLOOP1 ABS:674E ploop1 PLOOPH ABS:6760 plooph PLUS1 ABS:62AE plus1 PLUS1H ABS:62A8 plus1h PLUS2 ABS:62C2 plus2 PLUS2H ABS:62BC plus2h PNEXT ABS:A014 pnext PRGTOP ABS:A2C6 prgtop PTOH ABS:7082 ptoh PUSHER ABS:6D00 pusher PWR ABS:6E88 pwr PWROUT ABS:6E98 pwrout QDUP ABS:61FC qdup QDUPX ABS:6208 qdupx QUIT ABS:6126 quit QUITH ABS:611E quith QUITKY ABS:009D quitky QUITLP ABS:6128 quitlp R0 ABS:0000 R0 R1 ABS:0001 R1 R10 ABS:000A R10 R11 ABS:000B R11 R12 ABS:000C R12 R13 ABS:000D R13 R14 ABS:000E R14 R15 ABS:000F R15 R2 ABS:0002 R2 R3 ABS:0003 R3 R4 ABS:0004 R4 R5 ABS:0005 R5 R6 ABS:0006 R6 R7 ABS:0007 R7 R8 ABS:0008 R8 R9 ABS:0009 R9 RBRACK ABS:7110 rbrack RBRAKH ABS:710A rbrakh RDFER1 ABS:74C4 rdfer1 RDFERR ABS:74B0 rdferr RDFTXT ABS:7572 rdftxt READ ABS:0002 read READSP ABS:66FA readsp RECBUF ABS:1BA0 recbuf RECLN0 ABS:7A8C recln0 RECRSH ABS:7288 recrsh RECURS ABS:7294 recurs REFDN ABS:67B6 refdn REFILL ABS:0008 refill REFUP ABS:67AE refup REM ABS:6A70 rem REMH ABS:6A6A remh REPEAT ABS:66C0 repeat REPETH ABS:66B6 repeth REPXIT ABS:751C repxit RET4TH ABS:717C ret4th RETB0 ABS:833A retB0 RETBNK ABS:A06E retbnk RETSTK ABS:A28A retstk RL1 ABS:74E6 rl1 RLOOP ABS:7570 rloop RND ABS:7810 rnd RNDH ABS:7808 rndh RNDX ABS:6DD4 rndx ROLL ABS:622E roll ROLLH ABS:6226 rollh ROLLLP ABS:790A rolllp ROMSPK ABS:60F8 romspk ROMSPX ABS:612C romspx ROT ABS:6190 rot ROTH ABS:6188 roth ROWNUM ABS:74D8 rownum ROWTXT ABS:7704 rowtxt RPF ABS:76AE rpf RPFH ABS:76A6 rpfh RRSTAC ABS:6154 rrstack RS0 ABS:A020 rs0 RSC ABS:6292 rsc RSCH ABS:628C rsch RSFT ABS:6812 rsft RSFTH ABS:680C rsfth RSPOP ABS:62A0 rspop RSPOPH ABS:629A rspoph RSPSHH ABS:627E rspshh RSPUSH ABS:6284 rspush RSRC ABS:7548 rsrc RSRC_ ABS:7558 rsrc_ RSRC1 ABS:756C rsrc1 RSTACK ABS:0005 rstack RSTSP ABS:6B4C rstsp RSTSP1 ABS:6B54 rstsp1 RSTSP3 ABS:6B60 rstsp3 RT1 ABS:75DA rt1 RT2 ABS:75E4 rt2 RT4TH ABS:6FF4 rt4th RTDATA ABS:7AFA rtdata RTDATH ABS:7AF0 rtdath RTLIN ABS:75BC rtlin RTNAD ABS:7F10 rtnad RU80C ABS:7452 ru80c RUNISR ABS:834C runisr S0 ABS:A01E s0 S0_ ABS:77A6 s0_ S0H ABS:77A0 s0h S32COL ABS:61A2 s32col S40COL ABS:619C s40col S80COL ABS:61A8 s80col SAL ABS:A088 sal SAMS ABS:7C62 sams SAMS_ ABS:6932 sams_ SAMSH ABS:692A samsh SAV8A ABS:A148 sav8a SAVCRU ABS:A14A savcru SAVE5H ABS:7ED0 save5h SAVENT ABS:A14C savent SAVKEY ABS:A028 savkey SAVLEN ABS:A14E savlen SAVPAB ABS:A150 savpab SAVVER ABS:A152 savver SAY ABS:7AAA say SAYH ABS:7AA2 sayh SAYXIT ABS:66C2 sayxit SCLUP_ ABS:6EBC sclup_ SCNBLK ABS:69FE scnblk SCNKEY ABS:762A scnkey SCNKY1 ABS:764A scnky1 SCNNXT ABS:6A06 scnnxt SCREEN ABS:7A62 screen SCRLNO ABS:6F10 scrlno SCRLUP ABS:6EA4 scrlup SCRLUT ABS:647C scrlut SCRNH ABS:7A58 scrnh SCROLH ABS:7A6A scrolh SCROLL ABS:7A74 scroll SCRX ABS:A028 scrX SCRY ABS:A02A scrY SDELIM ABS:A050 sdelim SDIV ABS:63BA sdiv SDIV1 ABS:6420 sdiv1 SDIV2 ABS:642C sdiv2 SDIV3 ABS:6430 sdiv3 SDIVH ABS:63B4 sdivh SEED ABS:A076 seed SEMI ABS:718E semi SEMI2 ABS:71F2 semi2 SEMI3 ABS:71FE semi3 SEMIH ABS:7188 semih SENS ABS:763A sens SENSH ABS:7632 sensh SETBLH ABS:7D0A setblh SETBLK ABS:7D14 setblk SETW ABS:785E setw SFALSE ABS:654A sFalse SGET3 ABS:65D4 sget3 SGET4 ABS:65D2 sget4 SGET5 ABS:65D0 sget5 SGO ABS:6AD8 sgo SGO2 ABS:6ADE sgo2 SIDIV ABS:6416 sidiv SIGN ABS:789E sign SIGNDO ABS:6446 signdo SIMUL ABS:6450 simul SIMUL1 ABS:6466 simul1 SKIPBS ABS:6A34 skipbs SKIPLD ABS:60FE skipld SKIPUD ABS:7698 skipud SMLIST ABS:A108 smlist SMLST ABS:7A1A smlst SMLSTH ABS:7A10 smlsth SMOD ABS:6356 smod SMOD1 ABS:6364 smod1 SMODH ABS:634E smodh SNDXIT ABS:7C2E sndxit SOUND ABS:7F08 sound SOUND1 ABS:7BEC sound1 SOUNDH ABS:7EFE soundh SOURCE ABS:A058 source SPACE1 ABS:6D34 space1 SPACEH ABS:6D2A spaceh SPADDR ABS:6710 spaddr SPADR ABS:A03C spadr SPAN ABS:764A span SPAN1 ABS:7650 span1 SPCES ABS:6D4E spces SPCES1 ABS:6D58 spces1 SPCESH ABS:6D44 spcesh SPCESX ABS:6D68 spcesx SPCHRD ABS:9000 spchrd SPCHWT ABS:9400 spchwt SPCHX ABS:66F8 spchx SPCNT ABS:A03A spcnt SPCSVC ABS:A03E spcsvc SPDATA ABS:834A spdata SPEECH ABS:607A speech SPF ABS:768C spf SPFH ABS:7684 spfh SPKNG ABS:7A9A spkng SPKNGH ABS:7A8E spkngh SPKROM ABS:6688 spkROM SPPATH ABS:79FE sppath SPRCLH ABS:79C6 sprclh SPRCOL ABS:79D0 sprcol SPREAD ABS:6686 spread SPRITE ABS:79AA sprite SPRITH ABS:79A0 sprith SPRLCH ABS:79D8 sprlch SPRLOC ABS:79E2 sprloc SPRMOV ABS:7A2C sprmov SPRMV1 ABS:6408 sprmv1 SPRMVH ABS:7A22 sprmvh SPRPAT ABS:7A08 sprpat SPRTX ABS:62D8 sprtx SPS ABS:769A sps SPSH ABS:7692 spsh SPSTAT ABS:8340 spstat SPSX ABS:76A2 spsx SPWORD ABS:72B4 spword SPYES ABS:66F4 spyes SROM ABS:6AA4 srom SSFLAG ABS:6687 ssflag SSLASH ABS:6324 sslash SSM ABS:637A ssm SSMH ABS:6370 ssmh STACK ABS:0004 stack STACKS ABS:A254 stacks STADD ABS:6854 stadd STADDH ABS:684E staddh START4 ABS:6050 start40 START8 ABS:605A start80 STARTB ABS:606C startB0 STARTB ABS:606C startB1 STATE_ ABS:76BE state_ STATE0 ABS:733A state0 STATEH ABS:76B4 stateh STATUS ABS:0009 status STB ABS:6874 stb STBH ABS:686E stbh STKPNT ABS:8373 stkpnt STKTXT ABS:75A0 stktxt STKUF ABS:73CC stkuf STKUFH ABS:73C4 stkufh STKX ABS:73E0 stkx STOR0H ABS:6880 stor0h STOR0X ABS:688C stor0x STORE ABS:6846 store STORE0 ABS:6886 store0 STOREH ABS:6840 storeh STR ABS:7910 str STRBUF ABS:A242 strbuf STRC1 ABS:6E14 strc1 STRCU ABS:60F2 strcu STRH ABS:7908 strh STRING ABS:78F2 string STRM ABS:7ABC strm STRMH ABS:7AB2 strmh STRNB ABS:60DC strnb STRNG1 ABS:7900 strng1 STRNGH ABS:78EC strngh STRSP2 ABS:60A4 strsp2 STRSP3 ABS:60C2 strsp3 STRSPK ABS:608E strspk STRUE ABS:6546 sTrue STRXIT ABS:60F0 strxit SUB ABS:631A sub SUB1 ABS:62B6 sub1 SUB1H ABS:62B0 sub1h SUB2 ABS:62E2 sub2 SUB2H ABS:62DC sub2h SUBH ABS:6314 subh SUMODE ABS:A078 sumode SWAP ABS:617C swap SWAPH ABS:6174 swaph SWPB_ ABS:6220 swpb_ SWPBH ABS:621A swpbh SYNTH ABS:6100 synth SYNYES ABS:A040 synyes TBODYH ABS:6C0C tbodyh TEMP ABS:A070 temp TEMP2 ABS:A072 temp2 TEMP3 ABS:A074 temp3 TERM1 ABS:60BC term1 TESTLZ ABS:6EF0 testlz TFNL ABS:7948 tfnl THEN ABS:65A8 then THENH ABS:65A0 thenh THRU ABS:7B7E thru THRUH ABS:7B76 thruh THRULP ABS:7B88 thrulp TIB ABS:3420 tib TIB_ ABS:7730 tib_ TIBADR ABS:A1CE tibadr TIBH ABS:7728 tibh TIBSIZ ABS:A04A tibsiz TICK ABS:7244 tick TICK2 ABS:7252 tick2 TICK2H ABS:724C tick2h TICKH ABS:723C tickh TLUT ABS:6EF6 tlut TOBODY ABS:6C16 tobody TOH ABS:703C toh TOHX ABS:7052 tohx TOOBIG ABS:6974 toobig TOOSML ABS:696E toosml TORAM ABS:7F70 toRAM TOTBLK ABS:A1B0 totblk TOTERM ABS:60B4 toterm TOUTIL ABS:7094 ToUtil TRAIL ABS:7926 trail TRAIL1 ABS:6DFC trail1 TRAIL2 ABS:6DF4 trail2 TRAILH ABS:7918 trailh TRCOM ABS:6A82 trcom TRCOM1 ABS:6C10 trcom1 TRCOMH ABS:6A7C trcomh TRLOUT ABS:6DFA trlout TRUE ABS:77E2 true TRUEH ABS:77DA trueh TRUL1 ABS:7448 trul1 TSTRH ABS:792E tstrh TUCK ABS:61E0 tuck TUCKH ABS:61D8 tuckh TXT0 ABS:76A4 txt0 TXT1 ABS:76C3 txt1 TXT2 ABS:76E2 txt2 TYPCMH ABS:6A8A typcmh TYPE ABS:6C98 type TYPE1 ABS:6C9A type1 TYPEH ABS:6C90 typeh TYPLP ABS:6CA2 typlp TYPOUT ABS:6CB2 typout TYPST1 ABS:7942 typst1 TYPSTR ABS:7934 typstr UDOT ABS:781E udot UDOTH ABS:7818 udoth UDOTR ABS:7840 udotr UDOTRH ABS:7838 udotrh ULESS ABS:6500 uless ULESSH ABS:64FA ulessh UMODH ABS:6396 umodh UMSH ABS:6334 umsh UNBAL ABS:74A8 unbal UNTIL ABS:667A until UNTILH ABS:6670 untilh UPDATE ABS:7C80 update UPDATH ABS:7C76 updath UPKEY ABS:7354 upkey USE ABS:7B0A use USE1 ABS:7B12 use1 USEH ABS:7B02 useh USEXIT ABS:6778 usexit USIGN ABS:78A6 usign USIGND ABS:75F6 usignd USIGNH ABS:75EA usignh USMOD ABS:63A0 usmod USRISR ABS:A008 usrisr VALUE ABS:7036 value VALUEH ABS:702C valueh VAR ABS:7022 var VARH ABS:7016 varh VBLNK ABS:83D7 vblnk VCHAR ABS:7974 vchar VCHAR1 ABS:6264 vchar1 VCHAR2 ABS:6270 vchar2 VCHARH ABS:796A vcharh VDPA ABS:8C02 vdpa VDPFH ABS:689A vdpfh VDPFTC ABS:68A0 vdpftc VDPM ABS:691C vdpm VDPR ABS:8800 vdpr VDPR1 ABS:A06C vdpr1 VDPRW ABS:68DC vdprw VDPRWH ABS:68D4 vdprwh VDPST ABS:8802 vdpst VDPSTR ABS:68B4 vdpstr VDPW ABS:8C00 vdpw VDPWH ABS:68AE vdpwh VDPWW ABS:7D52 vdpww VDPWWH ABS:68C2 vdpwwh VDPX ABS:6928 vdpx VFIND ABS:6AE8 vfind VLINE ABS:75FE vline VLINE1 ABS:7604 vline1 VMBR ABS:7F88 vmbr VMBR1 ABS:7F98 vmbr1 VMBRH ABS:68FE vmbrh VMBW ABS:7FC8 vmbw VMBW0 ABS:7FD6 vmbw0 VMBW1 ABS:7FEA vmbw1 VMBWH ABS:690E vmbwh VREAD ABS:6BEE vread VREAD1 ABS:6BF0 vread1 VREAD2 ABS:6BF4 vread2 VSBR ABS:7F66 vsbr VSBW ABS:7FA0 vsbw VSBW0 ABS:7FAE vsbw0 VSBWMI ABS:78B0 vsbwmi VWTRF ABS:68F6 vwtrf VWTRFH ABS:68EE vwtrfh WARN ABS:7720 warn WARNH ABS:7718 warnh WFNLB ABS:7958 wfnlb WFTXT ABS:6D0A wftxt WHEAD ABS:7D36 whead WHERE ABS:7B24 where WHERE1 ABS:7B44 where1 WHEREH ABS:7B1A whereh WHILE ABS:66AE while WHILEH ABS:66A4 whileh WITHH ABS:6508 withh WITHIN ABS:6512 within WKSPC ABS:8300 wkspc WORD ABS:6AA6 word WORD0 ABS:6AAC word0 WORD1 ABS:6ABE word1 WORD2 ABS:6ABA word2 WORDH ABS:6A9E wordh WORDS_ ABS:6CBE words_ WORDS1 ABS:6CC6 words1 WORDS2 ABS:6CFE words2 WORDS3 ABS:6CE4 words3 WORDS4 ABS:6CE6 words4 WORDSH ABS:6CB4 wordsh WP ABS:A012 wp WRAP ABS:A030 wrap WRAP_ ABS:766A wrap_ WRAPH ABS:7662 wraph WRD1 ABS:6B9C wrd1 WRD2 ABS:6BB0 wrd2 WRDBUF ABS:A1D0 wrdbuf WRDFIN ABS:6BCE wrdfin WRDGB ABS:6BE4 wrdgb WRDXIT ABS:6BDA wrdxit1 WRDXIT ABS:6BE0 wrdxit2 WRITE ABS:0003 write WRKBUF ABS:A222 wrkbuf WSTR ABS:761E wstr XMAX ABS:A02C xmax XMAXH ABS:7790 xmaxh XMLRTN ABS:7F48 xmlrtn XOR_ ABS:67E2 xor_ XORH ABS:67DA xorh XTAB27 ABS:200E xtab27 XTHRU ABS:7B90 xthru XUGLY ABS:6C40 xugly XY ABS:6D1A xy XYA ABS:75EC xya XYH ABS:6D12 xyh YMAX ABS:A02E ymax ZBQ ABS:7FF8 zbq ZBRCHH ABS:65DE zbrchh ZBRNCH ABS:65EA zbrnch ZCHARS ABS:6A62 zchars ZEROCH ABS:7EF9 zerochr ZEROS ABS:767C zeros ZEROSH ABS:7672 zerosh 1 Quote Link to comment Share on other sites More sharing options...
Willsy Posted October 12, 2015 Share Posted October 12, 2015 It's got a very nice ZX Spectrum/Retro feel to it. Love it! I see it says EK! when you hit something, I assume, therefore, that it's written by a Yorkshireman 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted October 12, 2015 Share Posted October 12, 2015 Looking great It would seem however that the downward force is a bit too strong, requiring very frequent corrections. I think it would play better if that force was reduced a bit. Of course ideally, you could implement full gravity using the formula v=-0.5gt and play with values of g to achieve a pleasing result. That way, the drop would start slowly and gradually build up. t could be based off of a manually incremented counter somewhere in your main game loop which resets when upward thrust is applied. Keep everything as integers of course. Dividing by half is simply shifting a register to the right once using SRL. Ignore the formula's negative sign and simply replace the downward force with the result of the calculation for each increment of t. 1 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.