10.07.2015 Views

Uncompressed - The Tech Heap

Uncompressed - The Tech Heap

Uncompressed - The Tech Heap

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

EXTENDED BASIC UNRAVELLED IIAPPENDIX BDISASSEMBLY OF EXTENDED BASIC 1.1ORIGIN:SPECTRAL ASSOCREVISED:12/26/1999 WALTER K ZYDHEK3073 96DD A7 A0 STA ,Y+ MOVE TO NEW PROG LOCATION3074 96DF 10 9C 1B CMPY VARTAB AT END OF OLD PROGRAM?3075 96E2 26 F7 BNE L96DB NO3076 96E4 20 E5 BRA L96CB GO RESET SOME POINTERS30773078 * INITIALIZATION ROUTINE FOR EXBAS GRAPHICS VARIABLES3079 96E6 C6 1E L96E6 LDB #$1E *3080 96E8 D7 19 STB TXTTAB * SET START OF BASIC PROG TO 1E003081 96EA 86 06 LDA #$06 =3082 96EC 97 BC L96EC STA GRPRAM =CONSTANT OFFSET OF $6003083 96EE 97 BA STA BEGGRP START OF GRAPHICS PAGE TO $6003084 96F0 4F CLRA PMODE = 03085 96F1 97 B6 STA PMODE SET PMODE TO 03086 96F3 86 10 LDA #$10 16 BYTES/HOR GRAPHIC ROW3087 96F5 97 B9 STA HORBYT SAVE IT3088 96F7 86 03 LDA #$03 SET FOREGROUND COLOR TO 33089 96F9 97 B2 STA FORCOL SET FOREGROUND COLOR TO 33090 96FB 86 0C LDA #$0C *3091 96FD 97 B7 STA ENDGRP * SET END OF GRAPHICS PAGE TO $C003092 96FF 9E 19 LDX TXTTAB GET START OF PROGRAM3093 9701 6F 1F CLR $-01,X CLEAR ONE BYTE JUST BEFORE PROGRAM3094 9703 7E AD 19 JMP LAD19 GO DO A ‘NEW’30953096 * TABLE OF HOW MANY BYTES/GRAPHIC ROW AND HOW MUCH RAM3097 * FOR ONE HI RES SCREEN FOR THE PMODES. ROWS FIRST,3098 * BYTES (IN 256 BYTE BLOCKS) SECOND.3099 9706 10 06 L9706 FCB $10,$06 PMODE 03100 9708 20 0C L9708 FCB $20,$0C PMODE 13101 970A 10 0C L970A FCB $10,$0C PMODE 23102 970C 20 18 L970C FCB $20,$18 PMODE 33103 970E 20 18 L970E FCB $20,$18 PMODE 431043105 * CALC ABS(VEREND - VERBEG)3106 9710 DC C5 L9710 LDD VEREND GET VERTICAL ENDING ADDRESS3107 9712 93 BF SUBD VERBEG SUBTRACT OUT VERTICAL BEGINNING ADDRESS3108 9714 24 3B L9714 BCC L9751 RETURN IF END >= START3109 9716 34 01 PSHS CC SAVE STATUS (WHICH COORDINATE IS GREATER)3110 9718 BD 9D C3 JSR L9DC3 NEGATE ACCD IF START COORD > END COORD3111 971B 35 81 PULS CC,PC RESTORE STATUS AND RETURN3112 * CALC ABS(HOREND - HORBEG)3113 971D DC C3 L971D LDD HOREND GET HORIZONTAL END COORD3114 971F 93 BD SUBD HORBEG SUB OUT HORIZONTAL START COORD3115 9721 20 F1 BRA L9714 GET ABSOLUTE VALUE31163117 * PCOPY3118 9723 8D 1A PCOPY BSR L973F *EVALUATE SOURCE PAGE NUMBER AND RETURN MSB OF3119 * *ADDRESS OF START OF PAGE IN ACCD3120 9725 34 06 PSHS B,A SAVE PAGE 1 OFFSET3121 9727 C6 A5 LDB #$A5 TOKEN FOR ‘TO’3122 9729 BD B2 6F JSR LB26F SYNTAX CHECK FOR ‘TO’3123 972C 8D 11 BSR L973F EVALUATE PAGE NUMBER3124 972E 35 10 PULS X SET ADDRESS OF SOURCE PAGE TO X3125 9730 1F 03 TFR D,U ADDRESS OF DESTINATION PAGE TO U3126 9732 10 8E 03 00 LDY #$300 MOVE $300 PAIRS OF BYTES (ONE GRAPHIC PAGE)3127 9736 EC 81 L9736 LDD ,X++ GET TWO BYTES FROM SOURCE3128 9738 ED C1 STD ,U++ PUT INTO DESTINATION PAGE3129 973A 31 3F LEAY $-01,Y DECREMENT COUNTER3130 973C 26 F8 BNE L9736 NOT DONE YET3131 973E 39 RTS31323133 973F BD B7 0B L973F JSR EVALEXPB EVALUATE EXPRESSION3134 9742 5D TSTB PAGE ZERO?3135 9743 27 0D BEQ L9752 YES - ‘ILLEGAL FUNCTION CALL’31363137 * THIS IS A FLAKEY ERROR CHECK - IT WILL LET YOU PCOPY OVER3138 * THE TOP OF THE BASIC PROGRAM IN SOME INSTANCES.3139 9745 D1 19 CMPB TXTTAB IS PAGE NUMBER > MSB OF START ADDR OF BASIC PROG?3140 9747 22 09 BHI L9752 ‘FC’ ERROR IF SO - BAD ERROR CHECK3141 9749 5A DECB *BUMP PAGE NUMBER DOWN 1, BASIC STARTS AT 1, THIS3142 * *ROUTINE STARTS AT ZERO3143 974A 86 06 LDA #$06 6*256 (1.5K) PER GRAPHIC PAGE3144 974C 3D MUL GET OFFSET OF THIS PAGE NUMBER3145 974D DB BC ADDB GRPRAM *GET START OF GRAPHIC RAM- ACCB NOW CONTAINS3146 * *MSB OF ADDRESS OF THIS PAGE3147 974F 1E 89 EXG A,B NON ACCD HAS ADDRESS OF PAGE START3148 9751 39 L9751 RTS3149 9752 7E B4 4A L9752 JMP LB44A ‘ILLEGAL FUNCTION CALL’31503151 * GET3152 9755 5F GET CLRB ‘GET’ FLAG3153 9756 20 02 BRA L975A THIS SHOULD BE FCB SKP2 - IT WOULD SAVE A BYTE31543155 * PUT3156 9758 C6 01 PUT LDB #$01 ‘PUT’ FLAG3157 975A D7 D8 L975A STB VD8 SAVE GET/PUT FLAG3158 975C BD 01 A0 JSR RVEC22 HOOK INTO RAM3159 975F 81 40 CMPA #'@' CHECK FOR @ SIGN3160 9761 26 02 BNE L9765 NO @ SIGN3161 9763 9D 9F JSR GETNCH GO GET NEXT INPUT CHARACTER3162 9765 BD 93 8F L9765 JSR L938F GO EVALUATE START AND END POINTS - STORE START AT3163 (HORBEG,VERSEG), END AT (HOREND,VEREND)3164 9768 BD B2 6D JSR SYNCOMMA SYNTAX CHECK FOR COMMA3165 976B BD 98 CC JSR L98CC GET POINTER TO ARRAY DESCRIPTOR3166 976E 1F 10 TFR X,D SAVE DESCRIPTOR + 2 IN ACCD3167 9770 EE 84 LDU ,X SAVE OFFSET TO NEXT ARRAY IN U3168 9772 33 5E LEAU $-02,U POINT U TO START OF DESCRIPTORB33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!