Skip to content

Instantly share code, notes, and snippets.

View keyboardspecialist's full-sized avatar

Jason Sobotka keyboardspecialist

View GitHub Profile
DrawNewColumn:
lda scroll ;calc new address using scroll register
lsr a
lsr a
lsr a ;shift right 3 times
sta columnLo ;$00 to $1F, screen is 32 tiles wide
lda nametable ;calc new col addr using current nametable
eor #$01 ;invert lo bit
asl a ;shift up, A = $00 or $02
macro mul_32_16bit m, l
lda #$00
sta m
asl l
rol m
asl l
rol m
asl l
rol m
asl l
#include "neslib.h"
#define ORIGIN_X 128
#define ORIGIN_Y 120
#define MAX_DEPTH 32
#define NT_ADR1 0x2000
#define NT_ADR2 0x2400
#define NT_ADR3 0x2800
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_RECORDS 30
#define MAX_NAME_LEN 20
#define ERR_BAD_PTR -1
#define NOERR 0
obj := mkobj(upb,fns,a,b,c,d,e,f,g,h,i,j,k) CIN:y, POS:y, NAT:y
This function creates and initialises an object. It definition is as follows:
LET mkobj(upb, fns, a, b, c, d, e, f, g, h, i, j, k) = VALOF
{ LET obj = getvec(upb)
IF obj DO
{ !obj := fns
InitObj#(obj, @a) // Send the init message to the object
}
SECTION "USER FRIENDLY MANUALS"
GET "libhdr"
MANIFEST
{ entry_id = 0
entry_dep = 1
entry_dsize = 2
SECTION "USER FRIENDLY MANUALS"
GET "libhdr"
MANIFEST
{ entry_id = 0
entry_dep = 1
entry_dsize = 2
<NODE 0: [16][46][76][93]>
<NODE 1: [2][7][8][15][16][18][20][22][23][37][45][49][55][57][66][83][89][93]>
<NODE 2: [3][5][25][28][36][37][40][57][73][84][96][98]>
<NODE 3: [8][11][13][25][31][33][60][68][70][79][92][96]>
<NODE 4: [3][7][8][11][12][17][22][24][29][50][53][54][63][69][72][74][75][86][88][97][99]>
<NODE 5: [16][17][20][24][25][28][29][31][33][36][42][45][53][80][88][96]>
<NODE 6: [7][18][25][27][47][48][49][53][54][56][60][70][73][87][88][93][94][99]>
<NODE 7: [8][11][29][54][59][71][79][93]>
<NODE 8: [13][16][24][31][72][73][79][81][86][99]>
<NODE 9: [27][29][71][79][84][90][92][99]>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
#include <string.h>
#define found UINT_MAX-1
#define notfnd UINT_MAX
#define _DEBUG
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
#include <string.h>
#define found UINT_MAX-1
#define notfnd UINT_MAX-2
#define _DEBUG